我的堆栈是Nginx + Flup + Flask。如何在请求使用nginx/flup重新启动后运行后台线程?
所以我有一个有限的线程运行具有有限生命周期的后台线程。
t = threading.Thread(target=campaign.run, args=(campaign_obj,))
t.setDaemon(False)
t.start()
它被执行,持续大约一分钟或2分钟,然后结束。事情是,为了响应,我已经在后台进程仍在运行时首先向请求返回一个值。
问题是,在某种程度上,fcgi线程不断死亡。
我曾试图改变connection_timeout到1800年
keepalive_timeout 1800s;
nginx的重新启动,现在它被几乎立即的线程响应后切断。
我怎样才能既
1)简单的解决我的Python代码/ fcgi的代码(不重构与Redis的/ RabbitMQ的一个巨大的新的堆栈/芹菜,因为这实在是一个快速项目)
2)停止nginx杀死我的线程,至少不会那么快。
谢谢!
使用子流程。 – snf
子进程或多进程? – nubela
对不起,我的意思是多处理:http://docs.python.org/2/library/multiprocessing.html#the-process-class。 – snf