bunqueue 2.8.0 → 2.8.1
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/README.md +26 -11
- package/dist/application/backgroundTasks.d.ts.map +1 -1
- package/dist/application/backgroundTasks.js +83 -0
- package/dist/application/backgroundTasks.js.map +1 -1
- package/dist/application/clientTracking.d.ts +23 -0
- package/dist/application/clientTracking.d.ts.map +1 -1
- package/dist/application/clientTracking.js +80 -25
- package/dist/application/clientTracking.js.map +1 -1
- package/dist/application/contextFactory.d.ts +6 -0
- package/dist/application/contextFactory.d.ts.map +1 -1
- package/dist/application/contextFactory.js +7 -0
- package/dist/application/contextFactory.js.map +1 -1
- package/dist/application/dlqManager.d.ts.map +1 -1
- package/dist/application/dlqManager.js +5 -0
- package/dist/application/dlqManager.js.map +1 -1
- package/dist/application/eventsManager.js.map +1 -1
- package/dist/application/lockManager.d.ts +1 -1
- package/dist/application/lockManager.d.ts.map +1 -1
- package/dist/application/lockManager.js +1 -1
- package/dist/application/lockManager.js.map +1 -1
- package/dist/application/operations/ack.d.ts.map +1 -1
- package/dist/application/operations/ack.js +32 -33
- package/dist/application/operations/ack.js.map +1 -1
- package/dist/application/operations/jobManagement.d.ts +1 -1
- package/dist/application/operations/jobManagement.d.ts.map +1 -1
- package/dist/application/operations/jobManagement.js +3 -2
- package/dist/application/operations/jobManagement.js.map +1 -1
- package/dist/application/operations/push.js.map +1 -1
- package/dist/application/operations/queryOperations.d.ts.map +1 -1
- package/dist/application/operations/queryOperations.js +37 -3
- package/dist/application/operations/queryOperations.js.map +1 -1
- package/dist/application/operations/queueControl.d.ts +16 -4
- package/dist/application/operations/queueControl.d.ts.map +1 -1
- package/dist/application/operations/queueControl.js +119 -23
- package/dist/application/operations/queueControl.js.map +1 -1
- package/dist/application/queueManager.d.ts +17 -3
- package/dist/application/queueManager.d.ts.map +1 -1
- package/dist/application/queueManager.js +106 -27
- package/dist/application/queueManager.js.map +1 -1
- package/dist/application/stallDetection.js +1 -0
- package/dist/application/stallDetection.js.map +1 -1
- package/dist/application/types.d.ts +2 -1
- package/dist/application/types.d.ts.map +1 -1
- package/dist/cli/client.d.ts.map +1 -1
- package/dist/cli/client.js +15 -2
- package/dist/cli/client.js.map +1 -1
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +31 -2
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/output.d.ts +1 -1
- package/dist/cli/output.d.ts.map +1 -1
- package/dist/cli/output.js +71 -9
- package/dist/cli/output.js.map +1 -1
- package/dist/client/bunqueue/batch.js +2 -2
- package/dist/client/bunqueue/batch.js.map +1 -1
- package/dist/client/bunqueue.d.ts.map +1 -1
- package/dist/client/bunqueue.js +3 -3
- package/dist/client/bunqueue.js.map +1 -1
- package/dist/client/flow.d.ts.map +1 -1
- package/dist/client/flow.js +3 -1
- package/dist/client/flow.js.map +1 -1
- package/dist/client/flowJobFactory.d.ts +8 -1
- package/dist/client/flowJobFactory.d.ts.map +1 -1
- package/dist/client/flowJobFactory.js +328 -56
- package/dist/client/flowJobFactory.js.map +1 -1
- package/dist/client/flowPush.d.ts.map +1 -1
- package/dist/client/flowPush.js +95 -46
- package/dist/client/flowPush.js.map +1 -1
- package/dist/client/jobConversion.d.ts.map +1 -1
- package/dist/client/jobConversion.js +12 -4
- package/dist/client/jobConversion.js.map +1 -1
- package/dist/client/queue/bullmqCompat.d.ts +1 -0
- package/dist/client/queue/bullmqCompat.d.ts.map +1 -1
- package/dist/client/queue/dlq.js.map +1 -1
- package/dist/client/queue/dlqOps.d.ts.map +1 -1
- package/dist/client/queue/dlqOps.js.map +1 -1
- package/dist/client/queue/helpers.js.map +1 -1
- package/dist/client/queue/jobProxy.d.ts +22 -3
- package/dist/client/queue/jobProxy.d.ts.map +1 -1
- package/dist/client/queue/jobProxy.js +347 -66
- package/dist/client/queue/jobProxy.js.map +1 -1
- package/dist/client/queue/operations/add.d.ts +1 -0
- package/dist/client/queue/operations/add.d.ts.map +1 -1
- package/dist/client/queue/operations/add.js +126 -29
- package/dist/client/queue/operations/add.js.map +1 -1
- package/dist/client/queue/operations/management.d.ts +1 -1
- package/dist/client/queue/operations/management.d.ts.map +1 -1
- package/dist/client/queue/operations/management.js +27 -9
- package/dist/client/queue/operations/management.js.map +1 -1
- package/dist/client/queue/operations/query.d.ts +12 -0
- package/dist/client/queue/operations/query.d.ts.map +1 -1
- package/dist/client/queue/operations/query.js +44 -4
- package/dist/client/queue/operations/query.js.map +1 -1
- package/dist/client/queue/queue.d.ts.map +1 -1
- package/dist/client/queue/queue.js +8 -1
- package/dist/client/queue/queue.js.map +1 -1
- package/dist/client/queue/scheduler.d.ts +2 -0
- package/dist/client/queue/scheduler.d.ts.map +1 -1
- package/dist/client/queue/scheduler.js +28 -0
- package/dist/client/queue/scheduler.js.map +1 -1
- package/dist/client/queue/stall.js.map +1 -1
- package/dist/client/sandboxed/worker.d.ts.map +1 -1
- package/dist/client/sandboxed/worker.js +57 -15
- package/dist/client/sandboxed/worker.js.map +1 -1
- package/dist/client/sandboxed/wrapper.d.ts.map +1 -1
- package/dist/client/sandboxed/wrapper.js +62 -10
- package/dist/client/sandboxed/wrapper.js.map +1 -1
- package/dist/client/tcp/client.d.ts +9 -0
- package/dist/client/tcp/client.d.ts.map +1 -1
- package/dist/client/tcp/client.js +84 -28
- package/dist/client/tcp/client.js.map +1 -1
- package/dist/client/tcp/connection.d.ts.map +1 -1
- package/dist/client/tcp/connection.js +6 -1
- package/dist/client/tcp/connection.js.map +1 -1
- package/dist/client/tcp/types.d.ts +7 -0
- package/dist/client/tcp/types.d.ts.map +1 -1
- package/dist/client/types.d.ts +8 -4
- package/dist/client/types.d.ts.map +1 -1
- package/dist/client/types.js.map +1 -1
- package/dist/client/worker/ackBatcher.d.ts.map +1 -1
- package/dist/client/worker/ackBatcher.js +18 -8
- package/dist/client/worker/ackBatcher.js.map +1 -1
- package/dist/client/worker/processor.d.ts.map +1 -1
- package/dist/client/worker/processor.js +54 -99
- package/dist/client/worker/processor.js.map +1 -1
- package/dist/client/worker/processorHandlers.d.ts +55 -0
- package/dist/client/worker/processorHandlers.d.ts.map +1 -0
- package/dist/client/worker/processorHandlers.js +373 -0
- package/dist/client/worker/processorHandlers.js.map +1 -0
- package/dist/client/workflow/compensator.d.ts +15 -0
- package/dist/client/workflow/compensator.d.ts.map +1 -0
- package/dist/client/workflow/compensator.js +46 -0
- package/dist/client/workflow/compensator.js.map +1 -0
- package/dist/client/workflow/emitter.d.ts.map +1 -1
- package/dist/client/workflow/emitter.js +15 -3
- package/dist/client/workflow/emitter.js.map +1 -1
- package/dist/client/workflow/engine.d.ts +8 -1
- package/dist/client/workflow/engine.d.ts.map +1 -1
- package/dist/client/workflow/engine.js +9 -0
- package/dist/client/workflow/engine.js.map +1 -1
- package/dist/client/workflow/executor.d.ts +5 -2
- package/dist/client/workflow/executor.d.ts.map +1 -1
- package/dist/client/workflow/executor.js +43 -60
- package/dist/client/workflow/executor.js.map +1 -1
- package/dist/client/workflow/index.d.ts +1 -1
- package/dist/client/workflow/index.d.ts.map +1 -1
- package/dist/client/workflow/loops.d.ts +1 -1
- package/dist/client/workflow/loops.d.ts.map +1 -1
- package/dist/client/workflow/loops.js +10 -1
- package/dist/client/workflow/loops.js.map +1 -1
- package/dist/client/workflow/recovery.d.ts +23 -0
- package/dist/client/workflow/recovery.d.ts.map +1 -0
- package/dist/client/workflow/recovery.js +74 -0
- package/dist/client/workflow/recovery.js.map +1 -0
- package/dist/client/workflow/runner.d.ts.map +1 -1
- package/dist/client/workflow/runner.js +7 -5
- package/dist/client/workflow/runner.js.map +1 -1
- package/dist/client/workflow/store.d.ts +2 -0
- package/dist/client/workflow/store.d.ts.map +1 -1
- package/dist/client/workflow/store.js +6 -0
- package/dist/client/workflow/store.js.map +1 -1
- package/dist/client/workflow/types.d.ts +41 -22
- package/dist/client/workflow/types.d.ts.map +1 -1
- package/dist/client/workflow/workflow.d.ts +17 -14
- package/dist/client/workflow/workflow.d.ts.map +1 -1
- package/dist/client/workflow/workflow.js +30 -20
- package/dist/client/workflow/workflow.js.map +1 -1
- package/dist/domain/queue/dlqShard.d.ts.map +1 -1
- package/dist/domain/queue/dlqShard.js +6 -0
- package/dist/domain/queue/dlqShard.js.map +1 -1
- package/dist/domain/queue/priorityQueue.d.ts +2 -2
- package/dist/domain/queue/priorityQueue.d.ts.map +1 -1
- package/dist/domain/queue/priorityQueue.js +5 -3
- package/dist/domain/queue/priorityQueue.js.map +1 -1
- package/dist/domain/types/command.d.ts +22 -0
- package/dist/domain/types/command.d.ts.map +1 -1
- package/dist/domain/types/cron.d.ts +21 -0
- package/dist/domain/types/cron.d.ts.map +1 -1
- package/dist/domain/types/cron.js +1 -0
- package/dist/domain/types/cron.js.map +1 -1
- package/dist/domain/types/job.d.ts.map +1 -1
- package/dist/domain/types/job.js +9 -2
- package/dist/domain/types/job.js.map +1 -1
- package/dist/domain/types/response.d.ts +2 -0
- package/dist/domain/types/response.d.ts.map +1 -1
- package/dist/domain/types/response.js.map +1 -1
- package/dist/infrastructure/backup/s3BackupOperations.d.ts.map +1 -1
- package/dist/infrastructure/backup/s3BackupOperations.js +44 -6
- package/dist/infrastructure/backup/s3BackupOperations.js.map +1 -1
- package/dist/infrastructure/cloud/cloudAgent.d.ts +1 -1
- package/dist/infrastructure/cloud/cloudAgent.d.ts.map +1 -1
- package/dist/infrastructure/cloud/cloudAgent.js +9 -11
- package/dist/infrastructure/cloud/cloudAgent.js.map +1 -1
- package/dist/infrastructure/cloud/commands.js +2 -2
- package/dist/infrastructure/cloud/commands.js.map +1 -1
- package/dist/infrastructure/cloud/redact.d.ts +11 -0
- package/dist/infrastructure/cloud/redact.d.ts.map +1 -0
- package/dist/infrastructure/cloud/redact.js +22 -0
- package/dist/infrastructure/cloud/redact.js.map +1 -0
- package/dist/infrastructure/cloud/snapshotCollector.d.ts +4 -0
- package/dist/infrastructure/cloud/snapshotCollector.d.ts.map +1 -1
- package/dist/infrastructure/cloud/snapshotCollector.js +32 -17
- package/dist/infrastructure/cloud/snapshotCollector.js.map +1 -1
- package/dist/infrastructure/cloud/snapshotHelpers.d.ts +9 -2
- package/dist/infrastructure/cloud/snapshotHelpers.d.ts.map +1 -1
- package/dist/infrastructure/cloud/snapshotHelpers.js +10 -8
- package/dist/infrastructure/cloud/snapshotHelpers.js.map +1 -1
- package/dist/infrastructure/persistence/schema.d.ts +2 -2
- package/dist/infrastructure/persistence/schema.d.ts.map +1 -1
- package/dist/infrastructure/persistence/schema.js +16 -2
- package/dist/infrastructure/persistence/schema.js.map +1 -1
- package/dist/infrastructure/persistence/sqlite.d.ts +54 -1
- package/dist/infrastructure/persistence/sqlite.d.ts.map +1 -1
- package/dist/infrastructure/persistence/sqlite.js +174 -2
- package/dist/infrastructure/persistence/sqlite.js.map +1 -1
- package/dist/infrastructure/persistence/sqliteBatch.d.ts +14 -0
- package/dist/infrastructure/persistence/sqliteBatch.d.ts.map +1 -1
- package/dist/infrastructure/persistence/sqliteBatch.js +29 -0
- package/dist/infrastructure/persistence/sqliteBatch.js.map +1 -1
- package/dist/infrastructure/persistence/sqliteSerializer.d.ts +16 -0
- package/dist/infrastructure/persistence/sqliteSerializer.d.ts.map +1 -1
- package/dist/infrastructure/persistence/sqliteSerializer.js +73 -8
- package/dist/infrastructure/persistence/sqliteSerializer.js.map +1 -1
- package/dist/infrastructure/persistence/statements.d.ts +2 -1
- package/dist/infrastructure/persistence/statements.d.ts.map +1 -1
- package/dist/infrastructure/persistence/statements.js +3 -2
- package/dist/infrastructure/persistence/statements.js.map +1 -1
- package/dist/infrastructure/scheduler/cronScheduler.d.ts.map +1 -1
- package/dist/infrastructure/scheduler/cronScheduler.js +19 -1
- package/dist/infrastructure/scheduler/cronScheduler.js.map +1 -1
- package/dist/infrastructure/server/handlers/advanced.d.ts +7 -1
- package/dist/infrastructure/server/handlers/advanced.d.ts.map +1 -1
- package/dist/infrastructure/server/handlers/advanced.js +41 -10
- package/dist/infrastructure/server/handlers/advanced.js.map +1 -1
- package/dist/infrastructure/server/handlers/core.d.ts.map +1 -1
- package/dist/infrastructure/server/handlers/core.js +8 -0
- package/dist/infrastructure/server/handlers/core.js.map +1 -1
- package/dist/infrastructure/server/handlers/cron.d.ts.map +1 -1
- package/dist/infrastructure/server/handlers/cron.js +1 -0
- package/dist/infrastructure/server/handlers/cron.js.map +1 -1
- package/dist/infrastructure/server/handlers/dashboard.d.ts.map +1 -1
- package/dist/infrastructure/server/handlers/dashboard.js +1 -0
- package/dist/infrastructure/server/handlers/dashboard.js.map +1 -1
- package/dist/infrastructure/server/handlers/dlq.js.map +1 -1
- package/dist/infrastructure/server/handlers/management.d.ts +1 -1
- package/dist/infrastructure/server/handlers/management.d.ts.map +1 -1
- package/dist/infrastructure/server/handlers/management.js +27 -12
- package/dist/infrastructure/server/handlers/management.js.map +1 -1
- package/dist/infrastructure/server/handlers/monitoring.js.map +1 -1
- package/dist/infrastructure/server/handlers/query.js.map +1 -1
- package/dist/infrastructure/server/httpRouteJobs.js.map +1 -1
- package/dist/infrastructure/server/httpRouteQueueConfig.js.map +1 -1
- package/dist/infrastructure/server/httpRouteQueues.js.map +1 -1
- package/dist/infrastructure/server/httpRouteResources.js.map +1 -1
- package/dist/infrastructure/server/protocol.d.ts +4 -0
- package/dist/infrastructure/server/protocol.d.ts.map +1 -1
- package/dist/infrastructure/server/protocol.js +17 -2
- package/dist/infrastructure/server/protocol.js.map +1 -1
- package/dist/infrastructure/server/socketWriteQueue.d.ts +67 -0
- package/dist/infrastructure/server/socketWriteQueue.d.ts.map +1 -0
- package/dist/infrastructure/server/socketWriteQueue.js +127 -0
- package/dist/infrastructure/server/socketWriteQueue.js.map +1 -0
- package/dist/infrastructure/server/tcp.d.ts +17 -0
- package/dist/infrastructure/server/tcp.d.ts.map +1 -1
- package/dist/infrastructure/server/tcp.js +112 -14
- package/dist/infrastructure/server/tcp.js.map +1 -1
- package/dist/infrastructure/server/wsHandler.js.map +1 -1
- package/dist/main.d.ts.map +1 -1
- package/dist/main.js +48 -43
- package/dist/main.js.map +1 -1
- package/dist/mcp/adapter.d.ts +3 -3
- package/dist/mcp/adapter.d.ts.map +1 -1
- package/dist/mcp/adapter.js +48 -15
- package/dist/mcp/adapter.js.map +1 -1
- package/dist/mcp/index.d.ts +3 -3
- package/dist/mcp/index.d.ts.map +1 -1
- package/dist/mcp/index.js +26 -89
- package/dist/mcp/index.js.map +1 -1
- package/dist/mcp/server.d.ts +16 -0
- package/dist/mcp/server.d.ts.map +1 -0
- package/dist/mcp/server.js +101 -0
- package/dist/mcp/server.js.map +1 -0
- package/dist/mcp/tools/queueTools.d.ts.map +1 -1
- package/dist/mcp/tools/queueTools.js +6 -3
- package/dist/mcp/tools/queueTools.js.map +1 -1
- package/dist/mcp/tools/webhookTools.js +1 -1
- package/dist/mcp/tools/webhookTools.js.map +1 -1
- package/dist/shared/lock.d.ts.map +1 -1
- package/dist/shared/lock.js +15 -0
- package/dist/shared/lock.js.map +1 -1
- package/package.json +12 -7
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"queueControl.d.ts","sourceRoot":"","sources":["../../../src/application/operations/queueControl.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"queueControl.d.ts","sourceRoot":"","sources":["../../../src/application/operations/queueControl.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yCAAyC,CAAC;AAC7E,OAAO,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAGzD,2CAA2C;AAC3C,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,KAAK,EAAE,CAAC;IAChB,QAAQ,EAAE,GAAG,CAAC,KAAK,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC9E,gBAAgB,CAAC,EAAE,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,CAAC;IACrC,aAAa,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;IAC/B,iBAAiB,CAAC,EAAE,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IACxC,UAAU,CAAC,EAAE,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IACrC,OAAO,CAAC,EAAE,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IAClC,OAAO,CAAC,EAAE,aAAa,GAAG,IAAI,CAAC;CAChC;AAED,oBAAoB;AACpB,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,mBAAmB,GAAG,IAAI,CAGxE;AAED,qBAAqB;AACrB,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,mBAAmB,GAAG,IAAI,CAGzE;AAED,+BAA+B;AAC/B,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,mBAAmB,GAAG,OAAO,CAG9E;AAED,wCAAwC;AACxC,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,mBAAmB,GAAG,MAAM,CAY1E;AAED,4BAA4B;AAC5B,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,mBAAmB,GAAG,IAAI,CAG7E;AAED,2BAA2B;AAC3B,wBAAgB,aAAa,CAAC,GAAG,EAAE,mBAAmB,GAAG,MAAM,EAAE,CAQhE;AA0GD;;;;;;;GAOG;AACH,wBAAgB,UAAU,CACxB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,EACf,GAAG,EAAE,mBAAmB,EACxB,KAAK,CAAC,EAAE,MAAM,EACd,KAAK,CAAC,EAAE,MAAM,GACb,KAAK,EAAE,CAmBT;AAED,iCAAiC;AACjC,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,mBAAmB,GAAG,MAAM,CAI7E"}
|
|
@@ -22,9 +22,13 @@ export function isQueuePaused(queue, ctx) {
|
|
|
22
22
|
export function drainQueue(queue, ctx) {
|
|
23
23
|
const idx = shardIndex(queue);
|
|
24
24
|
const { count, jobIds } = ctx.shards[idx].drain(queue);
|
|
25
|
-
// Clean up jobIndex for
|
|
25
|
+
// Clean up jobIndex AND the SQLite row for every drained job so they cannot
|
|
26
|
+
// resurrect from a stale on-disk row (parity with clean/obliterate).
|
|
27
|
+
// safeDeleteJob also clears the pending write-buffer entry, so a buffered
|
|
28
|
+
// (not-yet-flushed) add cannot land on disk after the drain.
|
|
26
29
|
for (const jobId of jobIds) {
|
|
27
30
|
ctx.jobIndex.delete(jobId);
|
|
31
|
+
safeDeleteJob(ctx, jobId);
|
|
28
32
|
}
|
|
29
33
|
return count;
|
|
30
34
|
}
|
|
@@ -43,33 +47,125 @@ export function listAllQueues(ctx) {
|
|
|
43
47
|
}
|
|
44
48
|
return Array.from(queues);
|
|
45
49
|
}
|
|
50
|
+
/** Normalize BullMQ-compatible state aliases */
|
|
51
|
+
function normalizeCleanState(state) {
|
|
52
|
+
if (!state)
|
|
53
|
+
return undefined;
|
|
54
|
+
if (state === 'wait')
|
|
55
|
+
return 'waiting';
|
|
56
|
+
return state;
|
|
57
|
+
}
|
|
58
|
+
function safeDeleteJob(ctx, jobId) {
|
|
59
|
+
try {
|
|
60
|
+
ctx.storage?.deleteJob(jobId);
|
|
61
|
+
}
|
|
62
|
+
catch {
|
|
63
|
+
// SQLite write may fail (e.g. SQLITE_FULL). In-memory state already cleared;
|
|
64
|
+
// orphan row will be GC'd by crash-recovery on restart.
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
function safeDeleteDlqEntry(ctx, jobId) {
|
|
68
|
+
try {
|
|
69
|
+
ctx.storage?.deleteDlqEntry(jobId);
|
|
70
|
+
}
|
|
71
|
+
catch {
|
|
72
|
+
// Same rationale as safeDeleteJob.
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
function cleanWaitingLike(queue, graceMs, ctx, maxJobs) {
|
|
76
|
+
const idx = shardIndex(queue);
|
|
77
|
+
const shard = ctx.shards[idx];
|
|
78
|
+
const q = shard.getQueue(queue);
|
|
79
|
+
const oldJobs = shard.getOldJobs(queue, graceMs, maxJobs);
|
|
80
|
+
const removed = [];
|
|
81
|
+
for (const { jobId } of oldJobs) {
|
|
82
|
+
if (q.has(jobId)) {
|
|
83
|
+
q.remove(jobId);
|
|
84
|
+
shard.decrementQueued(jobId);
|
|
85
|
+
shard.removeFromTemporalIndex(jobId);
|
|
86
|
+
ctx.jobIndex.delete(jobId);
|
|
87
|
+
safeDeleteJob(ctx, jobId);
|
|
88
|
+
removed.push(jobId);
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
return removed;
|
|
92
|
+
}
|
|
93
|
+
function cleanCompleted(queue, graceMs, ctx, maxJobs) {
|
|
94
|
+
if (!ctx.completedJobs || !ctx.completedJobsData)
|
|
95
|
+
return [];
|
|
96
|
+
const threshold = Date.now() - graceMs;
|
|
97
|
+
const toRemove = [];
|
|
98
|
+
for (const [jid, loc] of ctx.jobIndex) {
|
|
99
|
+
if (loc.type !== 'completed' || loc.queueName !== queue)
|
|
100
|
+
continue;
|
|
101
|
+
const job = ctx.completedJobsData.get(jid) ?? ctx.storage?.getJob(jid) ?? null;
|
|
102
|
+
const ts = job?.completedAt ?? job?.createdAt ?? 0;
|
|
103
|
+
if (ts && ts > threshold)
|
|
104
|
+
continue;
|
|
105
|
+
toRemove.push(jid);
|
|
106
|
+
if (toRemove.length >= maxJobs)
|
|
107
|
+
break;
|
|
108
|
+
}
|
|
109
|
+
for (const jid of toRemove) {
|
|
110
|
+
ctx.completedJobs.delete(jid);
|
|
111
|
+
ctx.completedJobsData.delete(jid);
|
|
112
|
+
ctx.jobResults?.delete(jid);
|
|
113
|
+
ctx.jobLogs?.delete(jid);
|
|
114
|
+
ctx.jobIndex.delete(jid);
|
|
115
|
+
safeDeleteJob(ctx, jid);
|
|
116
|
+
}
|
|
117
|
+
return toRemove;
|
|
118
|
+
}
|
|
119
|
+
function cleanFailed(queue, graceMs, ctx, maxJobs) {
|
|
120
|
+
const idx = shardIndex(queue);
|
|
121
|
+
const shard = ctx.shards[idx];
|
|
122
|
+
const entries = shard.getDlqEntries(queue);
|
|
123
|
+
const threshold = Date.now() - graceMs;
|
|
124
|
+
const toRemove = [];
|
|
125
|
+
for (const entry of entries) {
|
|
126
|
+
const ts = entry.enteredAt ?? entry.job.createdAt;
|
|
127
|
+
if (ts > threshold)
|
|
128
|
+
continue;
|
|
129
|
+
toRemove.push(entry.job.id);
|
|
130
|
+
if (toRemove.length >= maxJobs)
|
|
131
|
+
break;
|
|
132
|
+
}
|
|
133
|
+
for (const jid of toRemove) {
|
|
134
|
+
shard.removeFromDlq(queue, jid);
|
|
135
|
+
ctx.jobIndex.delete(jid);
|
|
136
|
+
ctx.jobResults?.delete(jid);
|
|
137
|
+
ctx.jobLogs?.delete(jid);
|
|
138
|
+
safeDeleteDlqEntry(ctx, jid);
|
|
139
|
+
safeDeleteJob(ctx, jid);
|
|
140
|
+
}
|
|
141
|
+
return toRemove;
|
|
142
|
+
}
|
|
46
143
|
/**
|
|
47
|
-
* Clean old jobs from queue
|
|
48
|
-
*
|
|
144
|
+
* Clean old jobs from queue.
|
|
145
|
+
* Supported states: waiting/wait, delayed, prioritized, paused, completed, failed.
|
|
146
|
+
* State='active' is intentionally unsupported: cleaning in-flight jobs races with
|
|
147
|
+
* the worker's ack path and would leak concurrency/uniqueKey/groupId slots. Use
|
|
148
|
+
* `fail(jobId)` or `cancelJob(jobId)` to terminate an active job safely.
|
|
149
|
+
* @returns Array of removed JobIds.
|
|
49
150
|
*/
|
|
50
151
|
export function cleanQueue(queue, graceMs, ctx, state, limit) {
|
|
51
|
-
const idx = shardIndex(queue);
|
|
52
|
-
const shard = ctx.shards[idx];
|
|
53
152
|
const maxJobs = limit ?? 1000;
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
}
|
|
70
|
-
}
|
|
153
|
+
const normalized = normalizeCleanState(state);
|
|
154
|
+
switch (normalized) {
|
|
155
|
+
case undefined:
|
|
156
|
+
case 'waiting':
|
|
157
|
+
case 'delayed':
|
|
158
|
+
case 'prioritized':
|
|
159
|
+
case 'paused':
|
|
160
|
+
return cleanWaitingLike(queue, graceMs, ctx, maxJobs);
|
|
161
|
+
case 'completed':
|
|
162
|
+
return cleanCompleted(queue, graceMs, ctx, maxJobs);
|
|
163
|
+
case 'failed':
|
|
164
|
+
return cleanFailed(queue, graceMs, ctx, maxJobs);
|
|
165
|
+
case 'active':
|
|
166
|
+
default:
|
|
167
|
+
return [];
|
|
71
168
|
}
|
|
72
|
-
return cleaned;
|
|
73
169
|
}
|
|
74
170
|
/** Get count of jobs in queue */
|
|
75
171
|
export function getQueueCount(queue, ctx) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"queueControl.js","sourceRoot":"","sources":["../../../src/application/operations/queueControl.ts"],"names":[],"mappings":"AAAA;;;GAGG;
|
|
1
|
+
{"version":3,"file":"queueControl.js","sourceRoot":"","sources":["../../../src/application/operations/queueControl.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAc5D,oBAAoB;AACpB,MAAM,UAAU,UAAU,CAAC,KAAa,EAAE,GAAwB;IAChE,MAAM,GAAG,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;IAC9B,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AAC/B,CAAC;AAED,qBAAqB;AACrB,MAAM,UAAU,WAAW,CAAC,KAAa,EAAE,GAAwB;IACjE,MAAM,GAAG,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;IAC9B,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAChC,CAAC;AAED,+BAA+B;AAC/B,MAAM,UAAU,aAAa,CAAC,KAAa,EAAE,GAAwB;IACnE,MAAM,GAAG,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;IAC9B,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AACzC,CAAC;AAED,wCAAwC;AACxC,MAAM,UAAU,UAAU,CAAC,KAAa,EAAE,GAAwB;IAChE,MAAM,GAAG,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;IAC9B,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACvD,4EAA4E;IAC5E,qEAAqE;IACrE,0EAA0E;IAC1E,6DAA6D;IAC7D,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC3B,aAAa,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IAC5B,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,4BAA4B;AAC5B,MAAM,UAAU,eAAe,CAAC,KAAa,EAAE,GAAwB;IACrE,MAAM,GAAG,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;IAC9B,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;AACpC,CAAC;AAED,2BAA2B;AAC3B,MAAM,UAAU,aAAa,CAAC,GAAwB;IACpD,MAAM,MAAM,GAAG,IAAI,GAAG,EAAU,CAAC;IACjC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,KAAK,MAAM,IAAI,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,aAAa,EAAE,EAAE,CAAC;YACjD,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACnB,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAC5B,CAAC;AAED,gDAAgD;AAChD,SAAS,mBAAmB,CAAC,KAAc;IACzC,IAAI,CAAC,KAAK;QAAE,OAAO,SAAS,CAAC;IAC7B,IAAI,KAAK,KAAK,MAAM;QAAE,OAAO,SAAS,CAAC;IACvC,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,aAAa,CAAC,GAAwB,EAAE,KAAY;IAC3D,IAAI,CAAC;QACH,GAAG,CAAC,OAAO,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC;IAChC,CAAC;IAAC,MAAM,CAAC;QACP,6EAA6E;QAC7E,wDAAwD;IAC1D,CAAC;AACH,CAAC;AAED,SAAS,kBAAkB,CAAC,GAAwB,EAAE,KAAY;IAChE,IAAI,CAAC;QACH,GAAG,CAAC,OAAO,EAAE,cAAc,CAAC,KAAK,CAAC,CAAC;IACrC,CAAC;IAAC,MAAM,CAAC;QACP,mCAAmC;IACrC,CAAC;AACH,CAAC;AAED,SAAS,gBAAgB,CACvB,KAAa,EACb,OAAe,EACf,GAAwB,EACxB,OAAe;IAEf,MAAM,GAAG,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;IAC9B,MAAM,KAAK,GAAG,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAC9B,MAAM,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAChC,MAAM,OAAO,GAAG,KAAK,CAAC,UAAU,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IAC1D,MAAM,OAAO,GAAY,EAAE,CAAC;IAC5B,KAAK,MAAM,EAAE,KAAK,EAAE,IAAI,OAAO,EAAE,CAAC;QAChC,IAAI,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;YACjB,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAChB,KAAK,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;YAC7B,KAAK,CAAC,uBAAuB,CAAC,KAAK,CAAC,CAAC;YACrC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAC3B,aAAa,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;YAC1B,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACtB,CAAC;IACH,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,cAAc,CACrB,KAAa,EACb,OAAe,EACf,GAAwB,EACxB,OAAe;IAEf,IAAI,CAAC,GAAG,CAAC,aAAa,IAAI,CAAC,GAAG,CAAC,iBAAiB;QAAE,OAAO,EAAE,CAAC;IAC5D,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO,CAAC;IACvC,MAAM,QAAQ,GAAY,EAAE,CAAC;IAC7B,KAAK,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC;QACtC,IAAI,GAAG,CAAC,IAAI,KAAK,WAAW,IAAI,GAAG,CAAC,SAAS,KAAK,KAAK;YAAE,SAAS;QAClE,MAAM,GAAG,GAAG,GAAG,CAAC,iBAAiB,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC;QAC/E,MAAM,EAAE,GAAG,GAAG,EAAE,WAAW,IAAI,GAAG,EAAE,SAAS,IAAI,CAAC,CAAC;QACnD,IAAI,EAAE,IAAI,EAAE,GAAG,SAAS;YAAE,SAAS;QACnC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACnB,IAAI,QAAQ,CAAC,MAAM,IAAI,OAAO;YAAE,MAAM;IACxC,CAAC;IACD,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;QAC3B,GAAG,CAAC,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC9B,GAAG,CAAC,iBAAiB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAClC,GAAG,CAAC,UAAU,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC;QAC5B,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC;QACzB,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACzB,aAAa,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAC1B,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAS,WAAW,CAClB,KAAa,EACb,OAAe,EACf,GAAwB,EACxB,OAAe;IAEf,MAAM,GAAG,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;IAC9B,MAAM,KAAK,GAAG,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAC9B,MAAM,OAAO,GAAG,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IAC3C,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO,CAAC;IACvC,MAAM,QAAQ,GAAY,EAAE,CAAC;IAC7B,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,MAAM,EAAE,GAAG,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC;QAClD,IAAI,EAAE,GAAG,SAAS;YAAE,SAAS;QAC7B,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC5B,IAAI,QAAQ,CAAC,MAAM,IAAI,OAAO;YAAE,MAAM;IACxC,CAAC;IACD,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;QAC3B,KAAK,CAAC,aAAa,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAChC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACzB,GAAG,CAAC,UAAU,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC;QAC5B,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC;QACzB,kBAAkB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QAC7B,aAAa,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAC1B,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,UAAU,CACxB,KAAa,EACb,OAAe,EACf,GAAwB,EACxB,KAAc,EACd,KAAc;IAEd,MAAM,OAAO,GAAG,KAAK,IAAI,IAAI,CAAC;IAC9B,MAAM,UAAU,GAAG,mBAAmB,CAAC,KAAK,CAAC,CAAC;IAE9C,QAAQ,UAAU,EAAE,CAAC;QACnB,KAAK,SAAS,CAAC;QACf,KAAK,SAAS,CAAC;QACf,KAAK,SAAS,CAAC;QACf,KAAK,aAAa,CAAC;QACnB,KAAK,QAAQ;YACX,OAAO,gBAAgB,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;QACxD,KAAK,WAAW;YACd,OAAO,cAAc,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;QACtD,KAAK,QAAQ;YACX,OAAO,WAAW,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;QACnD,KAAK,QAAQ,CAAC;QACd;YACE,OAAO,EAAE,CAAC;IACd,CAAC;AACH,CAAC;AAED,iCAAiC;AACjC,MAAM,UAAU,aAAa,CAAC,KAAa,EAAE,GAAwB;IACnE,MAAM,GAAG,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;IAC9B,MAAM,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC1C,OAAO,CAAC,CAAC,IAAI,CAAC;AAChB,CAAC"}
|
|
@@ -110,6 +110,13 @@ export declare class QueueManager {
|
|
|
110
110
|
registerClientJob(clientId: string, jobId: JobId): void;
|
|
111
111
|
unregisterClientJob(clientId: string | undefined, jobId: JobId): void;
|
|
112
112
|
releaseClientJobs(clientId: string): Promise<number>;
|
|
113
|
+
/**
|
|
114
|
+
* Force-release client tracking without acquiring queue locks. Last-resort
|
|
115
|
+
* fallback when releaseClientJobs has exhausted its retry budget — clears
|
|
116
|
+
* the clientJobs map entry to prevent leaks and resets job heartbeats so
|
|
117
|
+
* the stall detector recovers orphaned active jobs on its next tick.
|
|
118
|
+
*/
|
|
119
|
+
forceReleaseClientJobs(clientId: string): number;
|
|
113
120
|
getJob(jobId: JobId): Promise<Job | null>;
|
|
114
121
|
getJobState(jobId: JobId): Promise<string>;
|
|
115
122
|
getResult(jobId: JobId): unknown;
|
|
@@ -138,7 +145,7 @@ export declare class QueueManager {
|
|
|
138
145
|
listQueues(): string[];
|
|
139
146
|
private registerQueueName;
|
|
140
147
|
private unregisterQueueName;
|
|
141
|
-
clean(queue: string, graceMs: number, state?: string, limit?: number):
|
|
148
|
+
clean(queue: string, graceMs: number, state?: string, limit?: number): JobId[];
|
|
142
149
|
getCountsPerPriority(queue: string): Record<number, number>;
|
|
143
150
|
getJobs(queue: string, options?: {
|
|
144
151
|
state?: string | string[];
|
|
@@ -186,7 +193,7 @@ export declare class QueueManager {
|
|
|
186
193
|
cancel(jobId: JobId): Promise<boolean>;
|
|
187
194
|
updateProgress(jobId: JobId, progress: number, message?: string): Promise<boolean>;
|
|
188
195
|
updateJobData(jobId: JobId, data: unknown): Promise<boolean>;
|
|
189
|
-
changePriority(jobId: JobId, priority: number): Promise<boolean>;
|
|
196
|
+
changePriority(jobId: JobId, priority: number, lifo?: boolean): Promise<boolean>;
|
|
190
197
|
promote(jobId: JobId): Promise<boolean>;
|
|
191
198
|
moveToDelayed(jobId: JobId, delay: number): Promise<boolean>;
|
|
192
199
|
changeDelay(jobId: JobId, delay: number): Promise<boolean>;
|
|
@@ -236,10 +243,17 @@ export declare class QueueManager {
|
|
|
236
243
|
*/
|
|
237
244
|
private onChildDependencyOption;
|
|
238
245
|
/**
|
|
239
|
-
* continueParentOnFailure: move parent to queue
|
|
246
|
+
* continueParentOnFailure: move parent to queue when a child fails.
|
|
240
247
|
* Stores the failure info for getFailedChildrenValues().
|
|
241
248
|
*/
|
|
242
249
|
private continueParentOnChildFailure;
|
|
250
|
+
/**
|
|
251
|
+
* Move a flow parent from its waiting state into the run queue after a child failure
|
|
252
|
+
* (continueParentOnFailure / last-dependency resolution). Deferred to the next tick
|
|
253
|
+
* so the failed child's worker batch drains first — the parent is then picked up on
|
|
254
|
+
* a subsequent poll rather than racing to completion in the same synchronous cascade.
|
|
255
|
+
*/
|
|
256
|
+
private promoteParentAfterChildFailure;
|
|
243
257
|
/**
|
|
244
258
|
* removeDependencyOnFailure / ignoreDependencyOnFailure:
|
|
245
259
|
* Remove child from parent's pending deps. If last dep, promote parent.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"queueManager.d.ts","sourceRoot":"","sources":["../../src/application/queueManager.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"queueManager.d.ts","sourceRoot":"","sources":["../../src/application/queueManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -509,6 +509,15 @@ export class QueueManager {
|
|
|
509
509
|
releaseClientJobs(clientId) {
|
|
510
510
|
return lockMgr.releaseClientJobs(clientId, this.contextFactory.getLockContext());
|
|
511
511
|
}
|
|
512
|
+
/**
|
|
513
|
+
* Force-release client tracking without acquiring queue locks. Last-resort
|
|
514
|
+
* fallback when releaseClientJobs has exhausted its retry budget — clears
|
|
515
|
+
* the clientJobs map entry to prevent leaks and resets job heartbeats so
|
|
516
|
+
* the stall detector recovers orphaned active jobs on its next tick.
|
|
517
|
+
*/
|
|
518
|
+
forceReleaseClientJobs(clientId) {
|
|
519
|
+
return lockMgr.forceReleaseClientJobs(clientId, this.contextFactory.getLockContext());
|
|
520
|
+
}
|
|
512
521
|
// ============ Query Operations ============
|
|
513
522
|
async getJob(jobId) {
|
|
514
523
|
return queryOps.getJob(jobId, this.contextFactory.getQueryContext());
|
|
@@ -630,6 +639,55 @@ export class QueueManager {
|
|
|
630
639
|
}
|
|
631
640
|
obliterate(queue) {
|
|
632
641
|
queueControl.obliterateQueue(queue, this.contextFactory.getQueueControlContext());
|
|
642
|
+
dlqOps.purgeDlqJobs(queue, this.contextFactory.getDlqContext());
|
|
643
|
+
// obliterateQueue() clears the waiting/delayed shard only. Active jobs in
|
|
644
|
+
// processingShards, plus completed/result/log/lock state in global indexes,
|
|
645
|
+
// plus SQLite rows, all survive unless we purge them here.
|
|
646
|
+
const toDrop = new Set();
|
|
647
|
+
for (const [jid, loc] of this.jobIndex) {
|
|
648
|
+
if (loc.type === 'processing') {
|
|
649
|
+
const job = this.processingShards[loc.shardIdx]?.get(jid);
|
|
650
|
+
if (job?.queue === queue)
|
|
651
|
+
toDrop.add(jid);
|
|
652
|
+
}
|
|
653
|
+
else if (loc.queueName === queue) {
|
|
654
|
+
toDrop.add(jid);
|
|
655
|
+
}
|
|
656
|
+
}
|
|
657
|
+
for (const jid of toDrop) {
|
|
658
|
+
const loc = this.jobIndex.get(jid);
|
|
659
|
+
if (loc?.type === 'processing') {
|
|
660
|
+
this.processingShards[loc.shardIdx]?.delete(jid);
|
|
661
|
+
}
|
|
662
|
+
this.jobIndex.delete(jid);
|
|
663
|
+
this.completedJobs.delete(jid);
|
|
664
|
+
this.completedJobsData.delete(jid);
|
|
665
|
+
this.jobResults.delete(jid);
|
|
666
|
+
this.jobLogs.delete(jid);
|
|
667
|
+
this.jobLocks.delete(jid);
|
|
668
|
+
this.failedChildrenValues.delete(jid);
|
|
669
|
+
this.ignoredChildrenFailures.delete(jid);
|
|
670
|
+
this.pendingDepChecks.delete(jid);
|
|
671
|
+
this.stalledCandidates.delete(jid);
|
|
672
|
+
this.repeatChain.delete(jid);
|
|
673
|
+
this.storage?.deleteJob(jid);
|
|
674
|
+
}
|
|
675
|
+
// repeatChain maps oldId → newId; drop rows whose value is now a ghost.
|
|
676
|
+
const chainKeysToDelete = [];
|
|
677
|
+
for (const [oldId, newId] of this.repeatChain) {
|
|
678
|
+
if (toDrop.has(newId))
|
|
679
|
+
chainKeysToDelete.push(oldId);
|
|
680
|
+
}
|
|
681
|
+
for (const oldId of chainKeysToDelete)
|
|
682
|
+
this.repeatChain.delete(oldId);
|
|
683
|
+
// Drop customId → JobId mappings that point at a dropped job
|
|
684
|
+
const customIdsToDelete = [];
|
|
685
|
+
for (const [cid, jid] of this.customIdMap.entries()) {
|
|
686
|
+
if (toDrop.has(jid))
|
|
687
|
+
customIdsToDelete.push(cid);
|
|
688
|
+
}
|
|
689
|
+
for (const cid of customIdsToDelete)
|
|
690
|
+
this.customIdMap.delete(cid);
|
|
633
691
|
this.unregisterQueueName(queue);
|
|
634
692
|
this.dashboardEmit?.('queue:obliterated', { queue });
|
|
635
693
|
this.dashboardEmit?.('queue:removed', { queue });
|
|
@@ -773,8 +831,8 @@ export class QueueManager {
|
|
|
773
831
|
async updateJobData(jobId, data) {
|
|
774
832
|
return jobMgmt.updateJobData(jobId, data, this.contextFactory.getJobMgmtContext());
|
|
775
833
|
}
|
|
776
|
-
async changePriority(jobId, priority) {
|
|
777
|
-
return jobMgmt.changeJobPriority(jobId, priority, this.contextFactory.getJobMgmtContext());
|
|
834
|
+
async changePriority(jobId, priority, lifo) {
|
|
835
|
+
return jobMgmt.changeJobPriority(jobId, priority, this.contextFactory.getJobMgmtContext(), lifo);
|
|
778
836
|
}
|
|
779
837
|
async promote(jobId) {
|
|
780
838
|
return jobMgmt.promoteJob(jobId, this.contextFactory.getJobMgmtContext());
|
|
@@ -783,8 +841,14 @@ export class QueueManager {
|
|
|
783
841
|
return jobMgmt.moveJobToDelayed(jobId, delay, this.contextFactory.getJobMgmtContext());
|
|
784
842
|
}
|
|
785
843
|
async changeDelay(jobId, delay) {
|
|
786
|
-
|
|
787
|
-
|
|
844
|
+
const ctx = this.contextFactory.getJobMgmtContext();
|
|
845
|
+
const loc = ctx.jobIndex.get(jobId);
|
|
846
|
+
// Jobs already in queue (waiting/delayed): mutate runAt in place
|
|
847
|
+
if (loc?.type === 'queue') {
|
|
848
|
+
return jobTransitions.changeWaitingDelay(jobId, delay, ctx);
|
|
849
|
+
}
|
|
850
|
+
// Active/processing jobs: move back to queue with new delay
|
|
851
|
+
return jobMgmt.moveJobToDelayed(jobId, delay, ctx);
|
|
788
852
|
}
|
|
789
853
|
async moveActiveToWait(jobId) {
|
|
790
854
|
return jobTransitions.moveActiveToWait(jobId, this.contextFactory.getJobMgmtContext());
|
|
@@ -933,6 +997,15 @@ export class QueueManager {
|
|
|
933
997
|
return this.shards;
|
|
934
998
|
}
|
|
935
999
|
onJobCompleted(completedId) {
|
|
1000
|
+
// Release flow-failure tracking once a parent job reaches terminal completion
|
|
1001
|
+
// (AUDIT H8). The parent consumes these values via getFailedChildrenValues()/
|
|
1002
|
+
// getIgnoredChildrenFailures() while it is processing (before it acks), so by the
|
|
1003
|
+
// time it completes they are no longer needed. Keyed by parentId; obliterate()
|
|
1004
|
+
// and shutdown() clear them too. Without this, every parent completion that
|
|
1005
|
+
// involved a failed child with continueParentOnFailure / ignoreDependencyOnFailure
|
|
1006
|
+
// leaked an entry permanently.
|
|
1007
|
+
this.failedChildrenValues.delete(completedId);
|
|
1008
|
+
this.ignoredChildrenFailures.delete(completedId);
|
|
936
1009
|
this.pendingDepChecks.add(completedId);
|
|
937
1010
|
this.scheduleDependencyFlush();
|
|
938
1011
|
void this.checkFlowCompleted(completedId);
|
|
@@ -1003,7 +1076,11 @@ export class QueueManager {
|
|
|
1003
1076
|
const entry = shard.addToDlq(parentJob, "unknown" /* FailureReason.Unknown */, failError);
|
|
1004
1077
|
this.jobIndex.set(parentId, { type: 'dlq', queueName: parentJob.queue });
|
|
1005
1078
|
this.storage?.saveDlqEntry(entry);
|
|
1079
|
+
this.storage?.deleteJob(parentId);
|
|
1006
1080
|
});
|
|
1081
|
+
// Parent reached a terminal (DLQ) state — release its flow-failure tracking.
|
|
1082
|
+
this.failedChildrenValues.delete(parentId);
|
|
1083
|
+
this.ignoredChildrenFailures.delete(parentId);
|
|
1007
1084
|
// Broadcast failed event for parent
|
|
1008
1085
|
this.eventsManager.broadcast({
|
|
1009
1086
|
eventType: 'failed',
|
|
@@ -1035,7 +1112,7 @@ export class QueueManager {
|
|
|
1035
1112
|
}
|
|
1036
1113
|
}
|
|
1037
1114
|
/**
|
|
1038
|
-
* continueParentOnFailure: move parent to queue
|
|
1115
|
+
* continueParentOnFailure: move parent to queue when a child fails.
|
|
1039
1116
|
* Stores the failure info for getFailedChildrenValues().
|
|
1040
1117
|
*/
|
|
1041
1118
|
async continueParentOnChildFailure(childJob, error) {
|
|
@@ -1054,6 +1131,19 @@ export class QueueManager {
|
|
|
1054
1131
|
existing[childKey] = error ?? 'unknown error';
|
|
1055
1132
|
this.failedChildrenValues.set(parentId, existing);
|
|
1056
1133
|
const idx = shardIndex(parentJob.queue);
|
|
1134
|
+
await this.promoteParentAfterChildFailure(parentId, parentJob, idx);
|
|
1135
|
+
}
|
|
1136
|
+
/**
|
|
1137
|
+
* Move a flow parent from its waiting state into the run queue after a child failure
|
|
1138
|
+
* (continueParentOnFailure / last-dependency resolution). Deferred to the next tick
|
|
1139
|
+
* so the failed child's worker batch drains first — the parent is then picked up on
|
|
1140
|
+
* a subsequent poll rather than racing to completion in the same synchronous cascade.
|
|
1141
|
+
*/
|
|
1142
|
+
async promoteParentAfterChildFailure(parentId, parentJob, idx) {
|
|
1143
|
+
await new Promise((resolve) => {
|
|
1144
|
+
const timer = setTimeout(resolve, 0);
|
|
1145
|
+
timer.unref?.();
|
|
1146
|
+
});
|
|
1057
1147
|
let promoted = false;
|
|
1058
1148
|
await withWriteLock(this.shardLocks[idx], () => {
|
|
1059
1149
|
// TOCTOU guard
|
|
@@ -1113,7 +1203,9 @@ export class QueueManager {
|
|
|
1113
1203
|
this.ignoredChildrenFailures.set(parentId, existing);
|
|
1114
1204
|
}
|
|
1115
1205
|
const idx = shardIndex(parentJob.queue);
|
|
1116
|
-
|
|
1206
|
+
// Remove the failed child from the parent's pending deps synchronously so
|
|
1207
|
+
// dependency tracking stays consistent; defer only the promotion decision.
|
|
1208
|
+
let readyToPromote = false;
|
|
1117
1209
|
await withWriteLock(this.shardLocks[idx], () => {
|
|
1118
1210
|
if (this.jobIndex.get(parentId)?.type !== 'queue')
|
|
1119
1211
|
return;
|
|
@@ -1127,28 +1219,13 @@ export class QueueManager {
|
|
|
1127
1219
|
parentJob.dependsOn.splice(depIndex, 1);
|
|
1128
1220
|
shard.unregisterDependencies(parentId, [childJob.id]);
|
|
1129
1221
|
}
|
|
1130
|
-
// If no more pending deps,
|
|
1131
|
-
|
|
1132
|
-
parentJob.dependsOn.
|
|
1133
|
-
|
|
1134
|
-
shard.waitingDeps.delete(parentId);
|
|
1135
|
-
const now = Date.now();
|
|
1136
|
-
parentJob.runAt = now;
|
|
1137
|
-
shard.getQueue(parentJob.queue).push(parentJob);
|
|
1138
|
-
shard.incrementQueued(parentId, false, parentJob.createdAt, parentJob.queue, now);
|
|
1139
|
-
this.jobIndex.set(parentId, { type: 'queue', shardIdx: idx, queueName: parentJob.queue });
|
|
1140
|
-
shard.notify();
|
|
1141
|
-
promoted = true;
|
|
1142
|
-
}
|
|
1222
|
+
// If no more pending deps, the parent is ready to be promoted
|
|
1223
|
+
readyToPromote =
|
|
1224
|
+
parentJob.dependsOn.length === 0 ||
|
|
1225
|
+
parentJob.dependsOn.every((dep) => this.completedJobs.has(dep));
|
|
1143
1226
|
});
|
|
1144
|
-
if (
|
|
1145
|
-
this.
|
|
1146
|
-
eventType: 'waiting',
|
|
1147
|
-
queue: parentJob.queue,
|
|
1148
|
-
jobId: parentId,
|
|
1149
|
-
timestamp: Date.now(),
|
|
1150
|
-
prev: 'waiting-children',
|
|
1151
|
-
});
|
|
1227
|
+
if (readyToPromote) {
|
|
1228
|
+
await this.promoteParentAfterChildFailure(parentId, parentJob, idx);
|
|
1152
1229
|
}
|
|
1153
1230
|
}
|
|
1154
1231
|
/**
|
|
@@ -1353,6 +1430,8 @@ export class QueueManager {
|
|
|
1353
1430
|
this.stalledCandidates.clear();
|
|
1354
1431
|
this.clientJobs.clear();
|
|
1355
1432
|
this.repeatChain.clear();
|
|
1433
|
+
this.failedChildrenValues.clear();
|
|
1434
|
+
this.ignoredChildrenFailures.clear();
|
|
1356
1435
|
for (const shard of this.processingShards)
|
|
1357
1436
|
shard.clear();
|
|
1358
1437
|
for (const shard of this.shards) {
|