2012-05-20 3 views
3

Я экспериментировал с несколькими серверами WSGI и не смог найти способ для их изящного закрытия. Что я подразумеваю под грациозным, так это то, что сервер останавливает прослушивание() для новых запросов, но завершает обработку всех подключений, которые были приняты(). Затем завершается процесс сервера.Как изящно завершить работу любого сервера WSGI?

До сих пор я провел некоторое время с FAPWS, Cherrypy, Tornado и wsgiref. Кажется, что независимо от того, что я делаю, некоторые из клиентов получают «Сброс соединения сверстником».

Может ли кто-нибудь направить меня на сервер WSGI, который правильно его обрабатывает? Или знаете, как настроить один из этих серверов на чистое завершение работы? Я думаю, что мой следующий шаг состоит в том, чтобы макет простого HTTP-сервера, который делает то, что я хочу.

ответ

4

HTTPd имеет предикат graceful-stop для -k, который позволит ему сбивать всех работников после того, как они выполнили свой запрос. mod_wsgi требуется, чтобы сделать его контейнером WSGI.

+0

Apache graceful-stop даст только желаемый эффект при использовании встроенного режима, а не режима демона. Использование встроенного режима потребует правильной настройки Apache для Python и конкретного веб-приложения, поскольку по умолчанию prefork MPM, используемый дистрибутивами и настройками, не подходит для Python и больше настроек для статических файлов и PHP. Поэтому да, вы можете использовать Apache/mod_wsgi во встроенном режиме, но выполняйте домашнее задание и настройте его правильно. –

Смежные вопросы