2017-01-05 13 views
0

Zend FrameworkのログモジュールであるZend_Logを少し調べましたが、複数のPHPスクリプトが同じファイルに書き込まれている場合、競合状態を防ぐためにflock関数を使用していませんでした。 私が知っているところでは、zendフレームワークに基づくWebアプリケーションは個々のPHPプロセスとして各リクエストを処理するため、これらのプロセス間で状態を共有することはできません。ログメッセージの書き込み中にZend_Logが競合状態を防ぐ方法を教えてください。

誰もその理由を知っていますか?

答えて

0

UNIXのようなシステムでO_APPEND開いているファイルがスレッドであり、ファイルへの書き込みが安全なプロセスであることを確認した後、私自身の質問に答えてください。しかし、Windowsは例外で、おそらくPHPはWindowsインタプリタのためのラッパーを作成しました。

開いているファイルがPIPEまたはFIFOの場合は、純粋なファイルとは異なります。 sizeバイトがPIPE_BUFのサイズを超えた場合、それはアトミックではありません。

Understanding concurrent file writes from multiple processes

O_APPEND document

関連する問題