Bbb*_*bob 9 mysql timeout node.js sequelize.js
我想看看如何在 Sequelize 中设置查询的超时时间。
我已经查看了 Sequelize 文档以获取一些信息,但我无法完全找到我正在寻找的内容。我发现的最接近的是“pools.acquire”选项,但我不想设置传入连接的超时,而是设置正在进行的查询的超时,以便我可以快速短路死锁。
http://docs.sequelizejs.com/class/lib/sequelize.js~Sequelize.html
这是我的示例代码:
const db = new Sequelize( database, username, password, {
host : hostname,
dialect: "mysql",
define : {},
pool: {
max : 10,
min : 0,
idle: 10000
},
})
Run Code Online (Sandbox Code Playgroud)
任何见解将不胜感激!
添加 dialectOptions
const db2 = new Sequelize(database, username, password, {
host: hostname,
dialect: "mysql",
define: {},
dialectOptions: {
options: {
requestTimeout: 3000
}
},
pool: {
max: 10,
min: 0,
idle: 10000
},
});
Run Code Online (Sandbox Code Playgroud)
如果有人偶然在这里寻找 Postgres 特定的查询超时配置,它在 sequelize v5 中看起来像这样:
dialectOptions: {
statement_timeout: 1000,
idle_in_transaction_session_timeout: 5000
}
Run Code Online (Sandbox Code Playgroud)
这会将 statement_timeout 设置为 1s,将 idle_in_transaction_session_timeout 设置为 5s。参考 https://github.com/sequelize/sequelize/blob/master/src/dialects/postgres/connection-manager.js
对于 Sequelize v6 和 mysql2 驱动程序,以下代码有效,
export const database = new Sequelize(
Config.get('DB.NAME'),
Config.get('DB.USER'),
Config.get('DB.PASS'),
{
host: Config.get('DB.HOST'),
port: 3306,
dialect: 'mysql',
dialectOptions: { connectTimeout: isDevEnv ? 15000 : 5000 }
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
15178 次 |
| 最近记录: |