美文网首页
连接对象

连接对象

作者: 大奖神 | 来源:发表于2019-02-18 21:30 被阅读0次

1.session_begin()情况

__exit__:  # session.py

  self.commit()

    self.close()

      self._connections.values() 里存了engine.base.Connection对象

      connection.close()

          conn=self,__connection #sqlachemy.pool._ConnectionFairy

          conn.close()

              self._counter -=1

              if self._counter==0:  # pool.py

                    self._checkin(),执行之后self.connection=None,self._connection_record=None

                        _finalize_fairy(self.connection, self._connection_record, self._pool, None, self._echo, fairy=self)

                                connection_record和connection逻辑

                                如果connection_record非空且connection_record.fairy_ref is not None:

                                connection_record.checkin()

                                    pool._return_conn(self)

                                        self._do_return_conn(record)

                                          self._pool.put(conn, False)#sqlalchemy.util.queue.Queue, 存record

                                          conn.close()

2.不起事务情况

fetchall之后soft_close

3.为什么要用_ConnectionRecord

a)比db_connection存活久一点

b)用来PoolEvents.connect等事件

实现了这些方法

4.为什么要用_ConnectionFairy

透明代理agent,proxy, db连接,return-on-dereference  support

如何实现自动回收,创建record的时候,创建fairy

示例博客:http://www.voidcn.com/article/p-ttjqqzbe-ps.html

checkout事件处理程序建立的“ping”操作,在使用前检测到无效连接,专门捕获DisconnectionError,并尝试在放弃然后提升InvalidRequestError之前创建新的DBAPI连接,最多三次。

相关文章

  • 连接对象

    1.session_begin()情况 __exit__: # session.py self.commit(...

  • 函数1

    1.函数对象 函数就是对象。 对象是“名\值”对的集合并拥有一个连接到对象原型的隐藏的连接 函数对象连接到F...

  • q第4章 函数(Functions)

    4.1 函数对象 对象字面量产生的对象连接到object.prototype,函数对象连接到Function.pr...

  • python 与SQL入门

    1. 连接connect用法,用于连接数据库 连接 对象的方法:close(): 关闭对象commit(): 提交...

  • JavaJDBC执行语句Statement

    写在前面 获得与数据库的连接对象Connection 通过连接对象获取Statement对象connection....

  • 【ADO.NET】数据库查询SQLCommand方法

    1.创建连接字符串 2.使用Connection通过连接字符串进行连接 创建对象使用Command对象.Comma...

  • python pony 常用操作

    from pony import orm 1. 连接 创建数据库连接对象, 此时并未连接数据库,后续可以使用该对象...

  • JS中的函数

    函数是对象,连接到Function.prototype(该对象连接到Object.prototype),并在创建时...

  • python连接mysql

    这段程序有两个对象:连接对象(conn )和光标对象(cur )。 连接 / 光标模式是数据库编程中常用的模式,不...

  • python操作mysql数据库

    Connection 对象 用于建立与数据库的连接创建对象:调用connect()方法 参数host:连接的mys...

网友评论

      本文标题:连接对象

      本文链接:https://www.haomeiwen.com/subject/mpozeqtx.html