【发布时间】:2021-05-24 21:55:38
【问题描述】:
我正在尝试使用 Heroku Scheduler 设置服务,以在我的 worker.js 文件中运行一个函数,以每小时从我的数据库中删除旧数据。当我使用“heroku run worker”部署它后在命令行上对其进行测试时,我只记录了“STARTED”。所以这个函数被执行了,但是一旦它到达等待它就会挂起并最终结束。在本地执行该功能时,它工作正常。
这是我的 worker.js:
const db = require("./db");
const deleteOldData = async () => {
let twoDaysAgoUTC = new Date(Date.now() - 2 * 24 * 60 * 60 * 1000);
twoDaysAgoUTC.toUTCString();
console.log("STARTED") <- only this line gets logged
await db.query(
`DELETE FROM chat_messages WHERE timestamp < $1`,[twoDaysAgoUTC]
);
await db.query(
`DELETE FROM guests
WHERE group_chat_id IN (
SELECT group_chat_id FROM group_chats
WHERE timestamp < $1
)`,[twoDaysAgoUTC]
);
await db.query(
`DELETE FROM group_chats WHERE timestamp < $1`,[twoDaysAgoUTC]
);
console.log("FINISHED")
}
deleteOldData();
process.exit();
【问题讨论】: