13

¿Hay alguna manera de hacer que BaseHTTPServer.HTTPServer tenga varios subprocesos como SocketServer.ThreadingTCPServer?Python - BaseHTTervidor.HTTPSServer Concurrencia y subprocesamiento

+0

¿Hay alguna razón por la que lo necesite? – jakebman

+3

Porque quiero un servidor web básico que pueda manejar concurrencia? Tampoco necesito/quiero un framework completo como web.py, cherrypy o algo por el estilo, solo quiero un servidor web realmente básico como BaseHTTPServer que pueda manejar múltiples solicitudes simultáneas. – Ian

+1

aquí hay una referencia: [enlace] (http://www.doughellmann.com/PyMOTW/BaseHTTPServer/index.html#module-BaseHTTPServer), subprocesamiento, bifurcación – sfossen

Respuesta

19

puede simplemente usar el mixin roscado usando esas dos clases para que sea multi-hilo :)

No te va a ayudar mucho en el rendimiento, sin embargo, pero es al menos multiproceso.

from SocketServer import ThreadingMixIn 
from BaseHTTPServer import HTTPServer 

class MultiThreadedHTTPServer(ThreadingMixIn, HTTPServer): 
    pass 
+2

Parece una solución * a *. Sin embargo, preferiría optar por escribir mi propio servidor que usar algo lento ... :( – Ian

+0

Si simplemente está buscando alojar Python, ¿por qué no utilizar un servidor http existente como nginx, apache o lighttpd? En cuanto al rendimiento, el subprocesamiento le permitirá realizar múltiples conexiones simultáneas sin bloquear, por lo que en el caso de múltiples solicitudes simultáneas será más rápido. Sin embargo, usará solo 1 procesador. – Wolph

+1

No estoy Buscando eso, estoy haciendo un servidor Queue que toma las solicitudes entrantes (http o algún formato similar) y realiza una acción basada en la solicitud. – Ian

Cuestiones relacionadas