【发布时间】:2022-03-24 17:19:46
【问题描述】:
我正在寻求有关 TypeORM 和 PostgreSQL 的帮助。为了避免长时间运行的查询,我想在连接级别设置语句超时。
我该怎么做?
【问题讨论】:
标签: postgresql typeorm
我正在寻求有关 TypeORM 和 PostgreSQL 的帮助。为了避免长时间运行的查询,我想在连接级别设置语句超时。
我该怎么做?
【问题讨论】:
标签: postgresql typeorm
maxQueryExecutionTime如果查询执行时间超过这个给定的最大值 执行时间(以毫秒为单位)然后记录器将记录此查询。
如果这不能满足您的要求,您可以使用 extra 发送 postgres 驱动程序配置。
extra- 要传递给底层的额外连接选项 司机。如果您想将额外的设置传递给底层,请使用它 数据库驱动程序。
【讨论】:
maxQueryExecutionTime 确实如此,这就是为什么我还指出 extra 并且您可以通过它发送更多 postgres 特定参数. node-postgres.com/api/client
extra。非常感谢您抽出时间吉姆,我会进一步看看。我已经对你的回答投了赞成票。
对我有用的连接配置:
{
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
当池创建客户端时,传递给池的配置也会传递给池中的每个客户端实例。
【讨论】: