xxl-job icon indicating copy to clipboard operation
xxl-job copied to clipboard

时间轮有并发问题,极端情况下丢失调度

Open wangqingchengsg opened this issue 2 years ago • 8 comments

image

Uploading image.png…

一个线程向时间轮添加,一个线程删除,并发问题

wangqingchengsg avatar Jun 02 '22 08:06 wangqingchengsg

image

wangqingchengsg avatar Jun 02 '22 08:06 wangqingchengsg

这个代码确实是会有并发问题存在

cc-nnqt avatar Jun 16 '22 14:06 cc-nnqt

这里的并发问题,具体指什么呢?比如是使用的容器不具备线程安全性,还是某段操作不具备原子性

lanicc avatar Jun 30 '22 01:06 lanicc

代码逻辑是会补偿1s之前的调度。就算在同一秒内,先remove,再push,丢失了这一次的调度,在下一秒同样可以补偿到上一秒丢失的调度。

如果还是没有补偿到,那么在下一个5s将会立即进行一次调度。

lzj960515 avatar Dec 21 '22 06:12 lzj960515

代码逻辑是会补偿1s之前的调度。就算在同一秒内,先remove,再push,丢失了这一次的调度,在下一秒同样可以补偿到上一秒丢失的调度。

如果还是没有补偿到,那么在下一个5s将会立即进行一次调度。

如果MisfireStrategy是不处理过期任务,还是会丢任务

yaokkkkk avatar Jan 12 '23 07:01 yaokkkkk

这里的确有问题

dingyaK avatar Feb 11 '23 18:02 dingyaK

认真看了下无论MisfireStrategy是什么都会有问题,进缓存之前就更新了时间了

yaokkkkk avatar Feb 17 '23 11:02 yaokkkkk