Thread [PHP] mehrfaches Schreiben in eine Logdatei bei mehreren gleichzeitigen Zugriffen?
(9 answers)
Opened by Gast at 2008-10-28 14:23
Genau.
Instanz 1 sperrt die Datei, schreibt seine Sachen. Instanz 2 waretet maximal 30*rand(1000) Millisekunden (durchschnittlich 15 Sekunden) bis die Datei Frei gegen wird, sperrt es selber und schreit seine Sachen. Die maximale Wartezeit wird sehr wahrscheinlich nicht erreicht, da das schreiben sehr schnell geht und es wohl kaum riesige Datenmengen sind die geschrieben werden. Das "rand" wurde wohl eingefügt, das, wenn mehr als zwei Prozesse schreiben wollen, nicht alle zum selben Zeitpunkt die Datei an sich zu binden versuchen. Denke aber daran, das eine Datei immer wieder entsperrt werden muss, denn sonst kann es unter Umständen zu Hängern kommen, da die Datei über einen längeren Zeitraum gesperrt bleiben könnte. An sich wird die Sperrung der Datei aufgehoben wenn das Filehandle geschlossen wir, aber besser man ist vorsichtig. (Es kommt ganz darauf an wie das Betriebssystem und der Interpreter mit Filehandles umgeht. Eventuell bleiben die Dateien im Hintergrund noch eine Weile geöffnet) |