在python3.8 django3.0版本情况下使用celery来做了一个异步任务demo。在使用时遇到警告:
UserWarning: MongoClient opened before fork. Create MongoClient only after forking. See PyMongo’s documentation for details: http://api.mongodb.org/python/current/faq.html#is-pymongo-fork-safe
“MongoClient opened before fork. Create MongoClient only “
解决方法:
在实例化MongoClient实例时加上参数connect=False
from pymongo import MongoClient client = MongoClient(host='localhost', port=27017, connect=False)
原因:
因为pymongodb不是fork-safe,使用MongoClient的实例时必须小心 fork()。特别是,绝不能将MongoClient实例从父进程复制到子进程。相反,父进程和每个子进程必须创建自己的MongoClient实例。