Обнаружить перезапуск рабочего оружия - PullRequest
0 голосов
/ 17 сентября 2018

У нас есть django приложение, обслуживаемое gunicorn работниками синхронизации. Сервер tornado запущен в потоке из самого приложения django (давайте не будем спорить об архитектуре, это унаследованный код) и тесно связан с рабочим.

Он связывает себя со свободным портом, хранящимся в db. Теперь каждый раз, когда рабочий перезагружается, мне также нужно запускать tornado, но, поскольку порт используется, он не запустится.

Мне нужно было бы каким-то образом обнаружить, что рабочий вышел из строя и должен был бы сохранить состояние порта в доступном. Однако я все равно не могу это обнаружить.

 signal.signal(signal.SIGTERM, stop_handler)
 signal.signal(signal.SIGINT, stop_handler)

Вышеуказанные обнаруживаются только тогда, когда я вручную убиваю работника, но не когда gunicorn перезапускает самого работника.

Как я могу обнаружить то же самое?

...