我知道pymongo是线程安全的,并且有一个内置的连接池.
在我正在处理的Web应用程序中,我正在为每个请求创建一个新的连接实例.
我的理解是,由于pymongo管理连接池,在每个请求上创建新连接并不是错误的方法,因为在请求结束时,连接实例将被回收并且将在后续请求中可用.
我在这里是正确的,还是我应该创建一个单个实例来跨多个请求使用?
"错误的方法"取决于应用程序的体系结构.由于pymongo是线程安全的和自动连接池,单个共享连接或多个连接的实际使用将"起作用".但结果将取决于您对行为的期望.文档对这两种情况都有评论.
如果您的应用程序是线程化的,则从文档中,访问连接的每个线程都将获得自己的套接字.因此,无论您是创建单个共享连接还是请求新连接,都可以归结为您的请求是否具有线程.
使用gevent时,每个greenlet可以有一个套接字.这意味着您不必每个请求都有一个真正的线程.请求可以是异步的,并且仍然可以获得自己的套接字.
简而言之:
| 归档时间: |
|
| 查看次数: |
2677 次 |
| 最近记录: |