2017-01-14 7 views
0

Мне любопытно, правильно ли это работает.PyMongo на колбе

В случае использования MySQL, оба соединения и закрытия выполняются по одному запросу.

первый запрос: подключение, близко
второй запрос: подключение, близко
третий запрос: подключение, близко
четвёртую запрос: подключение, близко
пятый запрос: подключение, близко

все запросы приносят как подключение, так и закрытие.
Вот как я управляю подключением MySQL и думаю, что многим другим разработчикам это нравится.

НО ..

В случае использования MongoDB с модулем PyMongo, он работает не так, как выше.

первый запрос: подключение
2-й запрос: подключить
3-й запрос: (используйте подключение 1-й или 2-й) < = Не подключайте но использовать предыдущее соединение
четвёртую запрос: (используйте подключение 1-й или 2-й) < = же
пятый запрос: (используйте подключение 1-й или 2-й) < = же

ли держать это соединение в app.config и использовать на после запроса?
Я чувствую, Как это работает, очень сложно управлять связью MySQL.
Это нормально работает?
Не нужно ли закрывать соединение после использования?

from flask import Flask 
from flask_pymongo import PyMongo 
app = Flask(__name__) 

app.config['MONGO_HOST'] = '127.0.0.1' 
app.config['MONGO_PORT'] = 27017 
app.config['MONGO_DBNAME'] = 'test' 
mongo = PyMongo(app, config_prefix='MONGO') 

@app.route('/') 
def test(): 
    mongo.db.user.insert({'name':'test'}) 
    return 'test' 

if __name__ == '__main__': 
    app.run() 

Благодарим за понимание.

+0

Я думаю, что это ваш ответ, который вы ищете: http://stackoverflow.com/a/20613627/5802335 – metmirr

+0

Как вы получаете информацию о подключении открытия и закрытия? Мне любопытно узнать – wgwz

ответ

1

Вам не нужно закрывать соединения PyMongo. Оставьте их открытыми, чтобы пул соединений PyMongo дает вам наиболее эффективную работу:

http://api.mongodb.com/python/current/faq.html#how-does-connection-pooling-work-in-pymongo

Ваш код, выше, является правильным. Создайте экземпляр «PyMongo» и повторно используйте его во всех приложениях.

+0

Спасибо большое! Я рад за то, что я прав: – Kim