学习python中。
貌似python做web是执行一个daemon,那么是不是说连接数据库什么的资源不会像php那样被自动释放呢?那不就是会有一堆资源被占用?
del貌似也是在脚本之行结束后才会被执行啊。python应该怎么释放资源?
1
wy315700 2015-05-29 17:07:37 +08:00
什么框架
|
2
yahoo21cn 2015-05-29 17:11:45 +08:00
一般来说数据库连接用完后要手动关闭,连接池也是。
|
3
binux 2015-05-29 17:12:34 +08:00
为什么要释放?下一个请求来了接着用不就好了,还节约了连接的时间。
|
4
clino 2015-05-29 17:16:00 +08:00
|
5
imlonghao 2015-05-29 17:40:17 +08:00 via Android
数据库链接从来不断开...
|
6
cevincheung OP |
7
yahoo21cn 2015-05-29 19:25:01 +08:00
每次用完关闭数据库连接和gc无关,搜索个python的数据库操作例子看看就行了。
|
8
tigerstudent 2015-05-29 21:34:07 +08:00 via Android
析构函数在对象没有再被引用就执行了。
一般为了减少连接消耗,数据库连接都是保持全局的吧。 谷歌Python垃圾回收找不到讲解? |
9
cevincheung OP @tigerstudent
@yahoo21cn 那貌似就是说可能会存在web应用执行过程中如果数据库宕机了那必须要重启web daemon?因为当数据库宕机的时候web daemon的连接也断掉了(或者在程序里实现数据库断线重连?) |
10
yahoo21cn 2015-05-30 09:26:00 +08:00 via Android
还真没试过,不过现在除了学习,一般都是直接上连接池的,连接池有重连机制,你不用操心这个
|
11
cevincheung OP @yahoo21cn 那连接池挂了咋办?
|
12
yahoo21cn 2015-05-30 13:30:11 +08:00 via Android
连接池就是webserver本身
|