比如一个python进程里有对数据库的网络连接,那在该python进程被系统销毁时,应该如何正确关闭这些连接呢?
更新:
我表达的可能还不够清楚,真实的场景是我用flask搭了个简单的网络应用服务程序,其中持有一个到数据库的连接;而整个应用服务是挂在iis7下面的。
我对web服务器的机制完全不了解,我想到的问题是web服务器是如何结束python程序进程的呢?(目测iis可以根据需要开启多个进程,也会根据需要结束进程)而在python程序的生命周期中,是否有相应的方法在进程正常销毁时被调用呢?(而我可以在该方法中关闭到数据库的连接)
プロセスが破棄されるとネットワーク接続は自動的に閉じられますが、追加の操作が必要な場合は、atexit モジュールを試すことができます:
リーリーPython の RAII は with で実装されているため、例外が発生した場合でもこれらのリソースを解放できます。Python clean-up を参照できます。
リーリーこれは with の使用例です。