簡體   English   中英

在Flask中使用sqlalchemy觸發連接池

[英]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有許多不同的事件類型可以監視, checkoutcheckinconnect等...- 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM