#python #uwsgi #supervisord
#python #uwsgi #супервизор
Вопрос:
У меня есть приложение Python, работающее через uWSGI. Редко приложение сталкивается с ошибкой, из-за которой оно не может загружаться. В этот момент, если я отправляю запросы в uWSGI, я получаю сообщение об ошибке no python application found, check your startup logs for errors
. В этой ситуации я хотел бы, чтобы uWSGI просто умер, чтобы программа, управляющая им (супервизор, в моем случае), могла перезапустить его. Есть ли настройка или что-то, что я могу использовать для принудительного выполнения этого?
Подробнее о моей настройке: приложение Python 2.7 запускается через uWSGI в контейнере docker. Контейнер docker управляется супервизором, и если он умрет, Супервизор перезапустит его, чего я и хочу.
Ответ №1:
После часа поиска я наконец нашел способ сделать это. Просто передайте --need-app
аргумент при запуске uWSGI или добавьте need-app = true
в свой файл .ini, если вы запускаете вещи таким образом. Понятия не имею, почему это отключено по умолчанию (в какой ситуации вы бы хотели, чтобы uWSGI продолжал работать, когда ваше приложение умерло?) но так оно и есть.
Комментарии:
1. Я рад, что вы нашли ответ, но, похоже, вам следует исправить эту часть: редко приложение сталкивается с ошибкой, из-за которой оно не может загружаться
2. @IanAuld 100%. Но непредвиденные ошибки случаются, и я хочу, по крайней мере, иметь какую-то резервную копию, когда они это сделают. Чтобы уточнить, это не та ошибка, которая возникает, и я просто игнорирую. Я имел в виду набор всех неожиданных ошибок, которые могут произойти.