Автоперезапуск Gunicorn вызывает ошибки - PullRequest
0 голосов
/ 07 августа 2020

Я запускаю Gunicorn в режиме asyn c за обратным прокси nginx. Оба находятся в отдельных контейнерах docker на одной виртуальной машине в хост-сети, и все работает нормально, пока я не настраиваю max_requests для автоматического перезапуска рабочих после определенного количества запросов. При настроенном автоматическом перезапуске перезагрузка рабочих процессов не обрабатывается правильно, вызывая ошибки и вызывая неудачные ответы. Мне нужны эти настройки, чтобы исправить проблемы с утечкой памяти и предотвратить сбои Gunicorn и других компонентов приложения.

Журнал Gunicorn:

2020-08-07 06:55:23 [1438] [INFO] Autorestarting worker after current request.
2020-08-07 06:55:23 [1438] [ERROR] Socket error processing request.
Traceback (most recent call last):
  File "/opt/mapproxy/lib/python3.5/site-packages/gunicorn/workers/base_async.py", line 65, in handle
    util.reraise(*sys.exc_info())
  File "/opt/mapproxy/lib/python3.5/site-packages/gunicorn/util.py", line 625, in reraise
    raise value
  File "/opt/mapproxy/lib/python3.5/site-packages/gunicorn/workers/base_async.py", line 38, in handle
    listener_name = listener.getsockname()
OSError: [Errno 9] Bad file descriptor

Gunicorn работает со следующей конфигурацией:

bind = '0.0.0.0:8081'
worker_class = 'eventlet' 
workers = 8
timeout = 60
no_sendfile = True
max_requests = 1000
max_requests_jitter = 500
...