WSGI в многопользовательском режиме - PullRequest
1 голос
/ 12 октября 2011

все.У меня есть простой сервер 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 Ответ

0 голосов
/ 12 октября 2011

Вы можете использовать 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.

...