我有一些功能,例如 afoo()
,bfoo()
和cfoo()
,我希望这些功能在不同时间的循环中同时/并行运行
示例:
afoo()
- >每5分钟运行一次
bfoo()
- >每10分钟运行一次
cfoo()
- >每小时跑一次
有没有这样做?也许使用SetInterval()?
答案 0 :(得分:1)
你可以使用setInterval方法在每个固定的时间延迟上调用一个函数,在大多数情况下,它与clearInterval方法结合使用来停止重复调用,这是一个例子:
var interval = setInterval( function () {
afoo( function (err) {
// clear interval if an error occured
if ( err ) {
console.log(err);
clearInterval(interval);
}
});
}, 5 * 60 * 1000);
如果你想要更多的控制然后使用node-cron模块,它与linux系统使用的cron pattern相同,例如:
const CronJob = require('cron').CronJob;
// run afoo function every 15 min
var job = new CronJob('00 15 * * * *', afoo);