Flask 自动重新加载和长时间运行的线程

jd.*_*jd. 5 python mod-wsgi wsgi werkzeug flask

我正在 Flask 应用程序中实现一个长时间运行的线程。在调试模式下,在重新加载器激活的情况下,长时间运行的线程不会在重新加载时终止。

相反,因为创建和启动线程的代码是在重新加载后运行的,所以每个循环都会创建一个额外的线程。

除了禁用重新加载器之外,我如何防止这种情况发生?

在具有自动重新加载功能的 mod_wsgi 下运行时会发生同样的情况吗?

更新:长时间运行的线程实际上在重新加载时被 Werkzeug 杀死了。有一个额外的副本,这是由于 Werkzeug 的重新加载器占用了一个额外的线程来运行初始化代码。

Gra*_*ton 4

mod_wsgi 重新加载的描述如下:

http://code.google.com/p/modwsgi/wiki/ReloadingSourceCode

对于长时间运行的请求,默认情况下,如果未在 5 秒内完成,进程将被强制终止。这是为了避免由于请求无法完成而导致进程锁定的问题。