Параллельная запись в лог-файл Sinatra, Rack, Thin - PullRequest
2 голосов
/ 05 августа 2011

Мы написали приложение Sinatra, которое использует Thin в качестве веб-сервера, а стойку - в качестве промежуточного программного обеспечения между ними.Я хотел бы знать, достаточно ли умен Rack для одновременной записи в файл журнала (как определено в config.ru) без какой-либо дополнительной настройки.

1 Ответ

0 голосов
/ 09 августа 2011

У меня нет опыта работы с этой конкретной реализацией, но я собираюсь догадаться нет, так как это больше проблема параллелизма при записи в файл, чем проблема конкретно с Rack. Причина этого заключается в том, что операционной системе обычно требуется блокировка файла для записи в него. Я предположил бы, что первый процесс, который должен был записать в файл журнала, заблокировал бы другие процессы, пока он не закончил запись, и тогда последующие процессы смогут писать.

Для получения дополнительной информации проверьте этот ответ на вопрос, связанный с EventMachine здесь . Также проверьте File Locking в Википедии.

...