#python #multiprocessing #wsgi
#python #многопроцессорная обработка #wsgi
Вопрос:
все. У меня есть простой сервер wsgi и простое приложение wsgi.
**The application**
def app(environ, start_response):
start_response('200 OK', [('Content-type', 'text/plain')])
return ['Hello here']
**The server**
from wsgiref import simple_server
server = simple_server.WSGIServer(
('', 8080),
simple_server.WSGIRequestHandler,
)
server.set_app(app)
server.serve_forever()
Есть ли какой-либо способ обработать любой запрос пользователя в отдельном процессе или, возможно, потоке (т. Е. Выполнить Код приложения) без использования внешней среды? В процессе или потоке не ожидается общих данных. Если это невозможно, какой способ вы можете посоветовать?
Комментарии:
1. Решил использовать сервер gevent.
Ответ №1:
Вы можете использовать ThreadingMixIn
или ForkingMixIn
из модуля SocketServer, подобного этому:
from wsgiref import simple_server
from SocketServer import ThreadingMixIn
class ThreadingWSGIServer (ThreadingMixIn, simple_server.WSGIServer): pass
server = ThreadingWSGIServer(...)
server.set_app(app)
server.serve_forever()
Однако ForkingMixIn не будет работать в Windows.
Замените ‘SocketServer’ на ‘socketserver’, если вы используете Python 3.
Комментарии:
1. Спасибо, но теперь это хуже (медленнее (меньше запросов в секунду)).