最近、レプリカ セットで Mongoengine と Flask を使用しようとしています。接続できますが、プライマリ ノードが変更されると、接続が失われ、切断されます。
これは、動作をテストできるスニペットです。非常に便利なhttp://flip-flop.mlab.com/サイトを使用して、レプリカ セットの問題をデバッグして います。
from flask import Flask
from mongoengine import connect
from flask_mongoengine import MongoEngine
import os
db = MongoEngine()
app = Flask(__name__)
class TestDoc(db.Document):
texto = db.StringField()
class ProductionConfig:
def get_conn_data(self):
conn = {
'host':"mongodb://testdbuser:testdbpass@flip.mongolab.com:53117,flop.mongolab.com:54117/testdb?replicaSet=rs-flip-flop",
'replicaSet': 'rs-flip-flop'
}
return conn
import time
app.config['MONGODB_SETTINGS'] = ProductionConfig().get_conn_data()
db.init_app(app)
if __name__ == '__main__':
with app.test_client() as c:
while True:
time.sleep(1)
print(TestDoc.objects().count())
TestDoc(texto="1").save()
プライマリがエラーを変更するたびに取得します: pymongo.errors.AutoReconnect: connection closed
。
どうもありがとう!いくつかの異なる pyMongo バージョンを試しましたが、成功しませんでした。どんな助けでも本当に、本当に感謝します!