我正在使用mod_wsgi和apache运行TurboGears应用程序,使用pymongo包装在Ming中进行持久化。为了失败并扩展我的应用程序,我有兴趣通过pymongo ReplicaSetConnection使用mongo对副本集的支持。WSGI后期处理清理
但是,正如上面的链接中所指定的,当每个pymongo ReplicaSetConnection
对象完成时,必须调用close()
,否则会留下一堆浮动的僵尸进程(wtf pymongo)。 Ming在支持这种行为方面表现不佳(但实际上它并不真正支持Replica Sets),但我设法编写了一个清理函数来关闭所有的pymongo连接。
现在我想在我的所有应用程序进程的进程清理上运行我的清理功能。这些有两个基本的入口点:通过apache的mod_wsgi和paster命令。将我的清理添加到paster命令是没有问题的,但是有没有办法为wsgi进程指定清理函数?
如果不是,任何其他建议正确设置它?
我相信这应该足够了。当我没有关闭会话时,我的进程挂起,所以我假设提到的“后台任务”在主进程中。当我运行一些测试时,我会在此确认。 – Will 2012-08-06 20:48:47
将在每个调用atexit.register()的WSGI进程中调用清理函数。 – 2012-08-07 11:08:48
WSGI本身没有标准的东西吗? – 2014-10-22 16:28:47