cron 作业不工作 node-cron

cron job is not working node-cron

我正在尝试在 10 分钟后 运行 执行 cron 作业,有时在 10 分钟后 运行s,有时在我调用网络服务时 运行s 在大约 2 分钟后.下面是代码

router.post('/getUser', function (req, res) {
    var task = cron.schedule('0 */10 * * * *', function () {
        console.log("cron job started")
     }, false);
     task.start();
})

它应该总是在 10 分钟后 运行 秒,而不是像调用 web 服务后立即 2 分钟。

cron 语法表示 运行 在固定时间而不是在间隔之后执行命令。

*/10表示模数为0时执行命令

在您的情况下,代码将在每天每小时的每 10 分钟的第 0 秒执行,依此类推。

所以你的 cron 将在例如执行 09:00、09:10、09:20、09:30 等。

我知道使用内置方法的唯一方法是使用类似

的方法
setTimeout(myFunc, 10 * 60 * 1000);

另一种选择是在现在 +10 分钟的计算正确时间设置一个固定的 cron 运行ning,并在其中指定确切的执行时间 moment.js。

例子

var moment = require('moment')


router.post('/getUser', function (req, res) {
var cronString = moment().second() +' '+ moment().add(10,'minutes').minute() +' '+ moment().hour() +' '+ moment().day() +' '+ moment().month() +' *';

var task = cron.schedule(cronString, function () {
    console.log("cron job started")
 }, false);
 task.start();
})

但请注意,这将在每年的同一时间执行;)