У меня иногда возникают проблемы с перезапуском БД или чем-то подобным. В этих случаях мне нужно войти и вручную перезапустить uwsgi.
Можно ли настроить uwsgi на перезапуск при 500 ошибках? В идеале я мог бы заставить рабочего перезапускаться при нескольких 500 ошибках, а не при каждой из них.
вы можете использовать подсистему показателей, добавив метрику, подсчитывающую 500 ошибок.
Метрики могут иметь порог, вызывающий тревогу (в вашем случае перезагрузка)
[uwsgi]
http-socket = :9092
; reload the instance when touching
touch-reload = /tmp/restart
; create a new alarm restarting the instance
alarm = database_reloaded cmd:touch /tmp/restart
; create a metric for couting 500s
metric = 500counter
; create a metric threshold, resetting the metric to 0 when hitting 5
; the metric alarm triggers the restart of the instance too
metric-alarm = key=500counter,value=5,alarm=database_reloaded,rate=60,reset=0
; increment metric whenever a 500 is generated
final-route-status = 500 metricinc:500counter