node.js 特定时间后发出事件

node.js emit event after certain time

我有一个数据库,其中插入了带有时间戳的数据。一旦这个时间戳比当前时间早 24 小时以上,我希望发出一个事件,导致数据在过期后被删除。

如何做到这一点?我是 运行 一个 http 服务器,所以我负担不起持续检查的费用,因为它会减慢每个请求的速度,如果积累了大量信息,则需要很长时间来检查每个请求。我还想尽可能避免生成子进程。

有什么想法吗?

您想从数据库中删除数据,为什么不用crontab?

您可以使用 node-schedule 安排作业(任意函数)在特定日期执行。

例如,以下将 运行 函数在调用后 24 小时:

var schedule = require('node-schedule');
var futureDate = new Date(new Date().getTime() + 60 * 60 * 24 * 1000); // This is 24 hours from *now*

var j = schedule.scheduleJob(futureDate, function(){
  console.log('Do your work here.');
});