如何使用psycopg和gevent汇集连接?

gon*_*one 16 python postgresql asynchronous psycopg gevent

psycopg文档声明:"Psycopg连接不是绿色线程安全的,并且不能由不同的绿色线程同时使用.尝试每个线程使用一个游标执行多个命令将导致错误(或版本上的死锁因此,建议程序员避免在协同程序之间共享连接或使用库友好的锁来同步共享连接,例如用于池化.

我找不到绿色线程安全的池的实现 - 那里有没有?

Cod*_*ers 14

我假设你知道gevent-psycopg2模块,它使psycopggreenlet友好.

寻找连接池解决方案我尝试了2个解决方案:

  • SQLALchemy- 它似乎适用于猴子修补的线程和gevent-psycopg2.本QueuePool类使用threading模块内部锁定,猴子修补因此,有必要,即使gevent-psycopg2psycopg2绿色.

  • psycopg2 示例中有一个连接池gevent示例

我已经尝试了两种解决方案,但没有尝试生产负载 - 所以我还不能说它们的稳健性.

  • 更新:此lib已被宣布为"obselete",支持:https://bitbucket.org/dvarrazzo/psycogreen/ (5认同)