@indigoai-us/hq-cloud 6.15.63 → 6.15.64
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bin/sync-runner-watch-loop.d.ts.map +1 -1
- package/dist/bin/sync-runner-watch-loop.js +9 -3
- package/dist/bin/sync-runner-watch-loop.js.map +1 -1
- package/dist/bin/sync-runner.test.js +142 -16
- package/dist/bin/sync-runner.test.js.map +1 -1
- package/dist/cli/sync.test.js +2 -0
- package/dist/cli/sync.test.js.map +1 -1
- package/dist/sync/event-sync.d.ts.map +1 -1
- package/dist/sync/event-sync.js +11 -2
- package/dist/sync/event-sync.js.map +1 -1
- package/dist/sync/event-sync.test.js +19 -1
- package/dist/sync/event-sync.test.js.map +1 -1
- package/dist/sync/logger.test.js +3 -0
- package/dist/sync/logger.test.js.map +1 -1
- package/dist/sync/metrics.test.js +3 -0
- package/dist/sync/metrics.test.js.map +1 -1
- package/dist/sync/push-receiver.d.ts +21 -3
- package/dist/sync/push-receiver.d.ts.map +1 -1
- package/dist/sync/push-receiver.js +92 -59
- package/dist/sync/push-receiver.js.map +1 -1
- package/dist/sync/push-receiver.test.js +169 -0
- package/dist/sync/push-receiver.test.js.map +1 -1
- package/package.json +1 -1
|
@@ -106,6 +106,13 @@ export const DEFAULT_RECEIVER_DISPOSE_DRAIN_MS = 5_000;
|
|
|
106
106
|
export const DEFAULT_WAIT_TIME_SECONDS = 20;
|
|
107
107
|
/** Default max messages pulled per `receiveMessage` call (SQS max is 10). */
|
|
108
108
|
export const DEFAULT_MAX_MESSAGES = 10;
|
|
109
|
+
/**
|
|
110
|
+
* A receiver holds selected receipts until the targeted pull succeeds and all
|
|
111
|
+
* coalesced receipts are acknowledged. Ten minutes covers the observed
|
|
112
|
+
* 30–120 second pulls plus a bounded 1,000-receipt delete tail, without
|
|
113
|
+
* changing the queue-owned default visibility timeout.
|
|
114
|
+
*/
|
|
115
|
+
export const DEFAULT_RECEIVER_VISIBILITY_TIMEOUT_SECONDS = 600;
|
|
109
116
|
/** Reconnect backoff defaults. */
|
|
110
117
|
export const DEFAULT_RECONNECT_INITIAL_MS = 250;
|
|
111
118
|
export const DEFAULT_RECONNECT_MAX_MS = 30_000;
|
|
@@ -294,6 +301,7 @@ export class SqsPushReceiver {
|
|
|
294
301
|
logger;
|
|
295
302
|
waitTimeSeconds;
|
|
296
303
|
maxMessages;
|
|
304
|
+
visibilityTimeoutSeconds;
|
|
297
305
|
disposeDrainMs;
|
|
298
306
|
reconnectInitialMs;
|
|
299
307
|
reconnectMaxMs;
|
|
@@ -320,7 +328,6 @@ export class SqsPushReceiver {
|
|
|
320
328
|
_dedupedCount = 0;
|
|
321
329
|
_decodeFailureCount = 0;
|
|
322
330
|
_receiveErrorCount = 0;
|
|
323
|
-
pendingMessages = [];
|
|
324
331
|
constructor(opts) {
|
|
325
332
|
if (!opts.tenantId || opts.tenantId.trim() === "") {
|
|
326
333
|
throw new Error("SqsPushReceiver: tenantId is required");
|
|
@@ -348,6 +355,7 @@ export class SqsPushReceiver {
|
|
|
348
355
|
this.logger = opts.logger ?? NOOP_LOGGER;
|
|
349
356
|
this.waitTimeSeconds = opts.waitTimeSeconds ?? DEFAULT_WAIT_TIME_SECONDS;
|
|
350
357
|
this.maxMessages = opts.maxMessages ?? DEFAULT_MAX_MESSAGES;
|
|
358
|
+
this.visibilityTimeoutSeconds = Math.max(1, Math.min(43_200, Math.floor(opts.visibilityTimeoutSeconds ?? DEFAULT_RECEIVER_VISIBILITY_TIMEOUT_SECONDS)));
|
|
351
359
|
this.disposeDrainMs =
|
|
352
360
|
opts.disposeDrainMs ?? DEFAULT_RECEIVER_DISPOSE_DRAIN_MS;
|
|
353
361
|
this.seenSequencePerPath = new BoundedSequenceDedupe(opts.dedupeMaxPaths);
|
|
@@ -454,16 +462,13 @@ export class SqsPushReceiver {
|
|
|
454
462
|
async pollLoop(signal) {
|
|
455
463
|
let attempt = 0;
|
|
456
464
|
while (!signal.aborted) {
|
|
457
|
-
if (this.pendingMessages.length > 0) {
|
|
458
|
-
await this.handleReceivedMessages([], signal);
|
|
459
|
-
continue;
|
|
460
|
-
}
|
|
461
465
|
let received;
|
|
462
466
|
try {
|
|
463
467
|
received = await this.sqs.receiveMessage({
|
|
464
468
|
queueUrl: this.queueUrl,
|
|
465
469
|
maxMessages: this.maxMessages,
|
|
466
470
|
waitTimeSeconds: this.waitTimeSeconds,
|
|
471
|
+
visibilityTimeoutSeconds: this.visibilityTimeoutSeconds,
|
|
467
472
|
signal,
|
|
468
473
|
});
|
|
469
474
|
attempt = 0; // success → reset backoff
|
|
@@ -488,13 +493,67 @@ export class SqsPushReceiver {
|
|
|
488
493
|
* hot queue needs several non-blocking receives to form a useful batch.
|
|
489
494
|
*
|
|
490
495
|
* `batchMaxPaths` bounds the targeted planner and argv; `drainMaxMessages`
|
|
491
|
-
* bounds receipt memory.
|
|
492
|
-
*
|
|
496
|
+
* bounds receipt memory. Coalescing happens while draining, so once the
|
|
497
|
+
* path cap is full no further receive can lease an unservable backlog.
|
|
493
498
|
*/
|
|
494
499
|
async handleReceivedMessages(initial, signal) {
|
|
495
500
|
if (this.disposing || this.disposed)
|
|
496
501
|
return;
|
|
497
|
-
const
|
|
502
|
+
const selected = new Map();
|
|
503
|
+
const acknowledgedAfterPass = [];
|
|
504
|
+
let receivedCount = 0;
|
|
505
|
+
let saturated = false;
|
|
506
|
+
const selectMessages = async (messages) => {
|
|
507
|
+
for (const msg of messages) {
|
|
508
|
+
receivedCount += 1;
|
|
509
|
+
let event;
|
|
510
|
+
try {
|
|
511
|
+
event = decodePushEvent(msg.Body ?? "");
|
|
512
|
+
}
|
|
513
|
+
catch (err) {
|
|
514
|
+
this._decodeFailureCount += 1;
|
|
515
|
+
this.logger.warn({
|
|
516
|
+
event: "receiver.decode.failed",
|
|
517
|
+
tenantId: this.tenantId,
|
|
518
|
+
messageId: msg.MessageId,
|
|
519
|
+
err: { message: err.message },
|
|
520
|
+
}, "push receiver dropped event: decode failed");
|
|
521
|
+
await this.safeDelete(msg);
|
|
522
|
+
continue;
|
|
523
|
+
}
|
|
524
|
+
// Self-echoes are decoded (so identity is trustworthy), then acknowledged
|
|
525
|
+
// immediately. They never consume a targeted-pull pass.
|
|
526
|
+
if (!this.shouldProcess(event)) {
|
|
527
|
+
await this.safeDelete(msg);
|
|
528
|
+
continue;
|
|
529
|
+
}
|
|
530
|
+
const seen = this.seenSequencePerPath.get(event.relativePath);
|
|
531
|
+
if (seen !== undefined && event.sequenceNumber <= seen) {
|
|
532
|
+
this._dedupedCount += 1;
|
|
533
|
+
await this.safeDelete(msg);
|
|
534
|
+
continue;
|
|
535
|
+
}
|
|
536
|
+
const selectedEvent = selected.get(event.relativePath);
|
|
537
|
+
if (!selectedEvent && selected.size >= this.batchMaxPaths) {
|
|
538
|
+
saturated = true;
|
|
539
|
+
// This receipt cannot join the current pull. Do not hold it behind
|
|
540
|
+
// that pull: explicitly return it now so its next receive has a fresh
|
|
541
|
+
// receipt lease instead of silently waiting for the old lease to expire.
|
|
542
|
+
await this.releaseUnselected(msg);
|
|
543
|
+
continue;
|
|
544
|
+
}
|
|
545
|
+
acknowledgedAfterPass.push(msg);
|
|
546
|
+
if (!selectedEvent || event.sequenceNumber > selectedEvent.sequenceNumber) {
|
|
547
|
+
selected.set(event.relativePath, event);
|
|
548
|
+
}
|
|
549
|
+
else {
|
|
550
|
+
this._dedupedCount += 1;
|
|
551
|
+
}
|
|
552
|
+
}
|
|
553
|
+
};
|
|
554
|
+
await selectMessages(initial);
|
|
555
|
+
if (selected.size === 0)
|
|
556
|
+
return;
|
|
498
557
|
// Drain immediately-available pages until the raw receipt bound. An empty
|
|
499
558
|
// short-poll is only a sampling result, not proof the queue is empty: it
|
|
500
559
|
// must be followed by consecutive short long-poll confirmations. Keep the
|
|
@@ -502,8 +561,8 @@ export class SqsPushReceiver {
|
|
|
502
561
|
const fillDeadline = this.now() + DEFAULT_RECEIVER_DRAIN_FILL_MAX_MS;
|
|
503
562
|
let emptyConfirmations = 0;
|
|
504
563
|
let waitTimeSeconds = 0;
|
|
505
|
-
while (
|
|
506
|
-
|
|
564
|
+
while (!saturated &&
|
|
565
|
+
receivedCount < this.drainMaxMessages &&
|
|
507
566
|
!signal.aborted &&
|
|
508
567
|
this.now() < fillDeadline) {
|
|
509
568
|
// Do not begin a one-second confirmation that would exceed the five
|
|
@@ -516,8 +575,9 @@ export class SqsPushReceiver {
|
|
|
516
575
|
try {
|
|
517
576
|
next = await this.sqs.receiveMessage({
|
|
518
577
|
queueUrl: this.queueUrl,
|
|
519
|
-
maxMessages: Math.min(this.maxMessages, this.drainMaxMessages -
|
|
578
|
+
maxMessages: Math.min(this.maxMessages, this.drainMaxMessages - receivedCount),
|
|
520
579
|
waitTimeSeconds,
|
|
580
|
+
visibilityTimeoutSeconds: this.visibilityTimeoutSeconds,
|
|
521
581
|
signal,
|
|
522
582
|
});
|
|
523
583
|
}
|
|
@@ -545,55 +605,8 @@ export class SqsPushReceiver {
|
|
|
545
605
|
}
|
|
546
606
|
emptyConfirmations = 0;
|
|
547
607
|
waitTimeSeconds = 0;
|
|
548
|
-
|
|
549
|
-
received.push(...next.messages.slice(0, room));
|
|
550
|
-
this.pendingMessages.push(...next.messages.slice(room));
|
|
551
|
-
}
|
|
552
|
-
const selected = new Map();
|
|
553
|
-
const acknowledgedAfterPass = [];
|
|
554
|
-
for (const msg of received) {
|
|
555
|
-
let event;
|
|
556
|
-
try {
|
|
557
|
-
event = decodePushEvent(msg.Body ?? "");
|
|
558
|
-
}
|
|
559
|
-
catch (err) {
|
|
560
|
-
this._decodeFailureCount += 1;
|
|
561
|
-
this.logger.warn({
|
|
562
|
-
event: "receiver.decode.failed",
|
|
563
|
-
tenantId: this.tenantId,
|
|
564
|
-
messageId: msg.MessageId,
|
|
565
|
-
err: { message: err.message },
|
|
566
|
-
}, "push receiver dropped event: decode failed");
|
|
567
|
-
await this.safeDelete(msg);
|
|
568
|
-
continue;
|
|
569
|
-
}
|
|
570
|
-
// Self-echoes are decoded (so identity is trustworthy), then acknowledged
|
|
571
|
-
// immediately. They never consume a targeted-pull pass.
|
|
572
|
-
if (!this.shouldProcess(event)) {
|
|
573
|
-
await this.safeDelete(msg);
|
|
574
|
-
continue;
|
|
575
|
-
}
|
|
576
|
-
const seen = this.seenSequencePerPath.get(event.relativePath);
|
|
577
|
-
if (seen !== undefined && event.sequenceNumber <= seen) {
|
|
578
|
-
this._dedupedCount += 1;
|
|
579
|
-
await this.safeDelete(msg);
|
|
580
|
-
continue;
|
|
581
|
-
}
|
|
582
|
-
const selectedEvent = selected.get(event.relativePath);
|
|
583
|
-
if (!selectedEvent && selected.size >= this.batchMaxPaths) {
|
|
584
|
-
this.pendingMessages.push(msg);
|
|
585
|
-
continue;
|
|
586
|
-
}
|
|
587
|
-
acknowledgedAfterPass.push(msg);
|
|
588
|
-
if (!selectedEvent || event.sequenceNumber > selectedEvent.sequenceNumber) {
|
|
589
|
-
selected.set(event.relativePath, event);
|
|
590
|
-
}
|
|
591
|
-
else {
|
|
592
|
-
this._dedupedCount += 1;
|
|
593
|
-
}
|
|
608
|
+
await selectMessages(next.messages);
|
|
594
609
|
}
|
|
595
|
-
if (selected.size === 0)
|
|
596
|
-
return;
|
|
597
610
|
const events = [...selected.values()];
|
|
598
611
|
const handled = await this.dispatchBatch(events);
|
|
599
612
|
if (handled) {
|
|
@@ -699,6 +712,26 @@ export class SqsPushReceiver {
|
|
|
699
712
|
}, "push receiver failed to delete message (will redeliver; dedupe absorbs)");
|
|
700
713
|
}
|
|
701
714
|
}
|
|
715
|
+
/** Explicitly release an over-cap receipt; failures are loud, never silent. */
|
|
716
|
+
async releaseUnselected(msg) {
|
|
717
|
+
if (!msg.ReceiptHandle)
|
|
718
|
+
return;
|
|
719
|
+
try {
|
|
720
|
+
await this.sqs.changeMessageVisibility({
|
|
721
|
+
queueUrl: this.queueUrl,
|
|
722
|
+
receiptHandle: msg.ReceiptHandle,
|
|
723
|
+
visibilityTimeoutSeconds: 0,
|
|
724
|
+
});
|
|
725
|
+
}
|
|
726
|
+
catch (err) {
|
|
727
|
+
this.logger.error({
|
|
728
|
+
event: "receiver.release.failed",
|
|
729
|
+
tenantId: this.tenantId,
|
|
730
|
+
messageId: msg.MessageId,
|
|
731
|
+
err: { message: err?.message },
|
|
732
|
+
}, "push receiver failed to release an over-cap receipt");
|
|
733
|
+
}
|
|
734
|
+
}
|
|
702
735
|
/**
|
|
703
736
|
* Publish one best-effort latency datum (US-011). Awaits `publishMetric` and
|
|
704
737
|
* swallows any rejection so a metric-backend outage can never reach the poll
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"push-receiver.js","sourceRoot":"","sources":["../../src/sync/push-receiver.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"push-receiver.js","sourceRoot":"","sources":["../../src/sync/push-receiver.ts"],"names":[],"mappings":"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"}
|
|
@@ -55,6 +55,8 @@ function msg(event, receiptHandle = `rh-${event.sequenceNumber}`) {
|
|
|
55
55
|
*/
|
|
56
56
|
class FakeSqs {
|
|
57
57
|
batches = [];
|
|
58
|
+
inFlight = new Map();
|
|
59
|
+
released = [];
|
|
58
60
|
failCount = 0;
|
|
59
61
|
deleted = [];
|
|
60
62
|
receiveCalls = 0;
|
|
@@ -76,6 +78,14 @@ class FakeSqs {
|
|
|
76
78
|
this.failCount -= 1;
|
|
77
79
|
throw new Error("simulated SQS receive failure");
|
|
78
80
|
}
|
|
81
|
+
if (this.released.length > 0 && args.waitTimeSeconds > 1) {
|
|
82
|
+
const messages = this.released.splice(0);
|
|
83
|
+
for (const message of messages) {
|
|
84
|
+
if (message.ReceiptHandle)
|
|
85
|
+
this.inFlight.set(message.ReceiptHandle, message);
|
|
86
|
+
}
|
|
87
|
+
return { messages };
|
|
88
|
+
}
|
|
79
89
|
const next = this.batches[0];
|
|
80
90
|
// Ordinary enqueued batches model work that arrives after this drain's
|
|
81
91
|
// one-second confirmation window; only a regular long poll starts their
|
|
@@ -83,6 +93,10 @@ class FakeSqs {
|
|
|
83
93
|
// pages that must be collected by the current drain.
|
|
84
94
|
if (next && (next.drainable || args.waitTimeSeconds > 1)) {
|
|
85
95
|
this.batches.shift();
|
|
96
|
+
for (const message of next.messages) {
|
|
97
|
+
if (message.ReceiptHandle)
|
|
98
|
+
this.inFlight.set(message.ReceiptHandle, message);
|
|
99
|
+
}
|
|
86
100
|
return { messages: next.messages };
|
|
87
101
|
}
|
|
88
102
|
if (args.waitTimeSeconds === 0)
|
|
@@ -101,6 +115,16 @@ class FakeSqs {
|
|
|
101
115
|
}
|
|
102
116
|
async deleteMessage(args) {
|
|
103
117
|
this.deleted.push(args.receiptHandle);
|
|
118
|
+
this.inFlight.delete(args.receiptHandle);
|
|
119
|
+
}
|
|
120
|
+
async changeMessageVisibility(args) {
|
|
121
|
+
if (args.visibilityTimeoutSeconds !== 0)
|
|
122
|
+
return;
|
|
123
|
+
const message = this.inFlight.get(args.receiptHandle);
|
|
124
|
+
if (!message)
|
|
125
|
+
throw new Error(`unknown receipt ${args.receiptHandle}`);
|
|
126
|
+
this.inFlight.delete(args.receiptHandle);
|
|
127
|
+
this.released.push(message);
|
|
104
128
|
}
|
|
105
129
|
}
|
|
106
130
|
/** Models SQS short-poll sampling: receive #2 is empty while work remains. */
|
|
@@ -137,6 +161,100 @@ class FalseNegativeSqs {
|
|
|
137
161
|
async deleteMessage(args) {
|
|
138
162
|
this.deleted.push(args.receiptHandle);
|
|
139
163
|
}
|
|
164
|
+
async changeMessageVisibility(_args) {
|
|
165
|
+
// This fixture never returns more paths than its configured cap.
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
/**
|
|
169
|
+
* Scaled-time SQS fixture: an omitted receive visibility lease expires before
|
|
170
|
+
* the delayed pass can delete its receipt. A supplied 600-second lease does
|
|
171
|
+
* not. This makes the production redelivery failure deterministic in millis.
|
|
172
|
+
*/
|
|
173
|
+
class VisibilityExpirySqs {
|
|
174
|
+
event;
|
|
175
|
+
visibleAt = 0;
|
|
176
|
+
leaseExpiresAt = 0;
|
|
177
|
+
currentReceipt = "";
|
|
178
|
+
nextReceipt = 0;
|
|
179
|
+
deliveries = [];
|
|
180
|
+
deleted = [];
|
|
181
|
+
requestedVisibilityTimeouts = [];
|
|
182
|
+
constructor(event) {
|
|
183
|
+
this.event = event;
|
|
184
|
+
}
|
|
185
|
+
async receiveMessage(args) {
|
|
186
|
+
this.requestedVisibilityTimeouts.push(args.visibilityTimeoutSeconds);
|
|
187
|
+
if (Date.now() < this.visibleAt) {
|
|
188
|
+
if (args.waitTimeSeconds <= 1)
|
|
189
|
+
return { messages: [] };
|
|
190
|
+
return new Promise((resolve) => {
|
|
191
|
+
if (args.signal.aborted)
|
|
192
|
+
return resolve({ messages: [] });
|
|
193
|
+
args.signal.addEventListener("abort", () => resolve({ messages: [] }), { once: true });
|
|
194
|
+
});
|
|
195
|
+
}
|
|
196
|
+
const receiptHandle = `visibility-rh-${++this.nextReceipt}`;
|
|
197
|
+
this.currentReceipt = receiptHandle;
|
|
198
|
+
this.deliveries.push(receiptHandle);
|
|
199
|
+
// One fake second is five real milliseconds. The queue's default lease is
|
|
200
|
+
// deliberately one fake second; the receiver's 600-second lease is 3s.
|
|
201
|
+
this.leaseExpiresAt = Date.now() + (args.visibilityTimeoutSeconds ?? 1) * 5;
|
|
202
|
+
this.visibleAt = this.leaseExpiresAt;
|
|
203
|
+
return { messages: [msg(this.event, receiptHandle)] };
|
|
204
|
+
}
|
|
205
|
+
async deleteMessage(args) {
|
|
206
|
+
if (Date.now() >= this.leaseExpiresAt) {
|
|
207
|
+
this.visibleAt = 0;
|
|
208
|
+
throw new Error("stale receipt handle after visibility expiry");
|
|
209
|
+
}
|
|
210
|
+
if (args.receiptHandle !== this.currentReceipt) {
|
|
211
|
+
throw new Error("stale receipt handle");
|
|
212
|
+
}
|
|
213
|
+
this.deleted.push(args.receiptHandle);
|
|
214
|
+
this.visibleAt = Number.POSITIVE_INFINITY;
|
|
215
|
+
}
|
|
216
|
+
async changeMessageVisibility(args) {
|
|
217
|
+
if (args.receiptHandle !== this.currentReceipt)
|
|
218
|
+
throw new Error("stale receipt handle");
|
|
219
|
+
this.visibleAt = Date.now() + args.visibilityTimeoutSeconds * 5;
|
|
220
|
+
this.leaseExpiresAt = this.visibleAt;
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
/** Delivers an over-cap path before a fresh event added while the first pass runs. */
|
|
224
|
+
class OverCapSqs {
|
|
225
|
+
firstPage;
|
|
226
|
+
initial = true;
|
|
227
|
+
queued = [];
|
|
228
|
+
releases = [];
|
|
229
|
+
constructor(firstPage) {
|
|
230
|
+
this.firstPage = firstPage;
|
|
231
|
+
}
|
|
232
|
+
enqueue(message) {
|
|
233
|
+
this.queued.push(message);
|
|
234
|
+
}
|
|
235
|
+
async receiveMessage(args) {
|
|
236
|
+
if (args.waitTimeSeconds <= 1)
|
|
237
|
+
return { messages: [] };
|
|
238
|
+
if (this.initial) {
|
|
239
|
+
this.initial = false;
|
|
240
|
+
return { messages: this.firstPage };
|
|
241
|
+
}
|
|
242
|
+
if (this.queued.length > 0)
|
|
243
|
+
return { messages: this.queued.splice(0, args.maxMessages) };
|
|
244
|
+
return new Promise((resolve) => {
|
|
245
|
+
if (args.signal.aborted)
|
|
246
|
+
return resolve({ messages: [] });
|
|
247
|
+
args.signal.addEventListener("abort", () => resolve({ messages: [] }), { once: true });
|
|
248
|
+
});
|
|
249
|
+
}
|
|
250
|
+
async deleteMessage() { }
|
|
251
|
+
async changeMessageVisibility(args) {
|
|
252
|
+
this.releases.push({ receiptHandle: args.receiptHandle, visibilityTimeoutSeconds: args.visibilityTimeoutSeconds });
|
|
253
|
+
const released = this.firstPage.find((message) => message.ReceiptHandle === args.receiptHandle);
|
|
254
|
+
if (!released)
|
|
255
|
+
throw new Error("unknown receipt handle");
|
|
256
|
+
this.queued.push(released);
|
|
257
|
+
}
|
|
140
258
|
}
|
|
141
259
|
/** Wait until `predicate()` is true or `timeoutMs` elapses. */
|
|
142
260
|
async function waitFor(predicate, timeoutMs = 1000) {
|
|
@@ -257,6 +375,7 @@ describe("US-009: SqsPushReceiver — subscribe lifecycle", () => {
|
|
|
257
375
|
return sqs.receiveMessage(a);
|
|
258
376
|
},
|
|
259
377
|
deleteMessage: (a) => sqs.deleteMessage(a),
|
|
378
|
+
changeMessageVisibility: (a) => sqs.changeMessageVisibility(a),
|
|
260
379
|
};
|
|
261
380
|
const receiver = new SqsPushReceiver({
|
|
262
381
|
tenantId: TENANT,
|
|
@@ -389,6 +508,55 @@ describe("US-009: SqsPushReceiver — dedupe", () => {
|
|
|
389
508
|
expect(sqs.receiveCalls).toBeLessThanOrEqual(6);
|
|
390
509
|
expect(elapsedMs).toBeLessThan(5_000);
|
|
391
510
|
});
|
|
511
|
+
it("REGRESSION: leases a receipt through a slow pass so it is received exactly once", async () => {
|
|
512
|
+
const sqs = new VisibilityExpirySqs(makeEvent({ sequenceNumber: 41 }));
|
|
513
|
+
const receiver = new SqsPushReceiver({
|
|
514
|
+
tenantId: TENANT,
|
|
515
|
+
queueUrl: QUEUE_URL,
|
|
516
|
+
sqs,
|
|
517
|
+
syncBatchFn: async () => {
|
|
518
|
+
await new Promise((resolve) => setTimeout(resolve, 25));
|
|
519
|
+
},
|
|
520
|
+
sleep: fastSleep,
|
|
521
|
+
publishMetric: async () => undefined,
|
|
522
|
+
});
|
|
523
|
+
await receiver.start();
|
|
524
|
+
await waitFor(() => sqs.deleted.length === 1);
|
|
525
|
+
await receiver.dispose();
|
|
526
|
+
expect(sqs.requestedVisibilityTimeouts[0]).toBe(600);
|
|
527
|
+
expect(sqs.deliveries).toHaveLength(1);
|
|
528
|
+
});
|
|
529
|
+
it("REGRESSION: releases over-cap receipts and brings a fresh event into the next pass", async () => {
|
|
530
|
+
const first = [
|
|
531
|
+
msg(makeEvent({ relativePath: "companies/indigo/a.md", sequenceNumber: 1 }), "rh-a"),
|
|
532
|
+
msg(makeEvent({ relativePath: "companies/indigo/b.md", sequenceNumber: 2 }), "rh-b"),
|
|
533
|
+
msg(makeEvent({ relativePath: "companies/indigo/backlog.md", sequenceNumber: 3 }), "rh-backlog"),
|
|
534
|
+
];
|
|
535
|
+
const sqs = new OverCapSqs(first);
|
|
536
|
+
const batches = [];
|
|
537
|
+
const fresh = msg(makeEvent({ relativePath: "companies/indigo/fresh.md", sequenceNumber: 4 }), "rh-fresh");
|
|
538
|
+
const receiver = new SqsPushReceiver({
|
|
539
|
+
tenantId: TENANT,
|
|
540
|
+
queueUrl: QUEUE_URL,
|
|
541
|
+
sqs,
|
|
542
|
+
batchMaxPaths: 2,
|
|
543
|
+
drainMaxMessages: 3,
|
|
544
|
+
syncBatchFn: async ({ events }) => {
|
|
545
|
+
batches.push(events.map((event) => event.relativePath));
|
|
546
|
+
if (batches.length === 1)
|
|
547
|
+
sqs.enqueue(fresh);
|
|
548
|
+
},
|
|
549
|
+
sleep: fastSleep,
|
|
550
|
+
publishMetric: async () => undefined,
|
|
551
|
+
});
|
|
552
|
+
await receiver.start();
|
|
553
|
+
await waitFor(() => batches.some((batch) => batch.includes("companies/indigo/fresh.md")));
|
|
554
|
+
await receiver.dispose();
|
|
555
|
+
expect(sqs.releases).toEqual([
|
|
556
|
+
{ receiptHandle: "rh-backlog", visibilityTimeoutSeconds: 0 },
|
|
557
|
+
]);
|
|
558
|
+
expect(batches[1]).toContain("companies/indigo/fresh.md");
|
|
559
|
+
});
|
|
392
560
|
it("dispatches the collected batch and keeps polling when a confirmation receive fails", async () => {
|
|
393
561
|
const initial = msg(makeEvent({ sequenceNumber: 1 }), "rh-confirmation-failure");
|
|
394
562
|
const receiveWaitTimes = [];
|
|
@@ -418,6 +586,7 @@ describe("US-009: SqsPushReceiver — dedupe", () => {
|
|
|
418
586
|
});
|
|
419
587
|
},
|
|
420
588
|
deleteMessage: async ({ receiptHandle }) => { deleted.push(receiptHandle); },
|
|
589
|
+
changeMessageVisibility: async () => { },
|
|
421
590
|
};
|
|
422
591
|
const batches = [];
|
|
423
592
|
const receiver = new SqsPushReceiver({
|