장고보기에서 완료하는 데 몇 시간이 걸릴 수있는 프로세스를 실행해야합니다. 나는 국가를 알고있을 필요도없고 의사 소통 할 필요도 없지만 그 과정을 시작한 직후에 방향을 바꾼다는 관점이 필요하다.Django보기에서 장기 실행 프로세스를 시작하는 방법은 무엇입니까?
subprocess.Popen
을 사용해 보았습니다. 새로운 threading.Thread
, multiprocessing.Process
내에서 사용하고 있습니다. 그러나 부모 프로세스는 자식 프로세스가 종료 될 때까지 계속 대기합니다. 거의이되는 유일한 방법은 포크를 사용하는 것입니다. 부모가 끝날 때까지 좀비 프로세스가 끝나기 때문에 분명히 좋지 않습니다.
나는 포크를 사용할 때 할 노력하고있어 무엇 그것은 :
if os.fork() == 0:
subprocess.Popen(["/usr/bin/python", script_path, "-v"])
else:
return HttpResponseRedirect(reverse('view_to_redirect'))
그래서, 최소한의 사상자와 장고보기에서 완전히 독립적 인 프로세스를 실행하는 방법이 있습니까? 아니면 내가 잘못하고있는거야?
중복 : 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 –