MongoEngine并处理“UserWarning:在fork之前打开MongoClient。使用connect = False创建MongoClient,或者在分叉后创建客户端”

时间:2017-05-23 11:24:23

标签: 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

它显然与多处理和pyMongo有关,即mongoengine所基于的。

我的问题是:

使用mongoengine避免此问题的最佳策略是什么?

请注意我在settings.py中使用mongoengine连接到mongodb:

mongoengine.connect('my_mongo_database_name', alias='default')

1 个答案:

答案 0 :(得分:5)

在线搜索后,我发现可以将其他参数传递给const corsOptions = { optionsSuccessStatus: 200, credentials: true, allowedHeaders: 'Content-Type', preflightContinue: true, } app.options('/a/', cors(corsOptions)); app.post('/a/', cors(corsOptions), (req, res) => { // do stuff }); 函数,其他参数将传递给基础Credential is not supported if the CORS header ‘Access-Control-Allow-Origin’ is ‘*’).类&功能

所以我只是简单地编辑了mongoengine.connect对以下内容的调用:

PyMongo

警告停止了。尽管如此,我不确定这是处理警告的最佳方式。如果你有更好的答案,请发布它,我很乐意测试它并最终接受它。