【问题标题】:TypeORM PostgreSQL statement timeoutTypeORM PostgreSQL 语句超时
【发布时间】:2022-03-24 17:19:46
【问题描述】:

我正在寻求有关 TypeORM 和 PostgreSQL 的帮助。为了避免长时间运行的查询,我想在连接级别设置语句超时。

我该怎么做?

【问题讨论】:

    标签: postgresql typeorm


    【解决方案1】:

    TypeORM documentation

    maxQueryExecutionTime 如果查询执行时间超过这个给定的最大值 执行时间(以毫秒为单位)然后记录器将记录此查询。

    如果这不能满足您的要求,您可以使用 extra 发送 postgres 驱动程序配置。

    extra - 要传递给底层的额外连接选项 司机。如果您想将额外的设置传递给底层,请使用它 数据库驱动程序。

    【讨论】:

    • 根据文档,它只会登录到控制台。它是否也中止查询? maxQueryExecutionTime - 如果查询执行时间超过给定的最大执行时间(以毫秒为单位),那么记录器将记录此查询。
    • 您“说设置语句超时”有点含糊...... maxQueryExecutionTime 确实如此,这就是为什么我还指出 extra 并且您可以通过它发送更多 postgres 特定参数. node-postgres.com/api/client
    • 您确实提到了extra。非常感谢您抽出时间吉姆,我会进一步看看。我已经对你的回答投了赞成票。
    【解决方案2】:

    对我有用的连接配置:

    {
        name: "default",
        // .....
        extra: {
            application_name: "your_app_name",
            statement_timeout: 30000 // 30s
        }
    }
    
    

    我们可以检查这些额外的选项是如何在驱动程序中使用的: https://github.com/typeorm/typeorm/blob/68a5c230776f6ad4e3ee7adea5ad4ecdce033c7e/src/driver/postgres/PostgresDriver.ts#L1361

    此处列出了可用选项:https://node-postgres.com/api/pool

    在这里:https://node-postgres.com/api/client

    当池创建客户端时,传递给池的配置也会传递给池中的每个客户端实例。

    【讨论】:

      猜你喜欢
      • 2022-10-07
      • 1970-01-01
      • 2013-05-01
      • 2021-01-15
      • 2018-08-13
      • 1970-01-01
      • 2012-07-03
      • 2015-12-24
      • 1970-01-01
      相关资源
      最近更新 更多