Skip to content

Commit 6c0a8bc

Browse files
committed
bugfix: 当bucket延迟时间与job元信息延迟时间不一致时, Job可能会被误删除
1 parent 3145105 commit 6c0a8bc

File tree

1 file changed

+3
-3
lines changed

1 file changed

+3
-3
lines changed

delayqueue/delay_queue.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@ func Get(jobId string) (*Job, error) {
9090
return job, err
9191
}
9292

93-
// 轮询获取Job名称, 使job分布到不同bucket中, 提高扫描速度
93+
// 轮询获取bucket名称, 使job分布到不同bucket中, 提高扫描速度
9494
func generateBucketName() <-chan string {
9595
c := make(chan string)
9696
go func() {
@@ -162,10 +162,10 @@ func tickHandler(t time.Time, bucketName string) {
162162

163163
// 再次确认元信息中delay是否小于等于当前时间
164164
if job.Delay > t.Unix() {
165+
// 从bucket中删除旧的jobId
166+
removeFromBucket(bucketName, bucketItem.jobId)
165167
// 重新计算delay时间并放入bucket中
166168
pushToBucket(<-bucketNameChan, job.Delay, bucketItem.jobId)
167-
// 从bucket中删除之前的bucket
168-
removeFromBucket(bucketName, bucketItem.jobId)
169169
continue
170170
}
171171

0 commit comments

Comments
 (0)