Phusion Passenger: использование OOB для выхода из процесса - PullRequest
0 голосов
/ 28 марта 2019

Phusion Passenger версия: 5.0.29

Я прочитал документацию о функции OBS (Out-of-Band) Пассажира и хотел бы использовать ее для принятия решенияо том, должен ли процесс завершиться или нет.Если процесс должен завершиться, то в конце работы OOB процесс вызывает raise SystemExit

Нам удалось заставить это работать там, где процесс завершается, и затем Пассажир запускает новый процесс позже, чтобыобрабатывать новые входящие запросы.Но мы видим случайные 502 со следующими строками в журнале пассажиров.

[ 2019-03-27 22:25:13.3855 31726/7f78b6c02700 age/Cor/Con/InternalUtils.cpp:112 ]: [Client 1-10] Sending
502 response: application did not send a complete response
[ 2019-03-27 22:25:13.3859 31726/7f78b6201700 age/Cor/CoreMain.cpp:819 ]: Checking whether to disconnect
long-running connections for process 10334, application agent
App 16402 stdout:
App 16441 stdout:
App 16464 stdout:
[ 2019-03-27 22:28:05.0320 31726/7f78ba9ff700 age/Cor/App/Poo/AnalyticsCollection.cpp:102 ]: Process (pid=16365, group=agent) no longer exists! Detaching it from the pool.

Является ли указанное выше поведение из-за состязания между обработчиком запросов, пересылающим запрос процессу, и выходом из процесса?Пассажир рассчитан на такой сценарий?Любое решение проблемы?

Спасибо!

1 Ответ

0 голосов
/ 30 марта 2019

Похоже, нам нужно запустить «passenger-config detach-process [PID]» для постепенного завершения.

Улучшенный механизм завершения процесса

Если вы хотите завершить определеннуюпроцесс приложения - возможно, потому что он плохо себя ведет - тогда вы можете сделать это, просто убив его командой kill.К сожалению, у этого метода есть несколько недостатков:

Любые запросы, которые обрабатывал процесс, будут принудительно прерваны, в результате чего ответы об ошибках будут возвращены клиентам.В течение короткого времени новые запросы могут быть направлены в этот процесс.Эти запросы будут получать ответы об ошибках.В Passenger 5 мы представили новый изящный механизм для завершения процессов приложения: detach-process пассажирского конфигурирования.Эта команда удаляет процесс из списка балансировки нагрузки, очищает все существующие запросы, а затем полностью завершает его.

Подробнее об этом инструменте можно узнать, запустив:

passenger-config detach-process --помощь

Источник: https://blog.phusion.nl/2015/03/04/whats-new-in-passenger-5-part-2-better-logging-better-restarting-better-websockets-and-more/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...