def get_mongos(self, force=False):
if not force and self.mongos_db:
return self.mongos_db
elif self.db.is_mongos():
return self.db
else:
db = self.connection['config']
for doc in db.mongos.find().sort('ping', DESCENDING):
try:
mongos_uri = MongoUri(doc['_id'])
logging.debug("Found cluster mongos: %s" % mongos_uri)
self.mongos_db = DB(mongos_uri, self.config, False, 'nearest')
logging.info("Connected to cluster mongos: %s" % mongos_uri)
return self.mongos_db
except DBConnectionError:
logging.debug("Failed to connect to mongos: %s, trying next available mongos" % mongos_uri)
raise OperationError('Could not connect to any mongos!')
评论列表
文章目录