请教下各位,定时任务 每90秒怎么写 cron写法
发布于 5 年前 作者 cllgeek 7003 次浏览 来自 问答

如题, 一般写法 每隔1分钟执行一次:0 */1 * * * ?

一般每隔90秒怎么写呢,好像实现不了

10 回复

实在实现不了就代码枚举出具体时间来,再粘贴进去。 如果是Linux的crontab的最小执行单位是分不是秒,那么你上面的应该是一小时执行一次,使用我上面的方法借用sleep命令也可以解决。 如果你说的是node-cron库的话,直接可以用我上面的说的,枚举一个小时(正好一个小时有40个90秒),代码如下(大概逻辑是这样,没执行验证):

let needRunList = [];
let min = 0;
let sec = 0;
while(min<60) {
    needRunList.push([sec,min,'*','*','*','*'])
    sec+=30;
    min+=1;
    if (sec==60) {sec=0;min++}
}
let runFunc = ()=>{
    // 需要执行的代码
}
for(let i=0;i<needRunList.length;i++) {
    new CronJob(needRunList[i].join(' '), runFunc);
}

来自酷炫的 CNodeMD

先这样,再这样,最后那样就行了!

如果是egg的定时任务,cron不支持,但是可以用interval,参考schedule schedule: { interval: ‘90s’ }

这个问题很有意思啊。

我感觉不行,因为每隔90秒这个周期需要秒和分信息的关联。 例如秒可以落在0,30,0,30… 但是cron不知道当前分钟要取0还是30

感谢各位的给力回答,知道怎么做了

来自: https://serverfault.com/questions/123629/run-task-every-90-minutes-with-cron

0 0-21/3 * * * whatever 30 1-22/3 * * * whatever

很硬核的写法了。。

上面那个是90分钟的,这个是90秒 来自:https://stackoverflow.com/questions/6785222/cron-job-to-run-a-php-script-every-90-seconds-between-5am-and-10pm

-/3 5-22 * * * your_script.php -/3 5-22 * * * sleep 90;your_script.php

很硬核的写法了。。

setInterval 虽然不是很精确但是够用。

*/30 */1 * * * ? 这样?

或者 0/30 */1 * * * ? 这样!

@tomoya92 这样不行,我试过了

回到顶部