Skip to content

Commit 461ec42

Browse files
committed
Get the attempt when dequeuing
1 parent b8d7380 commit 461ec42

File tree

2 files changed

+16
-0
lines changed

2 files changed

+16
-0
lines changed

internal-packages/redis-worker/src/queue.test.ts

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ describe("SimpleQueue", () => {
3535
job: "test",
3636
item: { value: 1 },
3737
visibilityTimeoutMs: 2000,
38+
attempt: 0,
3839
});
3940
expect(await queue.size()).toBe(1);
4041
expect(await queue.size({ includeFuture: true })).toBe(2);
@@ -48,6 +49,7 @@ describe("SimpleQueue", () => {
4849
job: "test",
4950
item: { value: 2 },
5051
visibilityTimeoutMs: 2000,
52+
attempt: 0,
5153
});
5254

5355
await queue.ack(second.id);
@@ -84,6 +86,7 @@ describe("SimpleQueue", () => {
8486
job: "test",
8587
item: { value: 1 },
8688
visibilityTimeoutMs: 2000,
89+
attempt: 0,
8790
});
8891

8992
const missTwo = await queue.dequeue(1);
@@ -116,6 +119,7 @@ describe("SimpleQueue", () => {
116119
item: { value: 1 },
117120
availableAt: new Date(Date.now() + 50),
118121
visibilityTimeoutMs: 2000,
122+
attempt: 0,
119123
});
120124

121125
const miss = await queue.dequeue(1);
@@ -129,6 +133,7 @@ describe("SimpleQueue", () => {
129133
job: "test",
130134
item: { value: 1 },
131135
visibilityTimeoutMs: 2000,
136+
attempt: 0,
132137
});
133138
} finally {
134139
await queue.close();
@@ -160,6 +165,7 @@ describe("SimpleQueue", () => {
160165
job: "test",
161166
item: { value: 1 },
162167
visibilityTimeoutMs: 1_000,
168+
attempt: 0,
163169
});
164170

165171
const missImmediate = await queue.dequeue(1);
@@ -173,6 +179,7 @@ describe("SimpleQueue", () => {
173179
job: "test",
174180
item: { value: 1 },
175181
visibilityTimeoutMs: 1_000,
182+
attempt: 0,
176183
});
177184
} finally {
178185
await queue.close();
@@ -210,12 +217,14 @@ redisTest("dequeue multiple items", { timeout: 20_000 }, async ({ redisContainer
210217
job: "test",
211218
item: { value: 1 },
212219
visibilityTimeoutMs: 2000,
220+
attempt: 0,
213221
});
214222
expect(dequeued[1]).toEqual({
215223
id: "2",
216224
job: "test",
217225
item: { value: 2 },
218226
visibilityTimeoutMs: 2000,
227+
attempt: 0,
219228
});
220229

221230
expect(await queue.size()).toBe(1);
@@ -232,6 +241,7 @@ redisTest("dequeue multiple items", { timeout: 20_000 }, async ({ redisContainer
232241
job: "test",
233242
item: { value: 3 },
234243
visibilityTimeoutMs: 2000,
244+
attempt: 0,
235245
});
236246

237247
await queue.ack(last.id);

internal-packages/redis-worker/src/queue.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,12 +66,14 @@ export class SimpleQueue<TMessageCatalog extends MessageCatalogSchema> {
6666
id,
6767
job,
6868
item,
69+
attempt,
6970
availableAt,
7071
visibilityTimeoutMs,
7172
}: {
7273
id?: string;
7374
job: MessageCatalogKey<TMessageCatalog>;
7475
item: MessageCatalogValue<TMessageCatalog, MessageCatalogKey<TMessageCatalog>>;
76+
attempt?: number;
7577
availableAt?: Date;
7678
visibilityTimeoutMs: number;
7779
}): Promise<void> {
@@ -81,6 +83,7 @@ export class SimpleQueue<TMessageCatalog extends MessageCatalogSchema> {
8183
job,
8284
item,
8385
visibilityTimeoutMs,
86+
attempt,
8487
});
8588

8689
const result = await this.redis.enqueueItem(
@@ -110,6 +113,7 @@ export class SimpleQueue<TMessageCatalog extends MessageCatalogSchema> {
110113
job: MessageCatalogKey<TMessageCatalog>;
111114
item: MessageCatalogValue<TMessageCatalog, MessageCatalogKey<TMessageCatalog>>;
112115
visibilityTimeoutMs: number;
116+
attempt: number;
113117
}>
114118
> {
115119
const now = Date.now();
@@ -150,6 +154,7 @@ export class SimpleQueue<TMessageCatalog extends MessageCatalogSchema> {
150154
id,
151155
item: parsedItem,
152156
errors: validatedItem.error,
157+
attempt: parsedItem.attempt,
153158
});
154159
continue;
155160
}
@@ -164,6 +169,7 @@ export class SimpleQueue<TMessageCatalog extends MessageCatalogSchema> {
164169
job: parsedItem.job,
165170
item: validatedItem.data,
166171
visibilityTimeoutMs,
172+
attempt: parsedItem.attempt ?? 0,
167173
});
168174
}
169175

0 commit comments

Comments
 (0)