se necesita para ejecutar un proceso que podría tardar horas en completarse desde una vista de Django. No necesito saber el estado o comunicarme con él, pero necesito esa vista para redirigir lejos justo después de comenzar el proceso.¿Cómo iniciar un proceso de larga duración desde una vista de Django?
He intentado usar subprocess.Popen
, usándolo dentro de un nuevo threading.Thread
, multiprocessing.Process
. Sin embargo, el proceso principal sigue pendiente hasta que el hijo finaliza. La única forma en que casi lo logra es usando un tenedor. Obviamente, eso no es bueno ya que deja un proceso zombie atrás hasta que el padre termina.
Eso es lo que estoy tratando de hacer cuando se utiliza tenedor:
if os.fork() == 0:
subprocess.Popen(["/usr/bin/python", script_path, "-v"])
else:
return HttpResponseRedirect(reverse('view_to_redirect'))
Entonces, ¿hay una forma de ejecutar un proceso totalmente independiente de una vista de Django con bajas mínimas? ¿O estoy haciendo algo mal?
duplicado de todos ellos: http://stackoverflow.com/search?q=%5Bpython%5D+long-running. http://stackoverflow.com/questions/1107826/python-long-running-daemon-job-processor, http://stackoverflow.com/questions/805120/python-task-server –