我正在使用pymongo在一个应用程序中访问mongodb,该应用程序也使用Celery来执行许多异步任务。我知道pymongo的连接池不支持异步工作者(基于文档)。
要访问集合,我有一个Collection类包含适合我的应用程序的某些逻辑。我试图弄清楚我用这个包装器继承的一些代码:
目前,每个集合都会创建自己的Connection实例。基于我正在阅读的内容,这是错误的,我应该有一个Connection实例(在settings.py等)并将其导入我的Collection实例。这一点很清楚。就建议的最大连接数是否有指导原则?当前代码肯定会创建大量的连接/套接字,因为它没有真正利用池化设施。
但是,由于某些代码是从异步芹菜任务调用以及同步运行的,所以我不知道如何处理这个问题。我的想法是为任务实例化新的Connection实例,并使用单个实例用于同步任务(当然,在每个活动完成后,ends_request)。这是正确的方向吗?
谢谢!
Harel的