我有一个数据库,其中插入了带有时间戳的数据。一旦这个时间戳超过当前时间之前的24小时,我希望发出一个事件,导致数据被删除,因为它已经过期。
如何做到这一点?我正在运行一个http服务器,因此我无法进行持续检查,因为它会减慢每个请求的速度,如果大量信息累积,则需要花费很长时间来检查每个请求。我还想避免在可能的情况下产生子进程。
有什么想法吗?
答案 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?