请问多个定时任务之间是异步的吗,我现在配置了很多定时任务,各个时间都有,执行的周期长短都不一样,现在发现有的任务执行了,有的任务一直不执行,比如a任务每10分钟执行一次,b任务每小时第1分钟执行,要是a任务在执行时,正好b任务也该执行了,这样b任务就不会执行
串行,前一个任务完成后才执行后一个任务,除非你用了swoole/swow协程。
swoole/swow
那我分开多多task文件可以吗
可以多个进程,每个进程执行不同的任务
好的谢谢,我先这样试试吧,后续再看看,swoole/swow协程没用过
这个我记得文档里面有写。
crontab并不是异步的,例如一个task进程里设置了A和B两个定时器,都是每秒执行一次任务,但是A任务耗时10秒,那么B需要等待A执行完才能被执行,导致B执行会有延迟。
这里有点模糊。 B是会加入类似 延迟队列里面 当进程空闲---后续执行。 还是 直接就不执行了。
我以为是同一个定时任务,比如每5秒一次,然后执行时间需要1分钟,这样才会延迟执行,不清楚这种分开的也会导致,按现在的情况来看要是固定时间执行的直接就不会执行的
这里 最好 把定时任务 执行放在队列里面 然后 有多少任务 就开多少消费者即可(能保证互相不影响),定时任务 一般 也不会特别多,我是这么处理的
建议一个任务一个进程
串行,前一个任务完成后才执行后一个任务,除非你用了
swoole/swow
协程。那我分开多多task文件可以吗
可以多个进程,每个进程执行不同的任务
好的谢谢,我先这样试试吧,后续再看看,swoole/swow协程没用过
这个我记得文档里面有写。
crontab并不是异步的,例如一个task进程里设置了A和B两个定时器,都是每秒执行一次任务,但是A任务耗时10秒,那么B需要等待A执行完才能被执行,导致B执行会有延迟。
这里有点模糊。 B是会加入类似 延迟队列里面 当进程空闲---后续执行。 还是 直接就不执行了。
我以为是同一个定时任务,比如每5秒一次,然后执行时间需要1分钟,这样才会延迟执行,不清楚这种分开的也会导致,按现在的情况来看要是固定时间执行的直接就不会执行的
这里 最好 把定时任务 执行放在队列里面 然后 有多少任务 就开多少消费者即可(能保证互相不影响),定时任务 一般 也不会特别多,我是这么处理的
建议一个任务一个进程