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

node.js emit event after certain time

本文关键字:出事件 定时间 js 节点      更新时间:2023-09-26

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

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

有什么想法吗?

您可以使用节点调度来调度作业(任意函数)在特定日期执行。

例如,以下命令将在调用函数 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.');
});

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