Hallo,
habe folgende Aufgabe. Ich soll ein Programm entwickeln, das einen Stream über ein Socket einliest und einen Teil des Inhalts in die Datenbank sichert. Dieser Stream kommt i.d.R. alle 15 Sek, kann aber auch mal ausfallen oder leicht verzögert ankommen. Soweit erst mal dazu.
Eine weitere Aufgabe des Programms soll es sein, eine Datei zu parsen und in die Datenbank zu schreiben.
Diese Datei wird von einem externen Programm alle 10 min. neu erstellt und innerhalb dieser 10 min. mit Daten gefüllt.Hierbei überprüfe ich alle 60 sek. mit der Methode .lastModified() ob der letzte Dateizugriff länger als 20 sek. beträgt, wenn ja, bearbeite die Datei. Dabei kann der Inhalt der Datei bis zu 50000 Zeilen enthalten, die geparst werden müssen und in die DB geschrieben werden, das kann je nach Zeilenanzahl, zwischen 15-20 sek dauern.
Das alles soll natürlich parallel in einem Programm laufen.
Jetzt das Problem, bzw. eine grundlegende Frage:
Ist es überhaupt möglich mittels Threads zu gewährleisten, das der Stream, der ca. alle 15 sek. kommt, trotzdem empfangen und bearbeitet wird, während noch die Datei mit ihren ca. 50000 Zeilen verarbeitet und in die DB geschrieben wird, was durchaus länger als 15 sek. dauern kann???
Es ist also ein zeitkritisches Problem, bei dem keine Daten verloren gehen dürfen.
Falls es realisierbar ist, würde ich mich über ein ungefähres Schema freuen.
Besten Dank im Vorraus
habe folgende Aufgabe. Ich soll ein Programm entwickeln, das einen Stream über ein Socket einliest und einen Teil des Inhalts in die Datenbank sichert. Dieser Stream kommt i.d.R. alle 15 Sek, kann aber auch mal ausfallen oder leicht verzögert ankommen. Soweit erst mal dazu.
Eine weitere Aufgabe des Programms soll es sein, eine Datei zu parsen und in die Datenbank zu schreiben.
Diese Datei wird von einem externen Programm alle 10 min. neu erstellt und innerhalb dieser 10 min. mit Daten gefüllt.Hierbei überprüfe ich alle 60 sek. mit der Methode .lastModified() ob der letzte Dateizugriff länger als 20 sek. beträgt, wenn ja, bearbeite die Datei. Dabei kann der Inhalt der Datei bis zu 50000 Zeilen enthalten, die geparst werden müssen und in die DB geschrieben werden, das kann je nach Zeilenanzahl, zwischen 15-20 sek dauern.
Das alles soll natürlich parallel in einem Programm laufen.
Jetzt das Problem, bzw. eine grundlegende Frage:
Ist es überhaupt möglich mittels Threads zu gewährleisten, das der Stream, der ca. alle 15 sek. kommt, trotzdem empfangen und bearbeitet wird, während noch die Datei mit ihren ca. 50000 Zeilen verarbeitet und in die DB geschrieben wird, was durchaus länger als 15 sek. dauern kann???
Es ist also ein zeitkritisches Problem, bei dem keine Daten verloren gehen dürfen.
Falls es realisierbar ist, würde ich mich über ein ungefähres Schema freuen.
Besten Dank im Vorraus