2012-05-29 74 views
8

我是Python的web開發新手,我選擇了Flask來啓動我的web應用程序。在應用程序關閉之前,我有一些資源可以釋放,但我無法找到將清理代碼放在哪裏。 Flask提供了一些裝飾器,如before_requestteardown_request在請求處理之前和之後註冊回調。有沒有類似的東西可以在應用程序停止之前註冊要調用的回調? 謝謝。我在哪裏將清理代碼放在Flask應用程序中?

+3

什麼資源? –

+0

我不知道應用程序停止時由Flask提供的工具。知道你想要清理什麼是很有趣的。 Python有'atexit'模塊,這可能是你正在尋找的。 –

+0

我正在使用neo4j數據庫,並保留連接池。我認爲atexit會完成這項工作。這是更合適的地方把我的清理代碼? –

回答

3

atexit模塊允許您註冊程序終止回調。如果應用程序被信號終止,它的回調函數將不會被調用。如果您需要處理這些情況,則可以使用signal模塊註冊相同的回調(例如,您可能需要處理SIGTERM信號)。

我可能誤解了你想要清理的東西,但是文件句柄或數據庫連接等資源無論如何都將在解釋器關閉時關閉,所以你不必擔心這些。

相關問題