From 3dbf0b3a64789022897a044295be5501487e81b9 Mon Sep 17 00:00:00 2001 From: Adria Navarro Date: Tue, 5 Mar 2024 23:33:20 +0100 Subject: [PATCH] Throw errors on lock not executed --- .../backend-core/src/cache/docWritethrough.ts | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/packages/backend-core/src/cache/docWritethrough.ts b/packages/backend-core/src/cache/docWritethrough.ts index 3f84f82bc4..14b186271c 100644 --- a/packages/backend-core/src/cache/docWritethrough.ts +++ b/packages/backend-core/src/cache/docWritethrough.ts @@ -24,7 +24,16 @@ interface ProcessDocMessage { } export const docWritethroughProcessorQueue = createQueue( - JobQueue.DOC_WRITETHROUGH_QUEUE + JobQueue.DOC_WRITETHROUGH_QUEUE, + { + jobOptions: { + attempts: 5, + backoff: { + type: "fixed", + delay: 1000, + }, + }, + } ) docWritethroughProcessorQueue.process(async message => { @@ -41,7 +50,7 @@ docWritethroughProcessorQueue.process(async message => { const lockResponse = await locks.doWithLock( { - type: LockType.TRY_ONCE, + type: LockType.TRY_TWICE, name: LockName.PERSIST_WRITETHROUGH, resource: cacheKeyPrefix, ttl: Duration.fromSeconds(60).toMs(), @@ -61,7 +70,7 @@ docWritethroughProcessorQueue.process(async message => { ) if (!lockResponse.executed) { - console.log(`Ignoring redlock conflict in write-through cache`) + throw new Error(`Ignoring redlock conflict in write-through cache`) } })