【问题标题】:Pony orm connection poolingPony orm 连接池
【发布时间】:2020-03-13 13:18:25
【问题描述】:

将 python pony orm 与 postgres(aws rds) 结合使用...使用它来执行原始 sql ...所以我围绕 pony 类创建了一个包装类来初始化数据库对象

self.db = Database()
self.db.bind(provider="postgres", user=self.username, password=self.password,
                host=self.hostname, database=self.database)

每次调用方法来执行原始 sql 查询(下一行),都会建立一个新连接。连接池何时启动

self.db.execute(query, query_args)

或者有没有办法设置连接池参数。

根据小马 orm 文档

连接池无需跟踪数据库连接。当您需要时,您就有了连接,当您完成交易后,连接将返回到池中。

但我看到每次选择调用时总是打开连接。例如:5 次通话导致 5 次连接。我怎样才能设置最大值。连接数?

【问题讨论】:

    标签: python postgresql-11 ponyorm


    【解决方案1】:

    正如 PonnyORM 的 documentation 所说:

    ...
    bind(provider, *args, **kwargs)
    bind(*args, **kwargs) 将实体绑定到 一个数据库。

    参数: provider (str) – 数据库提供者的名称。数据库提供程序是一个模块,位于 pony.orm.dbproviders 包。它知道如何与特定的 数据库。在数据库提供程序名称之后,您应该指定 将传递给连接()方法的参数 相应的 DBAPI 驱动程序。 Pony 附带以下提供程序: “sqlite”、“postgres”、“mysql”、“oracle”、“cockroachdb”。这个参数 也可以用作关键字参数。

    args数据库驱动程序所需的参数。
    kwargs数据库驱动程序所需的参数。 ...

    如果您使用 Psycopg,您可以检查 this documentation 以在您的数据库设置中使用更多参数。我不确定 PonyORM 是否在其库中考虑了这个包的所有选项。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-06-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-08-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多