首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用烧瓶中的sqlalchemy触发连接池

用烧瓶中的sqlalchemy触发连接池
EN

Stack Overflow用户
提问于 2014-12-11 13:11:07
回答 1查看 2K关注 0票数 0

我正在我的服务器上使用Flask + SQLAlchemy (DB是Postgres),我想知道连接池是如何发生的。我知道默认情况下它是启用的,池大小为5,但我不知道我的代码是否触发它。

假设我使用默认的烧瓶SQLalchemy桥:

代码语言:javascript
复制
db = SQLAlchemy(app)

然后使用该对象放置数据库调用,如

代码语言:javascript
复制
db.session.query(......)

烧瓶-sqlalchemy如何管理场景后面的连接池?每次我访问db.session时,它是否会获得一个新的会话?什么时候这个对象返回到池(假设我没有将它存储在局部变量中)?

编写代码以最大化并发+性能的正确模式是什么?如果我在一个串行方法中多次访问DB,那么每次使用db.session是个好主意吗?

我无法找到这种方式的文档,所以我不知道场景背后发生了什么(代码可以工作,但会扩展吗?)

谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-12-12 17:25:16

您可以使用事件注册- http://docs.sqlalchemy.org/en/latest/core/event.html#event-registration有许多不同的事件类型可以监视,checkoutcheckinconnect等。- http://docs.sqlalchemy.org/en/latest/core/events.html

下面是在建立新连接时打印a的文档的一个基本示例。

代码语言:javascript
复制
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)
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27423718

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档