@adonis-agora/durable 0.43.6 → 0.45.0
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/CHANGELOG.md +24 -0
- package/README.md +2 -0
- package/dist/assets/spa/assets/index-BCFDK6g_.js +16 -0
- package/dist/assets/spa/assets/index-BCFDK6g_.js.map +1 -0
- package/dist/assets/spa/index.html +1 -1
- package/dist/providers/dashboard_provider.d.ts.map +1 -1
- package/dist/providers/dashboard_provider.js +5 -0
- package/dist/providers/dashboard_provider.js.map +1 -1
- package/dist/providers/durable_provider.d.ts.map +1 -1
- package/dist/providers/durable_provider.js +17 -0
- package/dist/providers/durable_provider.js.map +1 -1
- package/dist/src/dashboard/index.d.ts +1 -1
- package/dist/src/dashboard/index.js +1 -1
- package/dist/src/index.d.ts +1 -1
- package/dist/src/index.js +1 -1
- package/dist/src/transports/queue-mock-adapter.d.ts +25 -8
- package/dist/src/transports/queue-mock-adapter.d.ts.map +1 -1
- package/dist/src/transports/queue-mock-adapter.js +61 -28
- package/dist/src/transports/queue-mock-adapter.js.map +1 -1
- package/dist/src/transports/queue.d.ts +22 -2
- package/dist/src/transports/queue.d.ts.map +1 -1
- package/dist/src/transports/queue.js +40 -10
- package/dist/src/transports/queue.js.map +1 -1
- package/package.json +6 -6
- package/dist/assets/spa/assets/index-RO4fijCZ.js +0 -16
- package/dist/assets/spa/assets/index-RO4fijCZ.js.map +0 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { AdapterFactory } from '@adonisjs/queue/types';
|
|
1
|
+
import type { AcquiredJob, AdapterFactory } from '@adonisjs/queue/types';
|
|
2
2
|
import { type ControlMessage, type ControlPlane, type Heartbeat, type RemoteTask, type StepResult, type Transport } from '../interfaces.js';
|
|
3
3
|
import { type StepHandler } from '../protocol.js';
|
|
4
4
|
/**
|
|
@@ -16,6 +16,25 @@ export type TaskPayload = RemoteTask;
|
|
|
16
16
|
export type ResultPayload = StepResult;
|
|
17
17
|
export type HeartbeatPayload = Heartbeat;
|
|
18
18
|
export type ControlPayload = ControlMessage;
|
|
19
|
+
/**
|
|
20
|
+
* The lease a `@boringnode/queue` >= 0.8 adapter (`@adonisjs/queue` 0.7) hands out with every claim:
|
|
21
|
+
* `completeJob` / `retryJob` / `failJob` take `{ id, leaseToken }` instead of a bare job id, so only the
|
|
22
|
+
* execution holding the claim can finalize it. Declared locally (not imported) so this module still
|
|
23
|
+
* compiles and runs against `@adonisjs/queue` 0.6, whose adapters take the job id.
|
|
24
|
+
*/
|
|
25
|
+
interface JobLeaseLike {
|
|
26
|
+
id: string;
|
|
27
|
+
leaseToken: string;
|
|
28
|
+
}
|
|
29
|
+
/** What we pass an adapter's finalize methods: the lease on the new contract, the job id on the old. */
|
|
30
|
+
type JobHandle = JobLeaseLike | string;
|
|
31
|
+
/**
|
|
32
|
+
* The value to finalize a claimed job with: its lease (`{ id, leaseToken }`) when the adapter issued
|
|
33
|
+
* one (`@adonisjs/queue` 0.7+), else its id (`@adonisjs/queue` 0.6). Passing a bare id to a lease-based
|
|
34
|
+
* adapter finalizes nothing — the job stays `active` until the stalled sweep re-delivers it, so every
|
|
35
|
+
* step would run twice — which is why this is decided from the claim itself, never assumed.
|
|
36
|
+
*/
|
|
37
|
+
export declare function jobHandle(job: AcquiredJob): JobHandle;
|
|
19
38
|
/**
|
|
20
39
|
* Map the engine's per-call `priority` (higher = more urgent, default/absent = unprioritised) onto an
|
|
21
40
|
* `@adonisjs/queue` job `priority` (lower = more urgent). Returns `undefined` for an absent priority so
|
|
@@ -88,7 +107,7 @@ export interface QueueTransportOptions {
|
|
|
88
107
|
* queue; the worker side runs the registered handler via {@link runStepHandler} and pushes the
|
|
89
108
|
* {@link StepResult} onto a results queue the engine consumes. Heartbeats ride their own queue.
|
|
90
109
|
*
|
|
91
|
-
* `@adonisjs/queue`
|
|
110
|
+
* `@adonisjs/queue` (0.6 and 0.7) is a one-directional job queue (dispatch → a separate `Worker` process
|
|
92
111
|
* runs `job.execute()`), with no built-in way to await a job's result. This transport instead
|
|
93
112
|
* drives the underlying queue **adapter** directly (`pushOn` / `popFrom` / `completeJob`), so both
|
|
94
113
|
* directions are plain point-to-point queues we fully control. Notably the {@link ControlPlane} here
|
|
@@ -158,4 +177,5 @@ export declare class QueueTransport implements Transport, ControlPlane {
|
|
|
158
177
|
*/
|
|
159
178
|
close(): Promise<void>;
|
|
160
179
|
}
|
|
180
|
+
export {};
|
|
161
181
|
//# sourceMappingURL=queue.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"queue.d.ts","sourceRoot":"","sources":["../../../src/transports/queue.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"queue.d.ts","sourceRoot":"","sources":["../../../src/transports/queue.ts"],"names":[],"mappings":"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"}
|
|
@@ -37,6 +37,21 @@ const DEFAULT_STALLED_THRESHOLD_MS = 1_800_000;
|
|
|
37
37
|
/** How many times a single job may be reclaimed before the adapter fails it permanently instead of
|
|
38
38
|
* re-delivering — bounds a poison job that stalls every worker it touches. */
|
|
39
39
|
const DEFAULT_MAX_STALLED_COUNT = 3;
|
|
40
|
+
/** How many poison jobs (stalled past {@link DEFAULT_MAX_STALLED_COUNT}) one sweep of one queue hands
|
|
41
|
+
* back to this instance to fail. Only the `@boringnode/queue` >= 0.8 contract (`@adonisjs/queue` 0.7)
|
|
42
|
+
* has this argument: it keeps such jobs `active` and reassigns them to the caller, which must fail
|
|
43
|
+
* them itself. Older adapters ignore the extra argument and fail them internally. */
|
|
44
|
+
const MAX_EXCEEDED_PER_SWEEP = 100;
|
|
45
|
+
/**
|
|
46
|
+
* The value to finalize a claimed job with: its lease (`{ id, leaseToken }`) when the adapter issued
|
|
47
|
+
* one (`@adonisjs/queue` 0.7+), else its id (`@adonisjs/queue` 0.6). Passing a bare id to a lease-based
|
|
48
|
+
* adapter finalizes nothing — the job stays `active` until the stalled sweep re-delivers it, so every
|
|
49
|
+
* step would run twice — which is why this is decided from the claim itself, never assumed.
|
|
50
|
+
*/
|
|
51
|
+
export function jobHandle(job) {
|
|
52
|
+
const leaseToken = job.leaseToken;
|
|
53
|
+
return typeof leaseToken === 'string' ? { id: job.id, leaseToken } : job.id;
|
|
54
|
+
}
|
|
40
55
|
/** Where a poll-loop failure goes when the caller doesn't supply an `onError`. Mirrors `DbTransport`:
|
|
41
56
|
* a transport error must never vanish — an invisible one is how a stalled run stays invisible. */
|
|
42
57
|
const DEFAULT_LOG = (err) => console.error('[QueueTransport] poll failed', err);
|
|
@@ -64,7 +79,7 @@ export function toBrokerPriority(priority) {
|
|
|
64
79
|
* queue; the worker side runs the registered handler via {@link runStepHandler} and pushes the
|
|
65
80
|
* {@link StepResult} onto a results queue the engine consumes. Heartbeats ride their own queue.
|
|
66
81
|
*
|
|
67
|
-
* `@adonisjs/queue`
|
|
82
|
+
* `@adonisjs/queue` (0.6 and 0.7) is a one-directional job queue (dispatch → a separate `Worker` process
|
|
68
83
|
* runs `job.execute()`), with no built-in way to await a job's result. This transport instead
|
|
69
84
|
* drives the underlying queue **adapter** directly (`pushOn` / `popFrom` / `completeJob`), so both
|
|
70
85
|
* directions are plain point-to-point queues we fully control. Notably the {@link ControlPlane} here
|
|
@@ -101,7 +116,8 @@ export class QueueTransport {
|
|
|
101
116
|
* engine). Populated by {@link QueueTransport.#startLoop} — the reclaim sweep walks exactly this set,
|
|
102
117
|
* so it covers whatever loops the instance actually started, worker- or engine-side. */
|
|
103
118
|
#poppedQueues = new Set();
|
|
104
|
-
/** Jobs popped and still in a handler (`jobId → queue`) — re-delivered by close() if
|
|
119
|
+
/** Jobs popped and still in a handler (`jobId → { queue, handle }`) — re-delivered by close() if
|
|
120
|
+
* unfinished. The handle is the claim's lease on a lease-based adapter, needed to finalize it. */
|
|
105
121
|
#openJobs = new Map();
|
|
106
122
|
/** Drives the stalled-job reclaim sweep on its own (coarse) interval. Absent when reclaim is disabled
|
|
107
123
|
* (`stalledCheckIntervalMs <= 0`) or the adapter can't `recoverStalledJobs`. Separate from
|
|
@@ -113,6 +129,7 @@ export class QueueTransport {
|
|
|
113
129
|
#consumersDeferred = false;
|
|
114
130
|
#deferredStarts = [];
|
|
115
131
|
constructor(options) {
|
|
132
|
+
// Typed through CompatAdapter so the same code drives the 0.6 (job-id) and 0.7 (lease) contracts.
|
|
116
133
|
this.#adapter = options.adapter();
|
|
117
134
|
this.#partition = options.partition;
|
|
118
135
|
this.#prefix = options.prefix ?? 'durable';
|
|
@@ -319,17 +336,20 @@ export class QueueTransport {
|
|
|
319
336
|
// Track the popped-but-unfinished job so close() can hand it back to the broker instead of
|
|
320
337
|
// destroying the adapter under it (which stranded it `active` until the stalled sweep —
|
|
321
338
|
// every deploy of a busy fleet parked its mid-flight jobs for up to the stalled threshold).
|
|
322
|
-
|
|
339
|
+
const handle = jobHandle(job);
|
|
340
|
+
this.#openJobs.set(job.id, { queue, handle });
|
|
323
341
|
try {
|
|
324
342
|
await onJob(job);
|
|
325
|
-
|
|
343
|
+
// A lease-based adapter answers `false` when the lease was lost (the reclaim sweep re-delivered
|
|
344
|
+
// the job meanwhile): nothing to do — the re-delivery runs it again, which is idempotent.
|
|
345
|
+
await this.#adapter.completeJob(handle, queue);
|
|
326
346
|
}
|
|
327
347
|
catch (err) {
|
|
328
348
|
this.#onError(err);
|
|
329
349
|
// Delay the redelivery by one poll interval: it keeps a job nobody can handle from spinning
|
|
330
350
|
// the burst-drain loop hot (a ready job makes every tick report work and never sleep).
|
|
331
351
|
await this.#adapter
|
|
332
|
-
.retryJob(
|
|
352
|
+
.retryJob(handle, queue, new Date(Date.now() + this.#pollIntervalMs))
|
|
333
353
|
.catch((retryErr) => this.#onError(retryErr));
|
|
334
354
|
}
|
|
335
355
|
finally {
|
|
@@ -366,8 +386,7 @@ export class QueueTransport {
|
|
|
366
386
|
* simply gets no sweep — skipped silently, since a missing capability is not a transport error.
|
|
367
387
|
*/
|
|
368
388
|
#startReclaimSweep(intervalMs) {
|
|
369
|
-
|
|
370
|
-
if (typeof reclaim !== 'function' || intervalMs <= 0)
|
|
389
|
+
if (typeof this.#adapter.recoverStalledJobs !== 'function' || intervalMs <= 0)
|
|
371
390
|
return undefined;
|
|
372
391
|
const pollers = new Pollers(intervalMs, this.#onError);
|
|
373
392
|
// Returns `false` every round so {@link Pollers} sleeps the FULL interval between sweeps — the
|
|
@@ -375,7 +394,18 @@ export class QueueTransport {
|
|
|
375
394
|
pollers.start(async () => {
|
|
376
395
|
for (const queue of this.#poppedQueues) {
|
|
377
396
|
try {
|
|
378
|
-
await this.#adapter.recoverStalledJobs(queue, this.#stalledThresholdMs, this.#maxStalledCount);
|
|
397
|
+
const outcome = await this.#adapter.recoverStalledJobs?.(queue, this.#stalledThresholdMs, this.#maxStalledCount, MAX_EXCEEDED_PER_SWEEP);
|
|
398
|
+
// `@adonisjs/queue` 0.7 (`@boringnode/queue` >= 0.8) no longer fails a job that stalled too
|
|
399
|
+
// many times: it keeps it `active`, re-leases it to us and returns it in `exceeded`, so the
|
|
400
|
+
// caller fails it. Left alone it would stay `active` forever. 0.6 returns a count and has
|
|
401
|
+
// already failed them — nothing to do.
|
|
402
|
+
if (outcome && typeof outcome === 'object') {
|
|
403
|
+
for (const job of outcome.exceeded) {
|
|
404
|
+
await this.#adapter
|
|
405
|
+
.failJob(jobHandle(job), queue, new Error(`stalled more than ${this.#maxStalledCount} times`))
|
|
406
|
+
.catch((err) => this.#onError(err));
|
|
407
|
+
}
|
|
408
|
+
}
|
|
379
409
|
}
|
|
380
410
|
catch (err) {
|
|
381
411
|
this.#onError(err);
|
|
@@ -399,9 +429,9 @@ export class QueueTransport {
|
|
|
399
429
|
await this.#pollers.drain(5_000);
|
|
400
430
|
// Anything still open after the bounded drain (a long step): re-deliver it now so another
|
|
401
431
|
// worker picks it up immediately instead of waiting out the stalled threshold.
|
|
402
|
-
for (const [jobId, queue] of [...this.#openJobs]) {
|
|
432
|
+
for (const [jobId, { queue, handle }] of [...this.#openJobs]) {
|
|
403
433
|
this.#openJobs.delete(jobId);
|
|
404
|
-
await this.#adapter.retryJob(
|
|
434
|
+
await this.#adapter.retryJob(handle, queue, new Date()).catch((err) => this.#onError(err));
|
|
405
435
|
}
|
|
406
436
|
await this.#adapter.destroy();
|
|
407
437
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"queue.js","sourceRoot":"","sources":["../../../src/transports/queue.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAUzC,OAAO,EAAE,OAAO,EAAiB,MAAM,eAAe,CAAC;AACvD,OAAO,EAAE,cAAc,EAAoB,MAAM,gBAAgB,CAAC;AAClE,OAAO,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAErE;;;;;;GAMG;AAEH,iGAAiG;AACjG,MAAM,UAAU,MAAM,CAAI,KAAQ;IAChC,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAM,CAAC;AAChD,CAAC;AAED,wEAAwE;AACxE,MAAM,UAAU,QAAQ,CAAI,KAAc;IACxC,uFAAuF;IACvF,mFAAmF;IACnF,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAM,CAAC;IAChC,CAAC;IACD,OAAO,KAAU,CAAC;AACpB,CAAC;AAOD,2FAA2F;AAC3F,MAAM,wBAAwB,GAAG,GAAG,CAAC;AAErC;kGACkG;AAClG,MAAM,iCAAiC,GAAG,MAAM,CAAC;AACjD;;;;;iGAKiG;AACjG,MAAM,4BAA4B,GAAG,SAAS,CAAC;AAC/C;+EAC+E;AAC/E,MAAM,yBAAyB,GAAG,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"queue.js","sourceRoot":"","sources":["../../../src/transports/queue.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@adonis-agora/durable",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.45.0",
|
|
4
4
|
"description": "Durable cross-app workflows for AdonisJS — deterministic replay engine, AdonisJS binding, ace commands, dashboard, OpenTelemetry, Telescope, testing harness and Redis admission, all in one package. Part of the Agora ecosystem.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -132,7 +132,7 @@
|
|
|
132
132
|
"@adonisjs/assembler": "^8.4.0",
|
|
133
133
|
"@adonisjs/core": "^7.3.0",
|
|
134
134
|
"@adonisjs/lucid": "^22.4.0",
|
|
135
|
-
"@adonisjs/queue": "^0.6.0",
|
|
135
|
+
"@adonisjs/queue": "^0.6.0 || ^0.7.0",
|
|
136
136
|
"@adonisjs/redis": "^9.2.0 || ^10.0.0 || ^11.0.0",
|
|
137
137
|
"@opentelemetry/api": "^1.0.0",
|
|
138
138
|
"bullmq": "^5.0.0 || ^6.0.0",
|
|
@@ -170,11 +170,11 @@
|
|
|
170
170
|
}
|
|
171
171
|
},
|
|
172
172
|
"devDependencies": {
|
|
173
|
-
"@adonis-agora/durable-dashboard": "0.
|
|
173
|
+
"@adonis-agora/durable-dashboard": "0.6.0",
|
|
174
174
|
"@adonisjs/assembler": "8.5.2",
|
|
175
175
|
"@adonisjs/core": "7.6.0",
|
|
176
176
|
"@adonisjs/lucid": "22.4.2",
|
|
177
|
-
"@adonisjs/queue": "0.
|
|
177
|
+
"@adonisjs/queue": "0.7.0",
|
|
178
178
|
"@adonisjs/redis": "11.0.0",
|
|
179
179
|
"@opentelemetry/api": "1.9.1",
|
|
180
180
|
"@opentelemetry/context-async-hooks": "2.12.0",
|
|
@@ -184,7 +184,7 @@
|
|
|
184
184
|
"@types/better-sqlite3": "9.6.0",
|
|
185
185
|
"@types/node": "26.6.5",
|
|
186
186
|
"better-sqlite3": "13.0.3",
|
|
187
|
-
"bullmq": "6.3.
|
|
187
|
+
"bullmq": "6.3.15",
|
|
188
188
|
"cron-parser": "5.10.2",
|
|
189
189
|
"ioredis": "6.0.0",
|
|
190
190
|
"typescript": "7.0.2",
|
|
@@ -192,7 +192,7 @@
|
|
|
192
192
|
"zod": "4.6.7"
|
|
193
193
|
},
|
|
194
194
|
"engines": {
|
|
195
|
-
"node": ">=
|
|
195
|
+
"node": ">=24"
|
|
196
196
|
},
|
|
197
197
|
"scripts": {
|
|
198
198
|
"build": "pnpm run clean && tsc -p tsconfig.build.json && pnpm run copy:stubs && pnpm run check:dist",
|