我需要帮助来澄清一些概念。现在我正在使用芹菜(一个python调度程序)来运行一个任务。由于芹菜对一个任务有时间限制(默认为300秒),而且我的任务很可能会运行更长时间,所以我决定在该任务中生成一个进程来完成实际工作。然而,我不知道的是,如果在执行任务的过程中,我不小心重新启动/停止了芹菜服务器,那么产生的进程还会工作吗?或者它会变成一个僵尸程序?如果可能的话,请给我一些细节。谢谢
编辑:还有一个问题:当你做
p = Process(target=f, args=('test',))
p.start()
p是否成为当前进程的子进程?或者它只是创建了一个独立的过程?
恐怕我只能回答你的第一个问题,因为我对Celery不太熟悉,也许你可以在文档中找到答案。
您的问题强调了守护进程和非守护进程线程之间的区别。
Daemon线程是不会挂起主程序的线程。不管主程序在做什么,他们都会一直工作到完成。
非守护程序线程正好相反。他们必须在主程序结束前被杀死。
这个问题/答案很好地解释了差异和含义。
在您的问题范围内,如果您的进程是守护进程线程,那么如果您重新启动/停止服务器,它们应该是正常的。但是,如果它们不是守护进程线程,那么您就不能停止芹菜服务器(假设我对守护进程线程的理解是正确的)
希望这能帮助