Escribo un servidor web simple en python. He aquí una versión simplificada de mi código:SimpleHTTPRequestHandler cierra la conexión antes de regresar del método do_POST
class StreamerHandler(SimpleHTTPRequestHandler):
def do_POST(self):
try:
length = int(self.headers.getheader('content-length'))
data = self.rfile.read(length)
self.send_response(200, "OK")
#process_data(data, self.client_address)
except Exception as inst:
logging.error(type(self).__name__ + "/" + type(inst).__name__ + " (" + inst.__str__() + ")")
class Streamer(TCPServer):
def __init__(self, overlay):
self.allow_reuse_address = True
TCPServer.__init__(self, ("", port), StreamerHandler)
Lo que me gustaría hacer es enviar la respuesta cerrar la conexión TCP y luego ejecutar el método process_data que puede tardar mucho tiempo en completarse.
¿Hay alguna manera de lograr esto? La única solución que puedo pensar es utilizar un hilo dedicado para manejar el procesamiento.
en lugar de tener un segundo hilo ** ** usted podría intentar tener un segundo ** proce ss **, esto es un poco más pesado pero te libera de tener que manejar el bloqueo. Ver [docs] (http://docs.python.org/library/multiprocessing.html). – mac