Служба пассажирских рельсов Phusion недоступна при длительном запросе - PullRequest
0 голосов
/ 26 марта 2012

У меня возникли проблемы с получением длинного запроса на работу на сервере. Он использует Phusion Passenger на Apache2, и у нас есть один запрос, который включает создание большого отчета. Он не виден конечным пользователям, только для отслеживания бэкэнда, поэтому эта ошибка встречается не часто. Просто по этому одному запросу. Журнал apache очень бесполезен, только сообщая:

[ pid=10570 thr=140294434944864 file=ext/apache2/Hooks.cpp:783 time=2012-03-26 19:43:58.116 ]: Either the vistor clicked on the 'Stop' button in the web browser, or the visitor's connection has stalled and couldn't receive the data that Apache is sending to it. As a result, you will probably see a 'Broken Pipe' error in this log file. Please ignore it, this is normal. You might also want to increase Apache's TimeOut configuration option if you experience this problem often.

Тем не менее, нет сломанной трубы. Я не теряю соединение, таймаут Apache не достигнут (он останавливается примерно через 30 секунд после запроса), и я не отменяю свой запрос.

Конфигурации все по умолчанию, за исключением виртуальных хостов. Это на Ubuntu 11.04.

1 Ответ

1 голос
/ 27 марта 2012

Не зная, каковы ваши конкретные настройки или параметры конфигурационного файла apache, я настоятельно рекомендую вам перенести это в фоновый процесс, используя что-то простое, например delayed_job (https://github.com/collectiveidea/delayed_job). Тогда вы не будете зависеть от Apache и Passenger.

...