2017-05-23 5 views
2

私はDjango Appの一部としてCeleryとMongoEngineを使用しています。MongoEngineを扱い、 "UserWarning:MongoClientがforkの前に開かれました。connect = FalseでMongoClientを作成するか、forkの後にクライアントを作成します"

セロリ@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 

それは明らかにmongoengineが基づいていることであるマルチプロセッシングとpyMongoとは何かを持っています。

私の質問は:

mongoengineでこの問題を回避する最善の戦略は何ですか?

私はsettings.pyにmongoengineでのMongoDBに接続していますのでご注意ください。

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

答えて

4

オンライン少し検索した後、私はmongoengine.connect機能を追加し、追加の引数を渡すことが可能であることが判明しました引数は基底のPyMongoクラス&の関数に渡されます。

だから私は、単純に次のようにmongoengine.connect()呼び出し、編集:

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

を、警告が表示されて停止しました。これが警告を処理する最善の方法であるかどうかわからないことはありません。あなたがより良い答えを持っていれば投稿してください。私はそれを喜んでテストし、最終的にそれを受け入れます。

+0

セロリとフラスコで同じ問題があります。また、最良の方法を知りたいですか? – spitz

関連する問題