我正在使用pymongo訪問也使用Celery執行許多異步任務的應用程序中的mongodb。我知道pymongo的連接池不支持異步工作者(基於文檔)。Pymongo,通過Celery進行連接池和異步任務
訪問集合我有一個集合類包裝某些適合我的應用程序的邏輯。我試圖理解我用這個包裝器繼承的一些代碼:
此刻的每個集合都創建自己的Connection實例。根據我讀的內容,這是錯誤的,我應該有一個單獨的Connection實例(在settings.py或類似的文件中)並將其導入到我的Collection實例中。這一點很清楚。就建議的最大連接數而言,是否有指導原則?當前的代碼肯定會創建大量的連接/套接字,因爲它並不真正利用池化設施。
但是,由於一些代碼是從異步芹菜任務中調用的並且正在同步運行,所以我不知道如何處理這個問題。我的想法是爲這些任務實例化新的Connection實例,並將其用於同步的實例(每次活動完成後,ending_request當然)。這是正確的方向嗎?
謝謝!
哈雷爾