Есть ли способ сделать BaseHTTPServer.HTTPServer многопоточным, как SocketServer.ThreadingTCPServer?
Python — параллелизм и многопоточность BaseHTTPServer.HTTPServer
comment
Есть ли причина, по которой вам это нужно?
- person jakebman   schedule 08.03.2010
comment
Потому что мне нужен базовый веб-сервер, способный работать с параллелизмом? Мне также не нужна/не нужна вся инфраструктура, такая как web.py, cherrypy или что-то в этом роде, я просто хочу действительно простой веб-сервер, такой как BaseHTTPServer, который может обрабатывать несколько одновременных запросов.
- person Ian   schedule 08.03.2010
comment
Используйте Apache и mod_wsgi.
- person   schedule 19.03.2010
comment
вот ссылка: ссылка, threading, forking
- person sfossen   schedule 08.04.2010
Ответы (1)
Вы можете просто использовать миксин потоков, используя оба этих класса, чтобы сделать его многопоточным :)
Хотя это не сильно поможет вам в производительности, но, по крайней мере, это многопоточность.
from SocketServer import ThreadingMixIn
from BaseHTTPServer import HTTPServer
class MultiThreadedHTTPServer(ThreadingMixIn, HTTPServer):
pass
person
Wolph
schedule
07.03.2010
Это похоже на a решение.. однако я бы предпочел написать свой собственный сервер, чем использовать что-то медленное.. :(
- person Ian; 08.03.2010
Если вы просто ищете хостинг Python, почему бы не использовать существующий http-сервер, такой как nginx, apache или lighttpd? Что касается производительности, то многопоточность позволит вам выполнять несколько одновременных подключений без блокировки, поэтому в случае нескольких одновременных запросов это будет быстрее. Но он по-прежнему будет использовать только 1 процессор.
- person Wolph; 09.03.2010
Я не ищу это, я создаю сервер очереди, который принимает входящие запросы (http или аналогичный формат) и выполняет действие на основе запроса.
- person Ian; 09.03.2010
вот ссылка: ссылка, threading, forking
- person sfossen; 08.04.2010
@Ian: поскольку вы создаете сервер очередей, вы можете попробовать какую-нибудь другую технологию. Взгляните на библиотеку событий: wiki.secondlife.com/wiki/Eventlet
- person Wolph; 09.04.2010
Для быстрых импов POC это отличный способ позволить нескольким соединениям не наступать на буферы связи друг друга. Спасибо, что поделился.
- person Buzz Moschetti; 24.09.2015