python 如何在请求结束时释放资源?

2015 年 5 月 29 日
 cevincheung

学习python中。

貌似python做web是执行一个daemon,那么是不是说连接数据库什么的资源不会像php那样被自动释放呢?那不就是会有一堆资源被占用?

del貌似也是在脚本之行结束后才会被执行啊。python应该怎么释放资源?

4533 次点击
所在节点    Python
12 条回复
wy315700
2015 年 5 月 29 日
什么框架
yahoo21cn
2015 年 5 月 29 日
一般来说数据库连接用完后要手动关闭,连接池也是。
binux
2015 年 5 月 29 日
为什么要释放?下一个请求来了接着用不就好了,还节约了连接的时间。
clino
2015 年 5 月 29 日
imlonghao
2015 年 5 月 29 日
数据库链接从来不断开...
cevincheung
2015 年 5 月 29 日
@imlonghao
@binux
@yahoo21cn

那python是如何gc的?
yahoo21cn
2015 年 5 月 29 日
每次用完关闭数据库连接和gc无关,搜索个python的数据库操作例子看看就行了。
Chichele
2015 年 5 月 29 日
析构函数在对象没有再被引用就执行了。
一般为了减少连接消耗,数据库连接都是保持全局的吧。
谷歌Python垃圾回收找不到讲解?
cevincheung
2015 年 5 月 29 日
@tigerstudent
@yahoo21cn

那貌似就是说可能会存在web应用执行过程中如果数据库宕机了那必须要重启web daemon?因为当数据库宕机的时候web daemon的连接也断掉了(或者在程序里实现数据库断线重连?)
yahoo21cn
2015 年 5 月 30 日
还真没试过,不过现在除了学习,一般都是直接上连接池的,连接池有重连机制,你不用操心这个
cevincheung
2015 年 5 月 30 日
@yahoo21cn 那连接池挂了咋办?
yahoo21cn
2015 年 5 月 30 日
连接池就是webserver本身

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://v2ex.ih06.com/t/194737

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX