【发布时间】:2016-05-09 19:47:16
【问题描述】:
最近我一直在尝试将 Mongoengine 和 Flask 与 Replica 集一起使用。我可以连接,但是当主节点发生变化时,连接会丢失并且出现中断。
这是一个可以测试行为的 sn-p。它使用非常有用的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 版本,但没有成功。任何帮助都将非常非常感谢!
【问题讨论】:
-
你能确认你运行的是哪个版本的mongoengine和mongodb吗?
-
我一直在使用 pymongo==3.2 和 flask-mongoengine==0.7.4
标签: python-3.x flask mongoengine replicaset flask-mongoengine