我正在浏览Psycopg Connections Pooling文档,并且不了解getconn和putconn中'key'参数的用途是什么?
答案 0 :(得分:2)
仔细阅读 psycopg2 (lib/pool.py
)的源代码,您可以看到psycopg2.pool.AbstractConnectionPool
类的dict
属性名为_used
,其中引用池中的连接。 key
和getconn
方法中的putconn
参数是该字典中项目的关键。默认情况下,如果这些方法的key
参数的值为None
,则将连接对象的id
用作密钥。
基本上key
参数允许具体连接池类的实现者识别连接。例如,在psycopg2.pool.PersistentConnectionPool
类中,单个连接意味着在单个线程中共享,因此线程ID用作密钥。