Skip to content

Commit 83d2126

Browse files
committed
fix: worker should process at least wait time
1 parent 33f856a commit 83d2126

File tree

1 file changed

+5
-0
lines changed

1 file changed

+5
-0
lines changed

src/api.js

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -354,12 +354,17 @@ export class Worker {
354354
this.client = client
355355
logWorker('Created worker process ', { id: client.consumername, prefix: client.prefix, minMessageLifetime: client.redisMinMessageLifetime })
356356
;(async () => {
357+
let prev = performance.now()
357358
while (!client._destroyed) {
358359
try {
359360
const { reclaimCounts } = await client.consumeWorkerQueue(opts)
361+
const now = performance.now()
360362
if (reclaimCounts === 0) {
361363
await promise.wait(client.redisWorkerTimeout)
364+
} else if (now - prev < client.redisWorkerTimeout) {
365+
await promise.wait(client.redisWorkerTimeout - (now - prev))
362366
}
367+
prev = now
363368
} catch (e) {
364369
console.error(e)
365370
}

0 commit comments

Comments
 (0)