以下是我们的情景:
我们正在为我们的网络应用程序使用节点w / express,我们需要创建一个后台进程,持续检查多个帖子上的创建日期以及它们何时到期。这些过期日期由用户设置,因此帖子将以不同的费率过期。当日期到期时,我们的应用程序应该触发特定事件。
我们正在考虑使用“setInterval”,但不确定这是否是最好的长期解决方案。
是否有解决方案让节点持续检查日期是否已过期?到期后,帖子必须触发特定功能。
答案 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,您可以专门识别该事件