[英]Triggering connection pools with sqlalchemy in flask
我正在為服務器使用Flask + SQLAlchemy(DB為Postgres),並且想知道連接池如何發生。 我知道默認情況下啟用了池大小為5的池,但是我不知道我的代碼是否觸發了它。
假設我使用默認的flask SQLalchemy網橋:
db = SQLAlchemy(app)
然后使用該對象進行數據庫調用,例如
db.session.query(......)
flask-sqlalchemy如何管理后台的連接池? 每次我訪問db.session時,它都會捕獲一個新會話嗎? 該對象什么時候返回到池中(假設我不將其存儲在局部變量中)?
編寫代碼以最大程度地提高並發性和性能的正確模式是什么? 如果我通過一種串行方法多次訪問數據庫,那么每次使用db.session是一個好主意嗎?
我無法以這種方式找到文檔,所以我不知道幕后發生的事情(代碼可以工作,但是會擴展嗎?)
謝謝!
您可以使用事件注冊-http://docs.sqlalchemy.org/en/latest/core/event.html#event-registration有許多不同的事件類型可以監視, checkout
, checkin
, connect
等...- http://docs.sqlalchemy.org/en/latest/core/events.html
這是文檔中建立新連接時打印a的基本示例。
from sqlalchemy.event import listen
from sqlalchemy.pool import Pool
def my_on_connect(dbapi_con, connection_record):
print "New DBAPI connection:", dbapi_con
listen(Pool, 'connect', my_on_connect)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.