Eine grosse Datei kommt per FTP und wird dann in ein Zielverzeichnis kopiert, wahrscheinlich mit "mv". Ein Programm schaut regelmässig, ob die Datei da ist und wenn ja, wird sie verarbeitet. Wie kann ich sicherstellen, dass die Datei komplett im Zielverzeichnis geschrieben wurde, bevor sie verarbeitet wird? Ich befürchte, dass die Datei schon im Directory auftaucht bevor sie fertig erstellt wurde. Auch wenn das nur Sekunden oder Millisekunden sind, ist es immer ein Risiko. Kann ich vor dem Lesen die Datei irgendwie locken?
Datei nur dann lesen, wenn sie nicht mehr geschrieben wird
|
Anmeldungsdatum: Beiträge: 880 |
|
||||
|
Anmeldungsdatum: Beiträge: 2510 |
Kannst du beeinflussen, wie dieser Kopiervorgang stattfindet? Dann könntest du die Datei erst mit
|
||||
|
(Themenstarter)
Anmeldungsdatum: Beiträge: 880 |
Das müsste eigentlich gehen und wäre recht einfach. Danke! |
||||
|
Projektleitung
Anmeldungsdatum: Beiträge: 13242 |
So etwas löst man eleganterweise mit
oder
|
||||
|
(Themenstarter)
Anmeldungsdatum: Beiträge: 880 |
|||||
|
Projektleitung
Anmeldungsdatum: Beiträge: 13242 |
Noch ein Hinweis: die zweite Lösung hat eine Race Condition: wenn weitere Dateien geschrieben oder verschoben werden, während eine bearbeitet wird, werden die nicht erfasst. Die erste Lösung hat das Problem nicht. |
||||
|
(Themenstarter)
Anmeldungsdatum: Beiträge: 880 |
|||||
|
Projektleitung
Anmeldungsdatum: Beiträge: 13242 |
Nein, damit hat das nix zu tun. |