Ошибки внутреннего сервера Gunicorn - PullRequest
0 голосов
/ 22 июля 2011

У меня есть сервер Gunicorn, на котором запущено приложение Django, которое часто ломается. К сожалению, когда он падает, все рабочие из Gunicorn одновременно уходят в отставку и молча обходят лесозаготовки Джанго и Джанго-часового. Все рабочие возвращают «Внутренняя ошибка сервера», но арбитр не дает сбоя, поэтому диспетчер не регистрирует его как сбой и, следовательно, не перезапускает процесс.

У меня вопрос, есть ли способ зацепиться за аварию работника Gunicorn и, возможно, отправить электронное письмо или сделать заявление? Во-вторых, есть ли способ заставить супервизора перезапустить сервер Gunicorn, который возвращает только 500-е?

Заранее спасибо.

1 Ответ

1 голос
/ 22 июля 2011

Я настоятельно рекомендую использовать zc.buildout.Вот пример использования плагина Superlance для супервизора со сборкой:

[supervisor]
recipe = collective.recipe.supervisor
plugins =
   superlance
...
programs =
     10 zeo ${zeo:location}/bin/runzeo ${zeo:location}
     20 instance1 ${instance1:location}/bin/runzope ${instance1:location} true
...
eventlisteners =
     Memmon TICK_60 ${buildout:bin-directory}/memmon [-p instance1=200MB]
     HttpOk TICK_60 ${buildout:bin-directory}/httpok [-p instance1 -t 20 http://localhost:8080/]

, который будет выполнять http-запрос каждые 20 секунд и перезапускать процесс в случае сбоя.

http://pypi.python.org/pypi/collective.recipe.supervisor/0.16

...