首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >cron作业不是工作节点-cron

cron作业不是工作节点-cron
EN

Stack Overflow用户
提问于 2016-07-28 07:26:06
回答 1查看 8.5K关注 0票数 0

我试着在10分钟后运行一个cron作业,有时在10分钟后运行,有时在调用webservice时运行2分钟。下面是代码

代码语言:javascript
复制
router.post('/getUser', function (req, res) {
    var task = cron.schedule('0 */10 * * * *', function () {
        console.log("cron job started")
     }, false);
     task.start();
})

它应该总是在10分钟后运行,而不是像webservice被调用后的2分钟那样运行。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-07-28 09:12:09

cron语法要求在固定时间运行命令,而不是在间隔之后运行。

如果模块为0,则*/10意味着执行命令

在您的例子中,代码将在第二、第二、每10分钟、每小时、每一天等等。

所以您的cron将被执行,例如09:00,09:10,09:20,09:30等等。

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

代码语言:javascript
复制
setTimeout(myFunc, 10 * 60 * 1000);

另一个选项是设置一个固定的cron,在计算的正确时间现在+10分钟与moment.js一起运行,在这里指定确切的执行时间。

示例

代码语言:javascript
复制
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();
})

但要注意这样一个事实,即每年都要在同一时间执行;)

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38629696

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档