Как я могу выйти из uWsgi worker (python werkzeug) из-за внутренней ошибки?

У меня есть RESTful API, написанный на питоне с использованием werkzeug. Он работает с nginx/uWsgi. Я хотел бы убить рабочий процесс, когда происходит внутренняя ошибка (сеанс LOST zookeeper), и пусть uWsgi создаст нового рабочего.

Если я вызову sys.exit(0), рабочий процесс не завершится. Возможно, где-то перехватывается SystemExit или Exception. Я работаю как служба, используя сценарий инициализации,

exec $root/run uwsgi --socket 127.0.0.1:3037 --master --workers 4 --threads 10 --harakiri 60 --die-on-term --thunder-lock --lazy-apps --py- tracebacker /tmp/ledgerwebtbsock --wsgi-file my_server.py --logto /my_server.py


person user2903819    schedule 30.01.2015    source источник


Ответы (1)


uwsgi --help | grep on-exception

Возвращает набор параметров для управления автоматическим перезапуском воркеров при возникновении определенного исключения:

--reload-on-exception                   reload a worker when an exception is raised
--reload-on-exception-type              reload a worker when a specific exception type is raised
--reload-on-exception-value             reload a worker when a specific exception value is raised
--reload-on-exception-repr              reload a worker when a specific exception type+value (language-specific) is raised

Посмотрите слайд 9 из 10 приемов uWSGI - DjangoDay 2012 Роберто де Иориса. презентация для более.

person roberto    schedule 05.02.2015