Nodejs重复每个系统小时

时间:2014-10-16 10:29:11

标签: node.js

我正在使用片刻(当前时间)和waitjs(重复)模块 如果我按以下方式编写代码:

repeat(86400000, function() {  //DASHBOARD 
});

此功能每1小时重复一次。但自计划启动以来,它已经计算在内。
我想使用系统时间。例如;当系统时间1:00:00(A.M。)该功能将起作用。并且每小时继续 我怎样才能做到这一点?

感谢!

2 个答案:

答案 0 :(得分:1)

在程序启动时,您可以获得直到下一个整整一小时的时间,例如:

  • 如果该计划于凌晨1:20开始
  • 到下一个整整一小时的时间将是四十分钟。

使用此时间来延迟第一个函数调用的执行,此调用使用setTimemout(http://nodejs.org/api/timers.html)完成。按照示例,您将设置延迟40分钟,然后该功能将在凌晨2:00执行。

然后,您可以在此执行的功能中设置重复功能,以便每隔一小时重复一次。

答案 1 :(得分:1)

使用Moment.js和waitjs你会做这样的事情:

// Wait until end of hour
wait(moment().endOf('hour') - moment(), function() {
    // Start executing repeat function
    repeat(86400000, function() {  //DASHBOARD 
    });
});

查看Moment.js endOf