【发布时间】:2022-02-17 20:41:20
【问题描述】:
我有一个名为scheduler() 的脚本,它在 Postgres 数据库上运行一些查询,然后完成。我遇到了脚本挂在终端中并且之后不退出的问题。
这是我的代码:
scheduler.js
const {pool} = require("./db");
const scheduler = async function() {
try {
await auctionCheck();
return pool.end().then(() => {
console.log('Pool\'s closed');
return;
})
} catch (e) {
console.error(e)
return;
}
}
return scheduler();
db.js
const {Pool} = require("pg");
const pool = new Pool({
connectionString: process.env.DATABASE_URL,
});
pool.on('error', (err, client) => {
console.error('Unexpected error on idle client', err)
process.exit(-1)
})
pool.connect();
module.exports = {pool};
当我没有pool.end() 调用时,我的脚本没有退出,但它也没有通过end() 调用退出。永远不会打印“池已关闭”日志。 node-pg documentation 说我应该这样做来关闭连接(我假设我的脚本没有完成的原因是由于打开的数据库连接。)我想基本上定期运行一些函数然后让脚本完成,但目前它只是活着。我做错了什么?
【问题讨论】:
标签: node.js node-postgres node-pg-pool