Ous*_*uss 5 python django celery mongoengine django-celery
我使用Celery和MongoEngine作为我的Django App的一部分.
当celery @shared_task通过mongoengine模型类访问mongodb数据库时,我收到此警告:
UserWarning: MongoClient opened before fork. Create MongoClient with
connect=False,or create client after forking. See PyMongo's
documentation for details:
http://api.mongodb.org/python/current/faq.html#using-pymongo-with-multiprocessing
Run Code Online (Sandbox Code Playgroud)
它显然与多处理和pyMongo有关,这是mongoengine所基于的.
我的问题是:
用mongoengine避免这个问题的最佳策略是什么?
请注意,我正在使用mongoengine连接到mongodb settings.py:
mongoengine.connect('my_mongo_database_name', alias='default')
Run Code Online (Sandbox Code Playgroud)
在网上搜索了一下之后,我发现可以将额外的参数传递给mongoengine.connect函数,其他参数将传递给底层的PyMongo类和函数.
所以我只是编辑mongoengine.connect()了以下的调用:
mongoengine.connect('my_mongo_database_name', alias='default', connect=False)
Run Code Online (Sandbox Code Playgroud)
警告停止了.尽管如此,我不确定这是处理警告的最佳方式.如果你有更好的答案,请发布它,我很乐意测试它,并最终接受它.
| 归档时间: |
|
| 查看次数: |
2185 次 |
| 最近记录: |