最近、MongoengineとFlaskをレプリカセットで使用しようとしています。私は接続することができますが、プライマリノードが変わると接続が失われ、中断があります。MongoEngine ReplicaSet接続がステップダウンで失敗する
ここでは、動作をテストできるスニペットを示します。 pymongo.errors.AutoReconnect: connection closed
:それは、デバッグレプリカセットの問題私は、主がエラーを変更するたびに取得
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:[email protected]: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()
に非常に便利なhttp://flip-flop.mlab.com/サイトを使用しています。
多くの感謝!私はいくつかのPyMongoバージョンを試しましたが、成功しませんでした。どんな助けも本当に本当にありがとう!
実行しているmongoengineとmongodbのバージョンを確認できますか? –
私はpymongo == 3.2とフラスコ - mongoengine ==を使用しています== 0.7.4 –