如题, 一般写法 每隔1分钟执行一次:0 */1 * * * ?
一般每隔90秒怎么写呢,好像实现不了
实在实现不了就代码枚举出具体时间来,再粘贴进去。 如果是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 这样不行,我试过了