Можно ли завершить рабочий процесс Flask после обработки N запросов?

Если я использую параметр processes (application.run(processes=10)) в Flask, можно ли как-то указать, чтобы завершить процесс после того, как он обработает N задач?

По сути, я хотел бы повторно использовать ресурс для N запросов, а затем воссоздать его после N вызовов, убив текущий процесс и заставив флягу заменить его новым процессом. Функциональность будет аналогична использованию multiprocessing.Pool с параметром maxtasksperchild, равным N.


person Eugen    schedule 09.06.2017    source источник
comment
Похоже, фляга создает новый процесс для каждого запроса. Итак, сначала мне нужно выяснить, как вообще повторно использовать старый процесс.   -  person Eugen    schedule 09.06.2017


Ответы (1)


Вы не должны использовать сервер разработки Flask в любой ситуации, когда имеет значение уничтожение процессов после N запросов. Используйте настоящий сервер WSGI в производстве, у них у всех есть для этого опции.

Например, с gunicorn:

gunicorn --max-requests=N --workers=10 myapp:app
person davidism    schedule 09.06.2017