不断检查日期是否已过期

时间:2017-01-16 13:13:29

标签: javascript node.js mongodb express web-applications

以下是我们的情景:

我们正在为我们的网络应用程序使用节点w / express,我们需要创建一个后台进程,持续检查多个帖子上的创建日期以及它们何时到期。这些过期日期由用户设置,因此帖子将以不同的费率过期。当日期到期时,我们的应用程序应该触发特定事件。

我们正在考虑使用“setInterval”,但不确定这是否是最好的长期解决方案。

是否有解决方案让节点持续检查日期是否已过期?到期后,帖子必须触发特定功能。

2 个答案:

答案 0 :(得分:0)

有两种方法可以做到这一点:

1)使用像这样的时刻:

var date = moment("2013-03-24")
var now = moment();

if (now > date) {
   // date is past
} else {
   // date is future
}

2)使用node-schedule,如下所示:

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)

我不确定您的代码,但如果您可以在用户发布时捕获该事件,那么简单的方法就是

setTimeout(whateverYouHaveTodo, expireTimeInMilliseconds);
每次触发事件时

如果您需要在将来取消超时,我个人所做的就是将超时放在一个json对象中,并将该键作为唯一ID,您可以专门识别该事件

相关问题