【问题标题】:Does django-sorcery support connection pooling?django-sorcery 是否支持连接池?
【发布时间】:2019-08-04 12:33:12
【问题描述】:

我正在玩 django-sorcery,到目前为止,在我看来,我只有一个持久连接到数据库。

django-sorcery 是否支持连接池?如果是这样,我如何控制池中可用的打开连接数?

【问题讨论】:

  • 您是否运行并行会话/查询?如果没有,则无需获取更多连接。
  • 我根本没有明确地管理会话,只是通过 ORM 运行查询(例如 Model.objects.all())。我是否打算明确生成新会话?
  • (是的,我的意思是并行运行许多会话/查询)
  • 我对 django-sorcery 不太熟悉,但如果它是 Flask-SQLAlchemy 包装器之类的东西,那么它会为您处理会话。

标签: django sqlalchemy django-sorcery


【解决方案1】:

设计本身类似于 Flask-SQLAlchemy,除了 django_sorcery.db.sqlalchemy.SQLAlchemy 本身是一个作用域会话,默认情况下它将使用线程本地作用域会话。

如果您使用django_sorcery.db.middleware.SQLAlchemyMiddleware,则您已为每个请求设置了会话,每个请求您将获得一个会话,中间件将在请求结束时将其删除。

关于连接池,它由 sqlalchemy 自己管理。您可以通过连接 url 查询字符串或在数据库配置中使用 ALCHEMY_OPTIONS["engine_options"] 覆盖连接池配置,这会将这些配置传递给 create_engine

【讨论】:

    猜你喜欢
    • 2019-03-19
    • 2011-05-31
    • 1970-01-01
    • 2011-12-19
    • 2017-05-28
    • 1970-01-01
    • 1970-01-01
    • 2015-03-03
    • 1970-01-01
    相关资源
    最近更新 更多