2017-01-16 107 views
1

这里是我们的情景:连续检查的日期是否已经过期

我们使用节点W /表达了我们的web应用程序,我们需要创建一个后台进程,不断检查多个创建日期帖子以及何时到期。这些过期的日期由用户设置,以便帖子以不同的速率过期。当日期到期时,我们的应用程序应该触发特定事件。

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

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

+0

的http://计算器.com/questions/26909924/nodejs-date-listener-and-then-callback – Adiii

回答

0

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

1)使用时刻LIB是这样的:

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

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

2)使用节点的时间表是这样的:

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.'); 
}); 
0

林不知道关于您的代码,但如果您可以在用户发帖时发现事件,简单的方法是

setTimeout(whateverYouHaveTodo, expireTimeInMilliseconds); 

每次事件被触发。

如果您需要取消在未来的超时,我亲自做的是什么把超时的JSON对象与密钥作为唯一的ID,你可以识别事件专门

+0

嗨莱安德罗, 我很感谢您的回复,但当我提到多个职位,我说的可能是1000+的帖子,使您的解决方案不能在我们的扩展意见。我将编辑我的问题。 谢谢! – BLee