2017-01-05 1 views
0

Ich habe etwas in Zend_Log geschaut, das ist ein Log Modul von Zend Framework, aber ich habe es nicht mit einer Flock-Funktion gesehen, um eine Race-Bedingung zu verhindern, wenn mehrere PHP-Skripte in dieselbe Datei schreiben. Wie ich weiß, behandelt die Webanwendung, die auf dem zend Framework basiert, jede Anfrage als einen individuellen PHP-Prozess, so dass der Status nicht zwischen diesen Prozessen geteilt werden kann, also halte eine Schreibdateiaktion synchron.Wie verhindert Zend_Log den Wettlauf beim Schreiben einer Log-Nachricht?

Kennt jemand den Grund warum?

Antwort

0

Lassen Sie mich meine eigene Frage beantworten, nach der Überprüfung einiger Dokumente, in UNIX wie System eine O_APPEND geöffnete Datei ist Thread und Prozess sicher in die Datei zu schreiben. Aber Windows ist eine Ausnahme, vielleicht hat PHP einen Wrapper für einen Windows-Interpreter erstellt.

Wenn eine geöffnete Datei PIPE oder FIFO ist, unterscheidet sie sich von einer reinen Datei. Wenn die Größe Bytes die Größe von PIPE_BUF überschreiten, ist es nicht atomar.

Understanding concurrent file writes from multiple processes

O_APPEND document

Verwandte Themen