aboutsummaryrefslogtreecommitdiffstats
path: root/packages/plugins/queue-restate/src/service.ts
diff options
context:
space:
mode:
Diffstat (limited to 'packages/plugins/queue-restate/src/service.ts')
-rw-r--r--packages/plugins/queue-restate/src/service.ts10
1 files changed, 9 insertions, 1 deletions
diff --git a/packages/plugins/queue-restate/src/service.ts b/packages/plugins/queue-restate/src/service.ts
index b26f66cf..5ba7d1df 100644
--- a/packages/plugins/queue-restate/src/service.ts
+++ b/packages/plugins/queue-restate/src/service.ts
@@ -39,6 +39,7 @@ export function buildRestateService<T, R>(
ctx: restate.Context,
data: {
payload: T;
+ queuedIdempotencyKey?: string;
priority: number;
groupId?: string;
},
@@ -65,7 +66,14 @@ export function buildRestateService<T, R>(
let lastError: Error | undefined;
for (let runNumber = 0; runNumber <= NUM_RETRIES; runNumber++) {
- await semaphore.acquire(priority, data.groupId);
+ const acquired = await semaphore.acquire(
+ priority,
+ data.groupId,
+ data.queuedIdempotencyKey,
+ );
+ if (!acquired) {
+ return;
+ }
const res = await runWorkerLogic(ctx, funcs, {
id,
data: payload,