Gunicorn: Gunicorn v 19 дает тайм-аут для http-запроса Flask, который требует времени для выполнения

Созданный на 27 апр. 2019  ·  4Комментарии  ·  Источник: benoitc/gunicorn

Версия с использованием: 19.7
Команда Docker для запуска сервера:
CMD ["gunicorn", "--workers=2", "-b 0.0.0.0:8080", "--keep-alive=900", "--threads=3", "--max-requests=5 ","--graceful-timeout=900", "--log-level=DEBUG","executorengine.wsgi :app "]

Детали ошибки:
Критический тайм-аут рабочего потока



502 Неверный шлюз


Сервер вернул ошибочный или неполный ответ.

Журналы консоли

NFO:root :DONE:: Выполнить пошаговую операцию с подробностями ::

| INFO:root :Start:: Метод Rest GET вызывается во внешней системе

Прежде чем завершить действие ниже, новый работник придет :)

| [2019-04-27 10:11:00 +0000] [17] [ИНФОРМАЦИЯ] Загружаемый воркер с pid: 17

Самый полезный комментарий

Если кто-то сталкивается с такой же проблемой, используйте приведенную ниже конфигурацию.

**

  • [ ] CMD ["gunicorn", "--workers=2", "-b 0.0.0.0:8080", "--timeout=400", "--threads=2", "-k=gevent"," --log-level=ИНФОРМАЦИЯ","

**

исполнительный двигатель. wsgi:приложение "]

Все 4 Комментарий

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

Если это то, что происходит, то я могу думать о двух вариантах:

1) Увеличьте время ожидания вашего рабочего
2) Используйте асинхронного рабочего, например gevent , чтобы ваш внешний запрос не вызывал тайм-аут рабочего.

@ vaibhavpatil123 , не могли бы вы в конечном итоге попробовать мастер, так как cf8ac37ce41e530cc154f2c7cbccd84ccad4c242 был объединен.

Дайте нам знать

Наконец-то я могу исправить свою проблему, и теперь мой запрос проходит через сервер Flask с приведенной ниже конфигурацией.

CMD ["gunicorn", "--workers=2", "-b 0.0.0.0:8080", " --timeout=400", "--threads=2", "-k=gevent" ,"-- уровень журнала = ИНФОРМАЦИЯ", "executorengine. wsgi: приложение "]

Если кто-то сталкивается с такой же проблемой, используйте приведенную ниже конфигурацию.

**

  • [ ] CMD ["gunicorn", "--workers=2", "-b 0.0.0.0:8080", "--timeout=400", "--threads=2", "-k=gevent"," --log-level=ИНФОРМАЦИЯ","

**

исполнительный двигатель. wsgi:приложение "]

Была ли эта страница полезной?
0 / 5 - 0 рейтинги