Das Notes Forum
Sonstiges => Offtopic => Thema gestartet von: flaite am 21.03.13 - 17:48:26
-
... es geht darum, dass ein asynchroner Prozess von mir auf ein Verzeichnis pollt.
Gleichzeitig schreibt ein anderer Prozess Dateien in dieses Verzeichnis.
Wenn ich von da eine von dem anderen noch nicht fertig geschriebene Datei kopiere, dann wird die ja etwas kaputt sein.
Bessere Vorschläge als das hier: http://stackoverflow.com/questions/750471/how-to-know-whether-a-file-copying-is-in-progress-complete-in-java-1-6
um zu überprüfen, dass auf eine Datei, die in einem Verzeichnis liegt, nicht mehr geschrieben wird?
Werd answered Mar 2 '12 at 16:35 ausprobieren.
Allerdings ist das zu hackisch, als das hier oberhalb meines aktuellen Auftraggebers in der Organisation kommunizierbar wäre.
danke
-
Servus Axel,
Du kannst doch bei der Anlage der Files denen erstmal einen Namen geben, der Deinem anderen Prozess deutlich sagt: "TABU!!!!!!". Ist der andere Prozess fertig, benennt er als letzte Massnahme das File um und lädt damit Deinen Prozess ein, sein Wirken zu beginnen.
Wenn Du keinen Einfluss auf den anderen Prozess hast, dann kannst Du doch vor dem Start Deiner Aktion versuchen, das ins Auge gefasste File umzubenennen. Hat das noch jemand anderes am Wickel, reagiert Dein kleiner, aber feiner ErrorHandler.
Derartige Konstrukte lassen sich natürlich nahezu beliebig weiterspinnen, oich wollte hier aber erstmal nur die Richtung aufzeigen, wie ich es machen würde (sprach- und umgebungsunabhängig).
HTH,
Bernhard
-
Bernhards Vorschlag verwenden wir immer so:
- schreiben einer Datei mit einem Namen, der mit "temp_" beginnt
- nach dem schreiben wird die Datei dann umbenannt
Früher habe ich die Dateien sogar noch in ein anderes Verzeichnis geschrieben und dann nur noch verschoben. Hier sollt es aber auf der gleichen logischen Partition sein, damit nur der Zeiger auf die Datei gändert und nicht die Datei bitweise kopiert werden muss. Bei der Kopiererei kann es dann ebenfalls (je nach Dateigröße) zu dem von dir beschriebenen Effekt kommen.
-
Gute Ideen. Danke.