Назад | Перейти на главную страницу

Можно ли заставить uwsgi перезапускаться при 500 ошибках

У меня иногда возникают проблемы с перезапуском БД или чем-то подобным. В этих случаях мне нужно войти и вручную перезапустить 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