Это кросс-пост с Проблема с GitHub
Дано:
И wsgi.py из:
def application(env, start_response):
start_response('200 OK', [('Content-Type', 'text/html')])
return ["Hello!"]
Бег $ gunicorn wsgi --log-level=debug
Урожайность:
[2017-04-10 18:01:25 +0000] [31956] [ИНФОРМАЦИЯ] Запуск Gunicorn 19.7.1
[2017-04-10 18:01:25 +0000] [31956] [DEBUG] Arbiter загружен
[2017-04-10 18:01:25 +0000] [31956] [INFO] Слушают: http://127.0.0.1:8000 (31956)
[2017-04-10 18:01:25 +0000] [31956] [ИНФОРМАЦИЯ] Использование worker: sync
[2017-04-10 18:01:25 +0000] [31961] [ИНФОРМАЦИЯ] Загрузка рабочего с pid: 31961
[2017-04-10 18:01:25 +0000] [31956] [DEBUG] 1 рабочий
Затем, используя netcat, чтобы протестировать его, например, echo -en "GET /ping HTTP/1.0\n\n\n" | nc localhost 8000
время ожидания с:
[2017-04-10 18:07:36 +0000] [31977] [КРИТИЧЕСКИЙ] ТАЙМ-АУТ РАБОТНИКА (pid: 31982)
[2017-04-10 18:07:36 +0000] [31982] [ИНФОРМАЦИЯ] Рабочий завершает работу (pid: 31982)
[2017-04-10 18:07:36 +0000] [31985] [ИНФОРМАЦИЯ] Загрузочный рабочий с pid: 31985
В качестве альтернативы отправка SIGINT (ctrl-c) экземпляру nc во время ожидания дает:
[2017-04-10 18:01:28 +0000] [31961] [DEBUG] Игнорирование преждевременного отключения клиента. Нет данных после: 'GET / ping HTTP / 1.0 \ n \ n \ n'
С помощью --spew
не осветил ничего очевидного.
Хотя я ничего не менял с тех пор, как вчера разместил этот вопрос, сегодня он работает.
Ваше предположение так же хорошо, как и мое, но я закрываю его на том основании, что не могу воспроизвести его.
Если повторится, я открою заново.