我正在使用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