node.js在一定时间后发出事件

时间:2016-04-27 12:00:45

标签: javascript node.js events timeout eventemitter

我有一个数据库,其中插入了带有时间戳的数据。一旦这个时间戳超过当前时间之前的24小时,我希望发出一个事件,导致数据被删除,因为它已经过期。

如何做到这一点?我正在运行一个http服务器,因此我无法进行持续检查,因为它会减慢每个请求的速度,如果大量信息累积,则需要花费很长时间来检查每个请求。我还想避免在可能的情况下产生子进程。

有什么想法吗?

2 个答案:

答案 0 :(得分:3)

您可以使用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.');
});

答案 1 :(得分:0)

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