Как Zend_Log предотвращает состояние гонки во время записи сообщения журнала?

Я рассмотрел немного Zend_Log, который является модулем журнала Zend Framework, но я не видел, чтобы он использовал функцию flock для предотвращения состояния гонки, если в один и тот же файл записано несколько php-скриптов.
Насколько я знаю, веб-приложение, основанное на Zend Framework, обрабатывает каждый запрос как отдельный процесс php, поэтому состояние не может быть разделено между этими процессами, поэтому необходимо синхронизировать действие записи файла.

Кто-нибудь знает причину почему?

0

Решение

Позвольте мне ответить на мой собственный вопрос, после проверки некоторых документов, в UNIX-подобной системе открытый файл O_APPEND является потоком и безопасным для записи в файл. Но Windows — исключение, возможно, PHP сделал какую-то оболочку для интерпретатора Windows.

Если открытый файл — PIPE или FIFO, то он отличается от чистого файла. Если размер байтов превышает размер PIPE_BUF, то он не атомарный.

Понимание одновременной записи файлов из нескольких процессов

O_APPEND документ

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]