2012-05-29 36 views
8

我是Python的web开发新手,我选择了Flask来启动我的web应用程序。在应用程序关闭之前,我有一些资源可以释放,但我无法找到将清理代码放在哪里。 Flask提供了一些装饰器,如before_requestteardown_request在请求处理之前和之后注册回调。有没有类似的东西可以在应用程序停止之前注册要调用的回调? 谢谢。我在哪里将清理代码放在Flask应用程序中?

+3

什么资源? –

+0

我不知道应用程序停止时由Flask提供的工具。知道你想要清理什么是很有趣的。 Python有'atexit'模块,这可能是你正在寻找的。 –

+0

我正在使用neo4j数据库,并保留连接池。我认为atexit会完成这项工作。这是更合适的地方把我的清理代码? –

回答

3

atexit模块允许您注册程序终止回调。如果应用程序被信号终止,它的回调函数将不会被调用。如果您需要处理这些情况,则可以使用signal模块注册相同的回调(例如,您可能需要处理SIGTERM信号)。

我可能误解了你想要清理的东西,但是文件句柄或数据库连接等资源无论如何都将在解释器关闭时关闭,所以你不必担心这些。

相关问题