【发布时间】:2010-12-03 14:27:00
【问题描述】:
我需要一个Object Pool,而不是自己实现它,我想我会四处寻找一个现成且经过测试的 Python 库。
我发现很多其他人looking,但没有得到很多直接的答案,所以我把它带到了 Stack Overflow。
在我的例子中,我有大量线程(使用threading 模块),需要偶尔调用远程基于 SOAP 的服务器。他们每个人都可以建立自己与服务器的连接,但是设置一个套接字并完成身份验证过程很昂贵(它受到服务器的限制),所以我想共享一个连接池,只在需要时创建更多。
如果要池化的项目是工作子进程,我可能会选择multiprocessing.pool,但事实并非如此。如果它们是工作线程,我可能会选择this implementation,但它们不是。
如果它们是 MySQL 连接,我可能会选择 pysqlpool,但事实并非如此。同样,SQLAlchemy Pool 已失效。
如果有一个线程,使用可变数量的连接/对象,我会考虑this implementation,但我需要它是线程安全的。
我知道我可以很快再次实现它,但鉴于有很多人在寻找它,我认为 Stack Overflow 上的规范答案会很好。
【问题讨论】:
标签: python design-patterns data-structures