以不同的时序循环不同的功能

时间:2018-02-05 09:45:09

标签: javascript node.js express setinterval

我有一些功能,例如 afoo()bfoo()cfoo() ,我希望这些功能在不同时间的循环中同时/并行运行

示例:

afoo() - >每5分钟运行一次

bfoo() - >每10分钟运行一次

cfoo() - >每小时跑一次

有没有这样做?也许使用SetInterval()?

1 个答案:

答案 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);