小编exc*_*eve的帖子

如何从Django视图启动长时间运行的进程?

我需要运行一个可能需要数小时才能从Django视图完成的过程.我不需要知道状态或与之通信,但我需要该视图在启动过程后立即重定向.

我已经尝试使用subprocess.Popen内一个新的使用它threading.Thread,multiprocessing.Process.但是,父进程一直挂起,直到子进程终止.几乎完成它的唯一方法是使用fork.显然这并不好,因为它会留下一个僵尸进程,直到父终止.

这就是我在使用fork时要做的事情:

if os.fork() == 0:
    subprocess.Popen(["/usr/bin/python", script_path, "-v"])
else:
    return HttpResponseRedirect(reverse('view_to_redirect'))
Run Code Online (Sandbox Code Playgroud)

那么,有没有办法从Django视图运行完全独立的进程,伤亡最小?或者我做错了什么?

python django long-running-processes

15
推荐指数
2
解决办法
6348
查看次数

标签 统计

django ×1

long-running-processes ×1

python ×1