Skip to content

Commit 073fc1b

Browse files
committed
use the ts of the oldest message in the queue when updating the master queue
1 parent b4bb823 commit 073fc1b

File tree

1 file changed

+7
-3
lines changed

1 file changed

+7
-3
lines changed

packages/redis-worker/src/fair-queue/visibility.ts

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -468,9 +468,13 @@ redis.call('HDEL', inflightDataKey, messageId)
468468
redis.call('ZADD', queueKey, score, messageId)
469469
redis.call('HSET', queueItemsKey, messageId, payload)
470470
471-
-- Update master queue to ensure queue is picked up by consumers
472-
-- Use the message score so older messages get priority
473-
redis.call('ZADD', masterQueueKey, score, queueId)
471+
-- Update master queue with oldest message timestamp
472+
-- This ensures delayed messages don't push the queue priority to the future
473+
-- when there are other ready messages in the queue
474+
local oldest = redis.call('ZRANGE', queueKey, 0, 0, 'WITHSCORES')
475+
if #oldest >= 2 then
476+
redis.call('ZADD', masterQueueKey, oldest[2], queueId)
477+
end
474478
475479
return 1
476480
`,

0 commit comments

Comments
 (0)