关于多个定时任务有的执行,有的没执行的问题

fionasit

问题描述

请问多个定时任务之间是异步的吗,我现在配置了很多定时任务,各个时间都有,执行的周期长短都不一样,现在发现有的任务执行了,有的任务一直不执行,比如a任务每10分钟执行一次,b任务每小时第1分钟执行,要是a任务在执行时,正好b任务也该执行了,这样b任务就不会执行

208 3 0
3个回答

JustForFun

串行,前一个任务完成后才执行后一个任务,除非你用了swoole/swow协程。

  • fionasit 7天前

    那我分开多多task文件可以吗

  • JustForFun 7天前

    可以多个进程,每个进程执行不同的任务

  • fionasit 7天前

    好的谢谢,我先这样试试吧,后续再看看,swoole/swow协程没用过

morris

这个我记得文档里面有写。

crontab并不是异步的,例如一个task进程里设置了A和B两个定时器,都是每秒执行一次任务,但是A任务耗时10秒,那么B需要等待A执行完才能被执行,导致B执行会有延迟。

这里有点模糊。 B是会加入类似 延迟队列里面 当进程空闲---后续执行。 还是 直接就不执行了。

  • fionasit 7天前

    我以为是同一个定时任务,比如每5秒一次,然后执行时间需要1分钟,这样才会延迟执行,不清楚这种分开的也会导致,按现在的情况来看要是固定时间执行的直接就不会执行的

  • tanhongbin 7天前

    这里 最好 把定时任务 执行放在队列里面 然后 有多少任务 就开多少消费者即可(能保证互相不影响),定时任务 一般 也不会特别多,我是这么处理的

army

建议一个任务一个进程

  • 暂无评论
🔝