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

时间:2012-03-12 18:39:42

标签: python mod-wsgi wsgi flask werkzeug

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

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

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

使用自动重载功能在mod_wsgi下运行会发生同样的情况吗?

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

1 个答案:

答案 0 :(得分:3)

mod_wsgi重新加载在:

中描述

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

对于长时间运行的请求,默认情况下,如果它在5秒内没有完成,则无论如何都会强制终止进程。这是为了避免进程锁定问题,因为请求无法完成。