限制在sqlalchemy中创建的Session对象的数量

时间:2018-04-17 01:24:35

标签: python flask sqlalchemy

我试图了解如何限制会话数量,或者是否有办法在SQL Alchemy会话池中设置最大数量的资源。我正在使用遗留代码库来初始化SessionPool,如下所示。我不确定这是否重要,但我们在应用程序中使用Flask。

  from sql import config as sqla_config

  if Session.registry.has():
    db_session = Session()

  if db_session is None:
     engine = sqla_config.get_engine("my-db", "primary", role=None)
     db_session = Session(bind=engine)

  return db_session 

我想限制可以创建的会话数。我怎样才能做到这一点?这是一个遗留代码库,所以我可以做出的改变有限。我知道QueuedPool,但我不知道如何在这种情况下使用它。

1 个答案:

答案 0 :(得分:0)

根据source code。您可以在flask配置中设置以下变量以实现您的目标:

SQLALCHEMY_POOL_SIZE
SQLALCHEMY_POOL_TIMEOUT
SQLALCHEMY_POOL_RECYCLE
SQLALCHEMY_MAX_OVERFLOW