bunqueue 2.8.53 → 2.8.56
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/application/background/dlq.d.ts +2 -0
- package/dist/application/background/dlq.js +26 -0
- package/dist/application/background/lifecycle.d.ts +4 -0
- package/dist/application/background/lifecycle.js +90 -0
- package/dist/application/background/recovery/active.d.ts +4 -0
- package/dist/application/background/recovery/active.js +69 -0
- package/dist/application/background/recovery/index.d.ts +2 -0
- package/dist/application/background/recovery/index.js +22 -0
- package/dist/application/background/recovery/pending.d.ts +3 -0
- package/dist/application/background/recovery/pending.js +69 -0
- package/dist/application/background/recovery/restore.d.ts +5 -0
- package/dist/application/background/recovery/restore.js +58 -0
- package/dist/application/background/recovery/shared.d.ts +6 -0
- package/dist/application/background/recovery/shared.js +15 -0
- package/dist/application/background/timeouts.d.ts +25 -0
- package/dist/application/background/timeouts.js +191 -0
- package/dist/application/backgroundTasks.d.ts +7 -31
- package/dist/application/backgroundTasks.js +6 -438
- package/dist/application/cleanupTasks.js +2 -1
- package/dist/application/clientTracking.js +3 -1
- package/dist/application/contextFactory.d.ts +13 -90
- package/dist/application/contextFactory.js +9 -0
- package/dist/application/dependencyResultTracker.d.ts +1 -0
- package/dist/application/dependencyResultTracker.js +3 -0
- package/dist/application/dlqManager.d.ts +9 -9
- package/dist/application/dlqManager.js +49 -167
- package/dist/application/dlqRetry.d.ts +12 -0
- package/dist/application/dlqRetry.js +97 -0
- package/dist/application/lockManager.js +24 -4
- package/dist/application/lockOperations.js +16 -3
- package/dist/application/operations/ack/batch.d.ts +8 -0
- package/dist/application/operations/ack/batch.js +64 -0
- package/dist/application/operations/ack/completion.d.ts +3 -0
- package/dist/application/operations/ack/completion.js +74 -0
- package/dist/application/operations/ack/failure.d.ts +3 -0
- package/dist/application/operations/ack/failure.js +160 -0
- package/dist/application/operations/ack.d.ts +5 -79
- package/dist/application/operations/ack.js +4 -319
- package/dist/application/operations/ackHelpers.d.ts +3 -52
- package/dist/application/operations/ackHelpers.js +11 -4
- package/dist/application/operations/customId.d.ts +18 -5
- package/dist/application/operations/customId.js +36 -25
- package/dist/application/operations/flowValidation.js +9 -4
- package/dist/application/operations/jobManagement.js +50 -11
- package/dist/application/operations/jobMoveOperations.js +3 -3
- package/dist/application/operations/jobStateTransitions.d.ts +1 -1
- package/dist/application/operations/jobStateTransitions.js +16 -2
- package/dist/application/operations/parentLink.d.ts +36 -0
- package/dist/application/operations/parentLink.js +153 -0
- package/dist/application/operations/parentLinkInput.d.ts +8 -0
- package/dist/application/operations/parentLinkInput.js +23 -0
- package/dist/application/operations/push.d.ts +5 -44
- package/dist/application/operations/push.js +62 -152
- package/dist/application/operations/pushAdmission.d.ts +32 -0
- package/dist/application/operations/pushAdmission.js +38 -0
- package/dist/application/operations/pushBatch.d.ts +4 -0
- package/dist/application/operations/pushBatch.js +136 -0
- package/dist/application/operations/pushContext.d.ts +39 -0
- package/dist/application/operations/pushContext.js +1 -0
- package/dist/application/operations/pushDeduplication.d.ts +42 -0
- package/dist/application/operations/pushDeduplication.js +131 -0
- package/dist/application/operations/pushInsert.d.ts +13 -1
- package/dist/application/operations/pushInsert.js +33 -17
- package/dist/application/operations/pushLocks.js +13 -9
- package/dist/application/operations/query/collect.d.ts +12 -0
- package/dist/application/operations/query/collect.js +118 -0
- package/dist/application/operations/query/jobLookup.d.ts +9 -0
- package/dist/application/operations/query/jobLookup.js +110 -0
- package/dist/application/operations/query/pagination.d.ts +8 -0
- package/dist/application/operations/query/pagination.js +90 -0
- package/dist/application/operations/query/state.d.ts +4 -0
- package/dist/application/operations/query/state.js +63 -0
- package/dist/application/operations/queryOperations.d.ts +5 -50
- package/dist/application/operations/queryOperations.js +4 -474
- package/dist/application/queue-manager/ack.d.ts +23 -0
- package/dist/application/queue-manager/ack.js +242 -0
- package/dist/application/queue-manager/configuration.d.ts +27 -0
- package/dist/application/queue-manager/configuration.js +84 -0
- package/dist/application/queue-manager/context.d.ts +5 -0
- package/dist/application/queue-manager/context.js +61 -0
- package/dist/application/queue-manager/control.d.ts +17 -0
- package/dist/application/queue-manager/control.js +133 -0
- package/dist/application/queue-manager/delivery.d.ts +32 -0
- package/dist/application/queue-manager/delivery.js +143 -0
- package/dist/application/queue-manager/dependencies.d.ts +8 -0
- package/dist/application/queue-manager/dependencies.js +127 -0
- package/dist/application/queue-manager/dependency-runtime.d.ts +8 -0
- package/dist/application/queue-manager/dependency-runtime.js +40 -0
- package/dist/application/queue-manager/flow-failures.d.ts +18 -0
- package/dist/application/queue-manager/flow-failures.js +107 -0
- package/dist/application/queue-manager/flow-options.d.ts +8 -0
- package/dist/application/queue-manager/flow-options.js +129 -0
- package/dist/application/queue-manager/job-management.d.ts +17 -0
- package/dist/application/queue-manager/job-management.js +100 -0
- package/dist/application/queue-manager/lifecycle.d.ts +4 -0
- package/dist/application/queue-manager/lifecycle.js +41 -0
- package/dist/application/queue-manager/limits.d.ts +41 -0
- package/dist/application/queue-manager/limits.js +108 -0
- package/dist/application/queue-manager/locks.d.ts +21 -0
- package/dist/application/queue-manager/locks.js +59 -0
- package/dist/application/queue-manager/observability.d.ts +16 -0
- package/dist/application/queue-manager/observability.js +44 -0
- package/dist/application/queue-manager/queries.d.ts +17 -0
- package/dist/application/queue-manager/queries.js +118 -0
- package/dist/application/queue-manager/repeat.d.ts +4 -0
- package/dist/application/queue-manager/repeat.js +26 -0
- package/dist/application/queue-manager/services.d.ts +19 -0
- package/dist/application/queue-manager/services.js +80 -0
- package/dist/application/queue-manager/state.d.ts +92 -0
- package/dist/application/queue-manager/state.js +144 -0
- package/dist/application/queue-manager/stats.d.ts +28 -0
- package/dist/application/queue-manager/stats.js +52 -0
- package/dist/application/queueManager.d.ts +4 -380
- package/dist/application/queueManager.js +3 -1880
- package/dist/application/queueTelemetryJournal.d.ts +20 -0
- package/dist/application/queueTelemetryJournal.js +133 -0
- package/dist/application/repeatJobs.d.ts +7 -0
- package/dist/application/repeatJobs.js +132 -0
- package/dist/application/stallDetection.js +9 -4
- package/dist/application/types/ack.d.ts +132 -0
- package/dist/application/types/ack.js +1 -0
- package/dist/application/types/background.d.ts +18 -0
- package/dist/application/types/background.js +1 -0
- package/dist/application/types/config.d.ts +37 -0
- package/dist/application/types/config.js +15 -0
- package/dist/application/types/contextFactory.d.ts +83 -0
- package/dist/application/types/contextFactory.js +1 -0
- package/dist/application/types/contexts.d.ts +110 -0
- package/dist/application/types/contexts.js +1 -0
- package/dist/application/types/index.d.ts +7 -0
- package/dist/application/types/index.js +1 -0
- package/dist/application/types/query.d.ts +23 -0
- package/dist/application/types/query.js +1 -0
- package/dist/application/types/queueManager.d.ts +94 -0
- package/dist/application/types/queueManager.js +1 -0
- package/dist/cli/commandRouter.d.ts +1 -1
- package/dist/cli/commands/core.js +1 -0
- package/dist/cli/output/collections.d.ts +8 -0
- package/dist/cli/output/collections.js +131 -0
- package/dist/cli/output/jobs.d.ts +2 -0
- package/dist/cli/output/jobs.js +61 -0
- package/dist/cli/output/style.d.ts +14 -0
- package/dist/cli/output/style.js +28 -0
- package/dist/cli/output/success.d.ts +1 -0
- package/dist/cli/output/success.js +108 -0
- package/dist/cli/output.d.ts +1 -6
- package/dist/cli/output.js +7 -395
- package/dist/client/bunqueue/dlqRateLimit.d.ts +8 -0
- package/dist/client/bunqueue/dlqRateLimit.js +24 -0
- package/dist/client/bunqueue/runtime.d.ts +35 -0
- package/dist/client/bunqueue/runtime.js +138 -0
- package/dist/client/bunqueue.d.ts +19 -34
- package/dist/client/bunqueue.js +45 -166
- package/dist/client/dlqConversion.d.ts +5 -0
- package/dist/client/dlqConversion.js +28 -0
- package/dist/client/events.d.ts +7 -56
- package/dist/client/events.js +38 -15
- package/dist/client/flow.d.ts +6 -12
- package/dist/client/flow.js +16 -34
- package/dist/client/flowJobDependencies.js +3 -1
- package/dist/client/flowJobFactory.d.ts +9 -1
- package/dist/client/flowJobFactory.js +25 -9
- package/dist/client/flowJobMoveMethods.d.ts +5 -5
- package/dist/client/flowJobMoveMethods.js +37 -17
- package/dist/client/flowLegacyPlan.js +22 -8
- package/dist/client/flowOptions.d.ts +1 -1
- package/dist/client/flowOptions.js +2 -1
- package/dist/client/flowPlan.js +2 -3
- package/dist/client/flowPush.d.ts +1 -0
- package/dist/client/flowPush.js +5 -1
- package/dist/client/flowReader.js +5 -5
- package/dist/client/flowResults.d.ts +11 -0
- package/dist/client/flowResults.js +42 -0
- package/dist/client/index.d.ts +3 -1
- package/dist/client/jobConversion.d.ts +3 -7
- package/dist/client/jobConversion.js +36 -33
- package/dist/client/jobConversionHelpers.d.ts +19 -3
- package/dist/client/jobConversionHelpers.js +20 -16
- package/dist/client/jobConversionTypes.d.ts +8 -0
- package/dist/client/jobDeduplication.d.ts +6 -0
- package/dist/client/jobDeduplication.js +14 -0
- package/dist/client/jobHelpers.d.ts +7 -2
- package/dist/client/jobHelpers.js +16 -8
- package/dist/client/queue/bullmqCompat.d.ts +18 -8
- package/dist/client/queue/bullmqCompat.js +39 -71
- package/dist/client/queue/deduplication.d.ts +2 -0
- package/dist/client/queue/deduplication.js +20 -11
- package/dist/client/queue/dlq.d.ts +11 -6
- package/dist/client/queue/dlq.js +57 -16
- package/dist/client/queue/dlqJobMethods.d.ts +9 -0
- package/dist/client/queue/dlqJobMethods.js +177 -0
- package/dist/client/queue/dlqOps.d.ts +2 -1
- package/dist/client/queue/dlqOps.js +4 -10
- package/dist/client/queue/dlqStats.d.ts +3 -0
- package/dist/client/queue/dlqStats.js +21 -0
- package/dist/client/queue/job-proxy/dependencies.d.ts +9 -0
- package/dist/client/queue/job-proxy/dependencies.js +67 -0
- package/dist/client/queue/job-proxy/reflection.d.ts +2 -0
- package/dist/client/queue/job-proxy/reflection.js +18 -0
- package/dist/client/queue/job-proxy/simple.d.ts +3 -0
- package/dist/client/queue/job-proxy/simple.js +316 -0
- package/dist/client/queue/job-proxy/tcp.d.ts +4 -0
- package/dist/client/queue/job-proxy/tcp.js +191 -0
- package/dist/client/queue/jobMetadata.d.ts +10 -0
- package/dist/client/queue/jobMetadata.js +24 -0
- package/dist/client/queue/jobMove.d.ts +4 -4
- package/dist/client/queue/jobMove.js +87 -24
- package/dist/client/queue/jobProxy.d.ts +4 -50
- package/dist/client/queue/jobProxy.js +3 -511
- package/dist/client/queue/operations/add/bulk.d.ts +7 -0
- package/dist/client/queue/operations/add/bulk.js +129 -0
- package/dist/client/queue/operations/add/payload.d.ts +24 -0
- package/dist/client/queue/operations/add/payload.js +85 -0
- package/dist/client/queue/operations/add/single.d.ts +3 -0
- package/dist/client/queue/operations/add/single.js +107 -0
- package/dist/client/queue/operations/add.d.ts +2 -47
- package/dist/client/queue/operations/add.js +2 -347
- package/dist/client/queue/operations/index.d.ts +1 -0
- package/dist/client/queue/operations/index.js +1 -0
- package/dist/client/queue/operations/management.d.ts +0 -4
- package/dist/client/queue/operations/management.js +35 -6
- package/dist/client/queue/operations/query.d.ts +1 -20
- package/dist/client/queue/operations/query.js +38 -116
- package/dist/client/queue/operations/queryStates.d.ts +13 -0
- package/dist/client/queue/operations/queryStates.js +32 -0
- package/dist/client/queue/operations/queryTcpPages.d.ts +14 -0
- package/dist/client/queue/operations/queryTcpPages.js +40 -0
- package/dist/client/queue/queue.d.ts +6 -189
- package/dist/client/queue/queue.js +6 -547
- package/dist/client/queue/rateLimit.d.ts +4 -4
- package/dist/client/queue/rateLimit.js +17 -8
- package/dist/client/queue/runtime/compatibility.d.ts +13 -0
- package/dist/client/queue/runtime/compatibility.js +38 -0
- package/dist/client/queue/runtime/configuration.d.ts +42 -0
- package/dist/client/queue/runtime/configuration.js +109 -0
- package/dist/client/queue/runtime/connection.d.ts +6 -0
- package/dist/client/queue/runtime/connection.js +16 -0
- package/dist/client/queue/runtime/control.d.ts +41 -0
- package/dist/client/queue/runtime/control.js +87 -0
- package/dist/client/queue/runtime/queries.d.ts +48 -0
- package/dist/client/queue/runtime/queries.js +95 -0
- package/dist/client/queue/runtime/scheduling.d.ts +33 -0
- package/dist/client/queue/runtime/scheduling.js +56 -0
- package/dist/client/queue/runtime/state.d.ts +96 -0
- package/dist/client/queue/runtime/state.js +149 -0
- package/dist/client/queue/scheduler.d.ts +2 -5
- package/dist/client/queue/scheduler.js +25 -23
- package/dist/client/queue/schedulerPagination.d.ts +7 -0
- package/dist/client/queue/schedulerPagination.js +10 -0
- package/dist/client/queue/types/add.d.ts +40 -0
- package/dist/client/queue/types/add.js +1 -0
- package/dist/client/queue/types/contexts.d.ts +33 -0
- package/dist/client/queue/types/contexts.js +5 -0
- package/dist/client/queue/types/index.d.ts +3 -0
- package/dist/client/queue/types/index.js +1 -0
- package/dist/client/queue/types/job.d.ts +50 -0
- package/dist/client/queue/types/job.js +1 -0
- package/dist/client/queue/types/runtime.d.ts +35 -0
- package/dist/client/queue/types/runtime.js +1 -0
- package/dist/client/queue/workers.d.ts +16 -8
- package/dist/client/queue/workers.js +42 -16
- package/dist/client/queue-events/tcpSubscription.d.ts +23 -0
- package/dist/client/queue-events/tcpSubscription.js +99 -0
- package/dist/client/queueGroup.d.ts +11 -0
- package/dist/client/queueGroup.js +28 -1
- package/dist/client/sandboxed/queueOps.d.ts +2 -2
- package/dist/client/sandboxed/queueOps.js +32 -5
- package/dist/client/sandboxed/runtime/dispatch.d.ts +13 -0
- package/dist/client/sandboxed/runtime/dispatch.js +186 -0
- package/dist/client/sandboxed/runtime/lifecycle.d.ts +20 -0
- package/dist/client/sandboxed/runtime/lifecycle.js +95 -0
- package/dist/client/sandboxed/runtime/log.d.ts +1 -0
- package/dist/client/sandboxed/runtime/log.js +15 -0
- package/dist/client/sandboxed/runtime/pool.d.ts +11 -0
- package/dist/client/sandboxed/runtime/pool.js +121 -0
- package/dist/client/sandboxed/runtime/recovery.d.ts +11 -0
- package/dist/client/sandboxed/runtime/recovery.js +122 -0
- package/dist/client/sandboxed/runtime/state.d.ts +39 -0
- package/dist/client/sandboxed/runtime/state.js +59 -0
- package/dist/client/sandboxed/types/index.d.ts +2 -0
- package/dist/client/sandboxed/types/index.js +1 -0
- package/dist/client/sandboxed/types/options.d.ts +27 -0
- package/dist/client/sandboxed/types/options.js +1 -0
- package/dist/client/sandboxed/types/process.d.ts +30 -0
- package/dist/client/sandboxed/types/process.js +1 -0
- package/dist/client/sandboxed/worker.d.ts +3 -85
- package/dist/client/sandboxed/worker.js +3 -557
- package/dist/client/sandboxed/wrapper.js +1 -0
- package/dist/client/tcp/client.d.ts +5 -112
- package/dist/client/tcp/client.js +5 -481
- package/dist/client/tcp/commandQueue.d.ts +23 -0
- package/dist/client/tcp/commandQueue.js +89 -0
- package/dist/client/tcp/connection.d.ts +4 -85
- package/dist/client/tcp/connection.js +3 -315
- package/dist/client/tcp/errors.d.ts +6 -0
- package/dist/client/tcp/errors.js +18 -0
- package/dist/client/tcp/runtime/commands.d.ts +9 -0
- package/dist/client/tcp/runtime/commands.js +124 -0
- package/dist/client/tcp/runtime/connectivity.d.ts +13 -0
- package/dist/client/tcp/runtime/connectivity.js +77 -0
- package/dist/client/tcp/runtime/health.d.ts +14 -0
- package/dist/client/tcp/runtime/health.js +127 -0
- package/dist/client/tcp/runtime/lifecycle.d.ts +8 -0
- package/dist/client/tcp/runtime/lifecycle.js +32 -0
- package/dist/client/tcp/runtime/state.d.ts +50 -0
- package/dist/client/tcp/runtime/state.js +45 -0
- package/dist/client/tcp/transport.d.ts +18 -0
- package/dist/client/tcp/transport.js +158 -0
- package/dist/client/tcp/types/command.d.ts +9 -0
- package/dist/client/tcp/types/command.js +1 -0
- package/dist/client/tcp/types/connection.d.ts +31 -0
- package/dist/client/tcp/types/connection.js +17 -0
- package/dist/client/tcp/types/index.d.ts +5 -0
- package/dist/client/tcp/types/index.js +1 -0
- package/dist/client/tcp/types/socket.d.ts +8 -0
- package/dist/client/tcp/types/socket.js +1 -0
- package/dist/client/tcp/types/tls.d.ts +4 -0
- package/dist/client/tcp/types/tls.js +1 -0
- package/dist/client/tcp/types.d.ts +2 -106
- package/dist/client/tcp/types.js +2 -22
- package/dist/client/types/connection.d.ts +29 -0
- package/dist/client/types/connection.js +1 -0
- package/dist/client/types/dlq.d.ts +45 -0
- package/dist/client/types/dlq.js +1 -0
- package/dist/client/types/events.d.ts +54 -0
- package/dist/client/types/events.js +1 -0
- package/dist/client/types/flow.d.ts +10 -0
- package/dist/client/types/flow.js +1 -0
- package/dist/client/types/index.d.ts +10 -0
- package/dist/client/types/index.js +1 -0
- package/dist/client/types/job.d.ts +127 -0
- package/dist/client/types/job.js +1 -0
- package/dist/client/types/metrics.d.ts +1 -0
- package/dist/client/types/metrics.js +1 -0
- package/dist/client/types/options.d.ts +62 -0
- package/dist/client/types/options.js +1 -0
- package/dist/client/types/worker.d.ts +38 -0
- package/dist/client/types/worker.js +1 -0
- package/dist/client/types.d.ts +2 -583
- package/dist/client/types.js +2 -6
- package/dist/client/worker/ackBatcher.d.ts +1 -1
- package/dist/client/worker/ackBatcher.js +17 -5
- package/dist/client/worker/ackOutcome.d.ts +8 -0
- package/dist/client/worker/ackOutcome.js +58 -0
- package/dist/client/worker/constants.d.ts +7 -0
- package/dist/client/worker/constants.js +7 -0
- package/dist/client/worker/groupConcurrency.js +3 -0
- package/dist/client/worker/handlers/completion.d.ts +28 -0
- package/dist/client/worker/handlers/completion.js +68 -0
- package/dist/client/worker/handlers/dependencies.d.ts +11 -0
- package/dist/client/worker/handlers/dependencies.js +107 -0
- package/dist/client/worker/handlers/mutations.d.ts +23 -0
- package/dist/client/worker/handlers/mutations.js +211 -0
- package/dist/client/worker/handlers/queries.d.ts +15 -0
- package/dist/client/worker/handlers/queries.js +100 -0
- package/dist/client/worker/index.d.ts +2 -2
- package/dist/client/worker/index.js +1 -1
- package/dist/client/worker/jobParser.js +4 -2
- package/dist/client/worker/processor.d.ts +2 -15
- package/dist/client/worker/processor.js +68 -125
- package/dist/client/worker/processorHandlers.d.ts +4 -65
- package/dist/client/worker/processorHandlers.js +4 -400
- package/dist/client/worker/processorOutcome.d.ts +14 -0
- package/dist/client/worker/processorOutcome.js +125 -0
- package/dist/client/worker/runtime/buffer.d.ts +8 -0
- package/dist/client/worker/runtime/buffer.js +50 -0
- package/dist/client/worker/runtime/control.d.ts +26 -0
- package/dist/client/worker/runtime/control.js +175 -0
- package/dist/client/worker/runtime/execution.d.ts +11 -0
- package/dist/client/worker/runtime/execution.js +123 -0
- package/dist/client/worker/runtime/lifecycle.d.ts +7 -0
- package/dist/client/worker/runtime/lifecycle.js +114 -0
- package/dist/client/worker/runtime/manual.d.ts +10 -0
- package/dist/client/worker/runtime/manual.js +137 -0
- package/dist/client/worker/runtime/options.d.ts +5 -0
- package/dist/client/worker/runtime/options.js +39 -0
- package/dist/client/worker/runtime/polling.d.ts +12 -0
- package/dist/client/worker/runtime/polling.js +123 -0
- package/dist/client/worker/runtime/state.d.ts +110 -0
- package/dist/client/worker/runtime/state.js +156 -0
- package/dist/client/worker/types/index.d.ts +5 -0
- package/dist/client/worker/types/index.js +1 -0
- package/dist/client/worker/types/manual.d.ts +7 -0
- package/dist/client/worker/types/manual.js +1 -0
- package/dist/client/worker/types/options.d.ts +24 -0
- package/dist/client/worker/types/options.js +1 -0
- package/dist/client/worker/types/outcome.d.ts +23 -0
- package/dist/client/worker/types/outcome.js +1 -0
- package/dist/client/worker/types/processor.d.ts +22 -0
- package/dist/client/worker/types/processor.js +1 -0
- package/dist/client/worker/types/transport.d.ts +11 -0
- package/dist/client/worker/types/transport.js +1 -0
- package/dist/client/worker/worker.d.ts +3 -160
- package/dist/client/worker/worker.js +3 -904
- package/dist/client/worker/workerRateLimiter.d.ts +5 -1
- package/dist/client/worker/workerRateLimiter.js +40 -20
- package/dist/client/worker.d.ts +1 -0
- package/dist/client/workflow/compensationChild.d.ts +2 -1
- package/dist/client/workflow/compensationChild.js +1 -1
- package/dist/client/workflow/compensationClaim.d.ts +11 -0
- package/dist/client/workflow/compensationClaim.js +30 -0
- package/dist/client/workflow/compensator.d.ts +7 -2
- package/dist/client/workflow/compensator.js +5 -11
- package/dist/client/workflow/recovery.js +25 -2
- package/dist/client/workflow/rollbackControl.js +1 -1
- package/dist/domain/job/constants.d.ts +12 -0
- package/dist/domain/job/constants.js +12 -0
- package/dist/domain/job/create.d.ts +2 -0
- package/dist/domain/job/create.js +103 -0
- package/dist/domain/job/ids.d.ts +5 -0
- package/dist/domain/job/ids.js +12 -0
- package/dist/domain/job/locks.d.ts +4 -0
- package/dist/domain/job/locks.js +23 -0
- package/dist/domain/job/payload.d.ts +18 -0
- package/dist/domain/job/payload.js +43 -0
- package/dist/domain/job/state.d.ts +8 -0
- package/dist/domain/job/state.js +51 -0
- package/dist/domain/job/terminal.d.ts +3 -0
- package/dist/domain/job/terminal.js +9 -0
- package/dist/domain/queue/dlqShard.d.ts +2 -0
- package/dist/domain/queue/dlqShard.js +34 -9
- package/dist/domain/queue/limiterManager.d.ts +11 -0
- package/dist/domain/queue/limiterManager.js +28 -0
- package/dist/domain/queue/priorityQueue.js +3 -39
- package/dist/domain/queue/priorityQueueOrder.d.ts +3 -0
- package/dist/domain/queue/priorityQueueOrder.js +21 -0
- package/dist/domain/queue/shard/dependencies.d.ts +11 -0
- package/dist/domain/queue/shard/dependencies.js +22 -0
- package/dist/domain/queue/shard/dlq.d.ts +25 -0
- package/dist/domain/queue/shard/dlq.js +71 -0
- package/dist/domain/queue/shard/keys.d.ts +18 -0
- package/dist/domain/queue/shard/keys.js +45 -0
- package/dist/domain/queue/shard/lifecycle.d.ts +10 -0
- package/dist/domain/queue/shard/lifecycle.js +43 -0
- package/dist/domain/queue/shard/limits.d.ts +24 -0
- package/dist/domain/queue/shard/limits.js +57 -0
- package/dist/domain/queue/shard/metrics.d.ts +32 -0
- package/dist/domain/queue/shard/metrics.js +72 -0
- package/dist/domain/queue/shard/state.d.ts +34 -0
- package/dist/domain/queue/shard/state.js +80 -0
- package/dist/domain/queue/shard.d.ts +5 -137
- package/dist/domain/queue/shard.js +4 -390
- package/dist/domain/queue/uniqueKeyManager.d.ts +3 -1
- package/dist/domain/queue/uniqueKeyManager.js +9 -1
- package/dist/domain/response/builders.d.ts +15 -0
- package/dist/domain/response/builders.js +39 -0
- package/dist/domain/types/command.d.ts +2 -522
- package/dist/domain/types/command.js +2 -5
- package/dist/domain/types/commands/base.d.ts +5 -0
- package/dist/domain/types/commands/base.js +1 -0
- package/dist/domain/types/commands/core.d.ts +106 -0
- package/dist/domain/types/commands/core.js +1 -0
- package/dist/domain/types/commands/cron.d.ts +36 -0
- package/dist/domain/types/commands/cron.js +1 -0
- package/dist/domain/types/commands/dashboard.d.ts +13 -0
- package/dist/domain/types/commands/dashboard.js +1 -0
- package/dist/domain/types/commands/dlq.d.ts +39 -0
- package/dist/domain/types/commands/dlq.js +1 -0
- package/dist/domain/types/commands/extended.d.ts +63 -0
- package/dist/domain/types/commands/extended.js +1 -0
- package/dist/domain/types/commands/index.d.ts +12 -0
- package/dist/domain/types/commands/index.js +12 -0
- package/dist/domain/types/commands/limits.d.ts +54 -0
- package/dist/domain/types/commands/limits.js +1 -0
- package/dist/domain/types/commands/management.d.ts +73 -0
- package/dist/domain/types/commands/management.js +1 -0
- package/dist/domain/types/commands/monitoring.d.ts +49 -0
- package/dist/domain/types/commands/monitoring.js +1 -0
- package/dist/domain/types/commands/protocol.d.ts +20 -0
- package/dist/domain/types/commands/protocol.js +1 -0
- package/dist/domain/types/commands/query.d.ts +46 -0
- package/dist/domain/types/commands/query.js +1 -0
- package/dist/domain/types/commands/union.d.ts +13 -0
- package/dist/domain/types/commands/union.js +1 -0
- package/dist/domain/types/commands/workers.d.ts +39 -0
- package/dist/domain/types/commands/workers.js +1 -0
- package/dist/domain/types/cron.d.ts +4 -2
- package/dist/domain/types/cron.js +3 -0
- package/dist/domain/types/dlq.d.ts +17 -0
- package/dist/domain/types/dlq.js +70 -14
- package/dist/domain/types/index.d.ts +2 -0
- package/dist/domain/types/index.js +1 -0
- package/dist/domain/types/job.d.ts +8 -269
- package/dist/domain/types/job.js +8 -234
- package/dist/domain/types/jobs/model.d.ts +152 -0
- package/dist/domain/types/jobs/model.js +1 -0
- package/dist/domain/types/metrics.d.ts +16 -0
- package/dist/domain/types/metrics.js +1 -0
- package/dist/domain/types/priorityQueue.d.ts +12 -0
- package/dist/domain/types/priorityQueue.js +1 -0
- package/dist/domain/types/protocol.d.ts +5 -0
- package/dist/domain/types/protocol.js +4 -0
- package/dist/domain/types/queue.d.ts +7 -0
- package/dist/domain/types/queue.js +13 -0
- package/dist/domain/types/response.d.ts +3 -192
- package/dist/domain/types/response.js +3 -101
- package/dist/domain/types/responses/model.d.ts +152 -0
- package/dist/domain/types/responses/model.js +1 -0
- package/dist/domain/types/shard.d.ts +4 -0
- package/dist/domain/types/shard.js +1 -0
- package/dist/infrastructure/cloud/cloudAgent.js +6 -0
- package/dist/infrastructure/cloud/commandHandler.d.ts +2 -41
- package/dist/infrastructure/cloud/commandHandler.js +1 -1
- package/dist/infrastructure/cloud/commands/integrations.d.ts +2 -0
- package/dist/infrastructure/cloud/commands/integrations.js +31 -0
- package/dist/infrastructure/cloud/commands/jobMapper.d.ts +56 -0
- package/dist/infrastructure/cloud/commands/jobMapper.js +72 -0
- package/dist/infrastructure/cloud/commands/jobs.d.ts +2 -0
- package/dist/infrastructure/cloud/commands/jobs.js +111 -0
- package/dist/infrastructure/cloud/commands/queues.d.ts +2 -0
- package/dist/infrastructure/cloud/commands/queues.js +126 -0
- package/dist/infrastructure/cloud/commands.d.ts +3 -10
- package/dist/infrastructure/cloud/commands.js +7 -344
- package/dist/infrastructure/cloud/snapshot/analytics.d.ts +16 -0
- package/dist/infrastructure/cloud/snapshot/analytics.js +132 -0
- package/dist/infrastructure/cloud/snapshot/collector.d.ts +24 -0
- package/dist/infrastructure/cloud/snapshot/collector.js +105 -0
- package/dist/infrastructure/cloud/snapshot/config.d.ts +5 -0
- package/dist/infrastructure/cloud/snapshot/config.js +86 -0
- package/dist/infrastructure/cloud/snapshot/jobs.d.ts +5 -0
- package/dist/infrastructure/cloud/snapshot/jobs.js +148 -0
- package/dist/infrastructure/cloud/snapshot/stalls.d.ts +3 -0
- package/dist/infrastructure/cloud/snapshot/stalls.js +34 -0
- package/dist/infrastructure/cloud/snapshotCollector.d.ts +2 -53
- package/dist/infrastructure/cloud/snapshotCollector.js +5 -107
- package/dist/infrastructure/cloud/snapshotHelpers.d.ts +5 -45
- package/dist/infrastructure/cloud/snapshotHelpers.js +4 -426
- package/dist/infrastructure/cloud/types/collector.d.ts +54 -0
- package/dist/infrastructure/cloud/types/collector.js +1 -0
- package/dist/infrastructure/cloud/types/command.d.ts +44 -0
- package/dist/infrastructure/cloud/types/command.js +1 -0
- package/dist/infrastructure/cloud/types/config.d.ts +18 -0
- package/dist/infrastructure/cloud/types/config.js +1 -0
- package/dist/infrastructure/cloud/types/event.d.ts +14 -0
- package/dist/infrastructure/cloud/types/event.js +1 -0
- package/dist/infrastructure/cloud/types/redact.d.ts +4 -0
- package/dist/infrastructure/cloud/types/redact.js +1 -0
- package/dist/infrastructure/cloud/types/snapshot.d.ts +52 -0
- package/dist/infrastructure/cloud/types/snapshot.js +1 -0
- package/dist/infrastructure/cloud/types/snapshotCore.d.ts +125 -0
- package/dist/infrastructure/cloud/types/snapshotCore.js +1 -0
- package/dist/infrastructure/cloud/types/snapshotJobs.d.ts +124 -0
- package/dist/infrastructure/cloud/types/snapshotJobs.js +1 -0
- package/dist/infrastructure/cloud/types/snapshotTelemetry.d.ts +100 -0
- package/dist/infrastructure/cloud/types/snapshotTelemetry.js +1 -0
- package/dist/infrastructure/cloud/types.d.ts +3 -445
- package/dist/infrastructure/cloud/types.js +0 -4
- package/dist/infrastructure/persistence/batchInsert.d.ts +13 -0
- package/dist/infrastructure/persistence/batchInsert.js +96 -0
- package/dist/infrastructure/persistence/jobOptionsBlob.d.ts +18 -0
- package/dist/infrastructure/persistence/jobOptionsBlob.js +56 -0
- package/dist/infrastructure/persistence/legacyNameMigration.d.ts +5 -0
- package/dist/infrastructure/persistence/legacyNameMigration.js +42 -0
- package/dist/infrastructure/persistence/migrations.d.ts +3 -0
- package/dist/infrastructure/persistence/migrations.js +120 -0
- package/dist/infrastructure/persistence/schema.d.ts +3 -5
- package/dist/infrastructure/persistence/schema.js +40 -136
- package/dist/infrastructure/persistence/sqlite/admission.d.ts +9 -0
- package/dist/infrastructure/persistence/sqlite/admission.js +34 -0
- package/dist/infrastructure/persistence/sqlite/control.d.ts +32 -0
- package/dist/infrastructure/persistence/sqlite/control.js +90 -0
- package/dist/infrastructure/persistence/sqlite/flows.d.ts +26 -0
- package/dist/infrastructure/persistence/sqlite/flows.js +167 -0
- package/dist/infrastructure/persistence/sqlite/jobs.d.ts +23 -0
- package/dist/infrastructure/persistence/sqlite/jobs.js +166 -0
- package/dist/infrastructure/persistence/sqlite/lifecycle.d.ts +6 -0
- package/dist/infrastructure/persistence/sqlite/lifecycle.js +30 -0
- package/dist/infrastructure/persistence/sqlite/mutations.d.ts +20 -0
- package/dist/infrastructure/persistence/sqlite/mutations.js +149 -0
- package/dist/infrastructure/persistence/sqlite/queries.d.ts +23 -0
- package/dist/infrastructure/persistence/sqlite/queries.js +89 -0
- package/dist/infrastructure/persistence/sqlite/records.d.ts +24 -0
- package/dist/infrastructure/persistence/sqlite/records.js +115 -0
- package/dist/infrastructure/persistence/sqlite/state.d.ts +36 -0
- package/dist/infrastructure/persistence/sqlite/state.js +207 -0
- package/dist/infrastructure/persistence/sqlite/telemetry.d.ts +16 -0
- package/dist/infrastructure/persistence/sqlite/telemetry.js +126 -0
- package/dist/infrastructure/persistence/sqlite.d.ts +5 -276
- package/dist/infrastructure/persistence/sqlite.js +3 -997
- package/dist/infrastructure/persistence/sqliteBatch.d.ts +4 -121
- package/dist/infrastructure/persistence/sqliteBatch.js +3 -422
- package/dist/infrastructure/persistence/sqliteSerializer.d.ts +6 -1
- package/dist/infrastructure/persistence/sqliteSerializer.js +33 -11
- package/dist/infrastructure/persistence/statements.d.ts +5 -1
- package/dist/infrastructure/persistence/statements.js +14 -9
- package/dist/infrastructure/persistence/types/admission.d.ts +8 -0
- package/dist/infrastructure/persistence/types/admission.js +1 -0
- package/dist/infrastructure/persistence/types/batch.d.ts +12 -0
- package/dist/infrastructure/persistence/types/batch.js +1 -0
- package/dist/infrastructure/persistence/types/sqlite.d.ts +17 -0
- package/dist/infrastructure/persistence/types/sqlite.js +1 -0
- package/dist/infrastructure/persistence/writeBuffer.d.ts +38 -0
- package/dist/infrastructure/persistence/writeBuffer.js +221 -0
- package/dist/infrastructure/scheduler/cron/execution.d.ts +12 -0
- package/dist/infrastructure/scheduler/cron/execution.js +150 -0
- package/dist/infrastructure/scheduler/cron/runtime.d.ts +31 -0
- package/dist/infrastructure/scheduler/cron/runtime.js +143 -0
- package/dist/infrastructure/scheduler/cronScheduler.d.ts +4 -117
- package/dist/infrastructure/scheduler/cronScheduler.js +3 -436
- package/dist/infrastructure/scheduler/types/cronScheduler.d.ts +16 -0
- package/dist/infrastructure/scheduler/types/cronScheduler.js +1 -0
- package/dist/infrastructure/server/bootstrap.js +3 -0
- package/dist/infrastructure/server/handler-routes/control.d.ts +8 -0
- package/dist/infrastructure/server/handler-routes/control.js +82 -0
- package/dist/infrastructure/server/handler-routes/jobs.d.ts +6 -0
- package/dist/infrastructure/server/handler-routes/jobs.js +110 -0
- package/dist/infrastructure/server/handler-routes/monitoring.d.ts +5 -0
- package/dist/infrastructure/server/handler-routes/monitoring.js +65 -0
- package/dist/infrastructure/server/handlerRoutes.d.ts +3 -26
- package/dist/infrastructure/server/handlerRoutes.js +3 -257
- package/dist/infrastructure/server/handlers/advanced/configNumbers.d.ts +2 -0
- package/dist/infrastructure/server/handlers/advanced/configNumbers.js +26 -0
- package/dist/infrastructure/server/handlers/advanced/dependencies.d.ts +15 -0
- package/dist/infrastructure/server/handlers/advanced/dependencies.js +38 -0
- package/dist/infrastructure/server/handlers/advanced/jobs.d.ts +33 -0
- package/dist/infrastructure/server/handlers/advanced/jobs.js +136 -0
- package/dist/infrastructure/server/handlers/advanced/queue.d.ts +42 -0
- package/dist/infrastructure/server/handlers/advanced/queue.js +111 -0
- package/dist/infrastructure/server/handlers/advanced.d.ts +3 -121
- package/dist/infrastructure/server/handlers/advanced.js +3 -336
- package/dist/infrastructure/server/handlers/core.d.ts +1 -4
- package/dist/infrastructure/server/handlers/core.js +37 -20
- package/dist/infrastructure/server/handlers/cron.js +9 -1
- package/dist/infrastructure/server/handlers/dlq.d.ts +3 -0
- package/dist/infrastructure/server/handlers/dlq.js +18 -4
- package/dist/infrastructure/server/handlers/flow.js +6 -1
- package/dist/infrastructure/server/handlers/introspection.d.ts +19 -0
- package/dist/infrastructure/server/handlers/introspection.js +21 -0
- package/dist/infrastructure/server/handlers/management.d.ts +8 -0
- package/dist/infrastructure/server/handlers/management.js +30 -0
- package/dist/infrastructure/server/handlers/monitoring/health.d.ts +13 -0
- package/dist/infrastructure/server/handlers/monitoring/health.js +61 -0
- package/dist/infrastructure/server/handlers/monitoring/operations.d.ts +8 -0
- package/dist/infrastructure/server/handlers/monitoring/operations.js +28 -0
- package/dist/infrastructure/server/handlers/monitoring/webhooks.d.ts +7 -0
- package/dist/infrastructure/server/handlers/monitoring/webhooks.js +56 -0
- package/dist/infrastructure/server/handlers/monitoring/workers.d.ts +6 -0
- package/dist/infrastructure/server/handlers/monitoring/workers.js +57 -0
- package/dist/infrastructure/server/handlers/monitoring.d.ts +4 -30
- package/dist/infrastructure/server/handlers/monitoring.js +4 -222
- package/dist/infrastructure/server/handlers/pushBatchValidation.d.ts +1 -1
- package/dist/infrastructure/server/handlers/pushBatchValidation.js +7 -0
- package/dist/infrastructure/server/handlers/query.js +13 -4
- package/dist/infrastructure/server/http-routes/jobAdvanced.d.ts +2 -0
- package/dist/infrastructure/server/http-routes/jobAdvanced.js +106 -0
- package/dist/infrastructure/server/http-routes/jobManagement.d.ts +2 -0
- package/dist/infrastructure/server/http-routes/jobManagement.js +74 -0
- package/dist/infrastructure/server/http-routes/queueJobs.d.ts +2 -0
- package/dist/infrastructure/server/http-routes/queueJobs.js +108 -0
- package/dist/infrastructure/server/httpRouteJobs.d.ts +1 -8
- package/dist/infrastructure/server/httpRouteJobs.js +33 -222
- package/dist/infrastructure/server/httpRouteQueues.d.ts +1 -6
- package/dist/infrastructure/server/httpRouteQueues.js +51 -217
- package/dist/infrastructure/server/httpRouteResources.js +1 -0
- package/dist/infrastructure/server/protocol/commands.d.ts +8 -0
- package/dist/infrastructure/server/protocol/commands.js +31 -0
- package/dist/infrastructure/server/protocol/frameParser.d.ts +16 -0
- package/dist/infrastructure/server/protocol/frameParser.js +65 -0
- package/dist/infrastructure/server/protocol/lineBuffer.d.ts +6 -0
- package/dist/infrastructure/server/protocol/lineBuffer.js +21 -0
- package/dist/infrastructure/server/protocol/validation.d.ts +9 -0
- package/dist/infrastructure/server/protocol/validation.js +75 -0
- package/dist/infrastructure/server/protocol.d.ts +5 -77
- package/dist/infrastructure/server/protocol.js +4 -265
- package/dist/infrastructure/server/rateLimiter.js +1 -0
- package/dist/infrastructure/server/socketWriteQueue.d.ts +1 -1
- package/dist/infrastructure/server/socketWriteQueue.js +8 -5
- package/dist/infrastructure/server/sse/constants.d.ts +5 -0
- package/dist/infrastructure/server/sse/constants.js +5 -0
- package/dist/infrastructure/server/sse/eventBuffer.d.ts +3 -0
- package/dist/infrastructure/server/sse/eventBuffer.js +21 -0
- package/dist/infrastructure/server/sseHandler.d.ts +2 -6
- package/dist/infrastructure/server/sseHandler.js +20 -96
- package/dist/infrastructure/server/tcp/clientRelease.d.ts +2 -0
- package/dist/infrastructure/server/tcp/clientRelease.js +18 -0
- package/dist/infrastructure/server/tcp/connections.d.ts +24 -0
- package/dist/infrastructure/server/tcp/connections.js +162 -0
- package/dist/infrastructure/server/tcp/constants.d.ts +3 -0
- package/dist/infrastructure/server/tcp/constants.js +3 -0
- package/dist/infrastructure/server/tcp/eventSubscriptions.d.ts +10 -0
- package/dist/infrastructure/server/tcp/eventSubscriptions.js +17 -0
- package/dist/infrastructure/server/tcp/responses.d.ts +3 -0
- package/dist/infrastructure/server/tcp/responses.js +8 -0
- package/dist/infrastructure/server/tcp.d.ts +10 -68
- package/dist/infrastructure/server/tcp.js +47 -256
- package/dist/infrastructure/server/types/protocol.d.ts +4 -0
- package/dist/infrastructure/server/types/protocol.js +1 -0
- package/dist/infrastructure/server/types/sse.d.ts +11 -0
- package/dist/infrastructure/server/types/sse.js +1 -0
- package/dist/infrastructure/server/types/tcpServer.d.ts +25 -0
- package/dist/infrastructure/server/types/tcpServer.js +1 -0
- package/dist/infrastructure/server/types/ws.d.ts +6 -0
- package/dist/infrastructure/server/types/ws.js +1 -0
- package/dist/infrastructure/server/ws/constants.d.ts +6 -0
- package/dist/infrastructure/server/ws/constants.js +130 -0
- package/dist/infrastructure/server/ws/snapshots.d.ts +4 -0
- package/dist/infrastructure/server/ws/snapshots.js +52 -0
- package/dist/infrastructure/server/ws/subscriptions.d.ts +10 -0
- package/dist/infrastructure/server/ws/subscriptions.js +39 -0
- package/dist/infrastructure/server/wsHandler.d.ts +2 -10
- package/dist/infrastructure/server/wsHandler.js +12 -237
- package/dist/mcp/adapter.d.ts +5 -403
- package/dist/mcp/adapter.js +6 -778
- package/dist/mcp/backend/embedded/base.d.ts +7 -0
- package/dist/mcp/backend/embedded/base.js +15 -0
- package/dist/mcp/backend/embedded/index.d.ts +14 -0
- package/dist/mcp/backend/embedded/index.js +22 -0
- package/dist/mcp/backend/embedded/jobs.d.ts +44 -0
- package/dist/mcp/backend/embedded/jobs.js +98 -0
- package/dist/mcp/backend/embedded/queues.d.ts +27 -0
- package/dist/mcp/backend/embedded/queues.js +84 -0
- package/dist/mcp/backend/embedded/services.d.ts +29 -0
- package/dist/mcp/backend/embedded/services.js +107 -0
- package/dist/mcp/backend/serializers.d.ts +7 -0
- package/dist/mcp/backend/serializers.js +32 -0
- package/dist/mcp/backend/tcp/base.d.ts +19 -0
- package/dist/mcp/backend/tcp/base.js +54 -0
- package/dist/mcp/backend/tcp/index.d.ts +14 -0
- package/dist/mcp/backend/tcp/index.js +20 -0
- package/dist/mcp/backend/tcp/jobs.d.ts +44 -0
- package/dist/mcp/backend/tcp/jobs.js +122 -0
- package/dist/mcp/backend/tcp/queues.d.ts +27 -0
- package/dist/mcp/backend/tcp/queues.js +89 -0
- package/dist/mcp/backend/tcp/services.d.ts +30 -0
- package/dist/mcp/backend/tcp/services.js +161 -0
- package/dist/mcp/types/adapter.d.ts +176 -0
- package/dist/mcp/types/adapter.js +1 -0
- package/dist/shared/asyncLock.d.ts +13 -0
- package/dist/shared/asyncLock.js +65 -0
- package/dist/shared/lock.d.ts +10 -72
- package/dist/shared/lock.js +7 -231
- package/dist/shared/lockError.d.ts +3 -0
- package/dist/shared/lockError.js +6 -0
- package/dist/shared/lockTimeout.d.ts +2 -0
- package/dist/shared/lockTimeout.js +2 -0
- package/dist/shared/rwLock.d.ts +22 -0
- package/dist/shared/rwLock.js +124 -0
- package/dist/shared/serialization.js +1 -0
- package/dist/shared/skipList.d.ts +0 -5
- package/dist/shared/skipList.js +10 -57
- package/dist/shared/skipListNodes.d.ts +6 -0
- package/dist/shared/skipListNodes.js +43 -0
- package/dist/shared/types/lock.d.ts +7 -0
- package/dist/shared/types/lock.js +1 -0
- package/dist/shared/types/skipList.d.ts +4 -0
- package/dist/shared/types/skipList.js +1 -0
- package/package.json +2 -1
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
import * as response from '../../../../domain/types/response';
|
|
2
|
+
import { sanitizeConfigNumbers, toFiniteNumber } from './configNumbers';
|
|
3
|
+
export function handleIsPaused(command, context, requestId) {
|
|
4
|
+
return {
|
|
5
|
+
ok: true,
|
|
6
|
+
paused: context.queueManager.isPaused(command.queue),
|
|
7
|
+
reqId: requestId,
|
|
8
|
+
};
|
|
9
|
+
}
|
|
10
|
+
export function handleObliterate(command, context, requestId) {
|
|
11
|
+
context.queueManager.obliterate(command.queue);
|
|
12
|
+
return response.ok(undefined, requestId);
|
|
13
|
+
}
|
|
14
|
+
export function handleListQueues(_command, context, requestId) {
|
|
15
|
+
return {
|
|
16
|
+
ok: true,
|
|
17
|
+
queues: context.queueManager.listQueues(),
|
|
18
|
+
reqId: requestId,
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
export function handleClean(command, context, requestId) {
|
|
22
|
+
const ids = context.queueManager.clean(command.queue, command.grace, command.state, command.limit);
|
|
23
|
+
if (ids.length > 0) {
|
|
24
|
+
context.queueManager.emitDashboardEvent('queue:cleaned', {
|
|
25
|
+
queue: command.queue,
|
|
26
|
+
state: command.state,
|
|
27
|
+
count: ids.length,
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
return { ok: true, count: ids.length, ids, reqId: requestId };
|
|
31
|
+
}
|
|
32
|
+
export function handleCount(command, context, requestId) {
|
|
33
|
+
return { ok: true, count: context.queueManager.count(command.queue), reqId: requestId };
|
|
34
|
+
}
|
|
35
|
+
export function handleRateLimit(command, context, requestId) {
|
|
36
|
+
const limit = toFiniteNumber(command.limit);
|
|
37
|
+
if (limit === undefined)
|
|
38
|
+
return response.error('limit must be a finite number', requestId);
|
|
39
|
+
const duration = toFiniteNumber(command.duration);
|
|
40
|
+
const ttl = toFiniteNumber(command.ttl);
|
|
41
|
+
context.queueManager.setRateLimit(command.queue, limit, duration, ttl);
|
|
42
|
+
context.queueManager.emitDashboardEvent('ratelimit:set', {
|
|
43
|
+
queue: command.queue,
|
|
44
|
+
max: limit,
|
|
45
|
+
...(duration !== undefined && { duration }),
|
|
46
|
+
...(ttl !== undefined && { ttl }),
|
|
47
|
+
});
|
|
48
|
+
return response.ok(undefined, requestId);
|
|
49
|
+
}
|
|
50
|
+
export function handleRateLimitClear(command, context, requestId) {
|
|
51
|
+
context.queueManager.clearRateLimit(command.queue);
|
|
52
|
+
context.queueManager.emitDashboardEvent('ratelimit:cleared', { queue: command.queue });
|
|
53
|
+
return response.ok(undefined, requestId);
|
|
54
|
+
}
|
|
55
|
+
export function handleSetConcurrency(command, context, requestId) {
|
|
56
|
+
const limit = toFiniteNumber(command.limit);
|
|
57
|
+
if (limit === undefined)
|
|
58
|
+
return response.error('limit must be a finite number', requestId);
|
|
59
|
+
context.queueManager.setConcurrency(command.queue, limit);
|
|
60
|
+
context.queueManager.emitDashboardEvent('concurrency:set', {
|
|
61
|
+
queue: command.queue,
|
|
62
|
+
concurrency: limit,
|
|
63
|
+
});
|
|
64
|
+
return response.ok(undefined, requestId);
|
|
65
|
+
}
|
|
66
|
+
export function handleClearConcurrency(command, context, requestId) {
|
|
67
|
+
context.queueManager.clearConcurrency(command.queue);
|
|
68
|
+
context.queueManager.emitDashboardEvent('concurrency:cleared', { queue: command.queue });
|
|
69
|
+
return response.ok(undefined, requestId);
|
|
70
|
+
}
|
|
71
|
+
export function handleSetStallConfig(command, context, requestId) {
|
|
72
|
+
const config = sanitizeConfigNumbers(command.config, [
|
|
73
|
+
'stallInterval',
|
|
74
|
+
'maxStalls',
|
|
75
|
+
'gracePeriod',
|
|
76
|
+
]);
|
|
77
|
+
context.queueManager.setStallConfig(command.queue, config);
|
|
78
|
+
context.queueManager.emitDashboardEvent('config:stall-changed', {
|
|
79
|
+
queue: command.queue,
|
|
80
|
+
config,
|
|
81
|
+
});
|
|
82
|
+
return response.ok(undefined, requestId);
|
|
83
|
+
}
|
|
84
|
+
export function handleGetStallConfig(command, context, requestId) {
|
|
85
|
+
return {
|
|
86
|
+
ok: true,
|
|
87
|
+
config: context.queueManager.getStallConfig(command.queue),
|
|
88
|
+
reqId: requestId,
|
|
89
|
+
};
|
|
90
|
+
}
|
|
91
|
+
export function handleSetDlqConfig(command, context, requestId) {
|
|
92
|
+
const config = sanitizeConfigNumbers(command.config, [
|
|
93
|
+
'autoRetryInterval',
|
|
94
|
+
'maxAutoRetries',
|
|
95
|
+
'maxAge',
|
|
96
|
+
'maxEntries',
|
|
97
|
+
]);
|
|
98
|
+
context.queueManager.setDlqConfig(command.queue, config);
|
|
99
|
+
context.queueManager.emitDashboardEvent('config:dlq-changed', {
|
|
100
|
+
queue: command.queue,
|
|
101
|
+
config,
|
|
102
|
+
});
|
|
103
|
+
return response.ok(undefined, requestId);
|
|
104
|
+
}
|
|
105
|
+
export function handleGetDlqConfig(command, context, requestId) {
|
|
106
|
+
return {
|
|
107
|
+
ok: true,
|
|
108
|
+
config: context.queueManager.getDlqConfig(command.queue),
|
|
109
|
+
reqId: requestId,
|
|
110
|
+
};
|
|
111
|
+
}
|
|
@@ -1,121 +1,3 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
*/
|
|
5
|
-
import type { Command } from '../../../domain/types/command';
|
|
6
|
-
import type { Response } from '../../../domain/types/response';
|
|
7
|
-
import type { HandlerContext } from '../types';
|
|
8
|
-
/** Handle Update command - update job data */
|
|
9
|
-
export declare function handleUpdate(cmd: Extract<Command, {
|
|
10
|
-
cmd: 'Update';
|
|
11
|
-
}>, ctx: HandlerContext, reqId?: string): Promise<Response>;
|
|
12
|
-
/** Handle ChangePriority command */
|
|
13
|
-
export declare function handleChangePriority(cmd: Extract<Command, {
|
|
14
|
-
cmd: 'ChangePriority';
|
|
15
|
-
}>, ctx: HandlerContext, reqId?: string): Promise<Response>;
|
|
16
|
-
/** Handle Promote command - move delayed to waiting */
|
|
17
|
-
export declare function handlePromote(cmd: Extract<Command, {
|
|
18
|
-
cmd: 'Promote';
|
|
19
|
-
}>, ctx: HandlerContext, reqId?: string): Promise<Response>;
|
|
20
|
-
/** Handle UpdateParent command - update child's parent reference */
|
|
21
|
-
export declare function handleUpdateParent(cmd: Extract<Command, {
|
|
22
|
-
cmd: 'UpdateParent';
|
|
23
|
-
}>, ctx: HandlerContext, reqId?: string): Promise<Response>;
|
|
24
|
-
/** Handle MoveToDelayed command */
|
|
25
|
-
export declare function handleMoveToDelayed(cmd: Extract<Command, {
|
|
26
|
-
cmd: 'MoveToDelayed';
|
|
27
|
-
}>, ctx: HandlerContext, reqId?: string): Promise<Response>;
|
|
28
|
-
/** Handle Discard command - move to DLQ */
|
|
29
|
-
export declare function handleDiscard(cmd: Extract<Command, {
|
|
30
|
-
cmd: 'Discard';
|
|
31
|
-
}>, ctx: HandlerContext, reqId?: string): Promise<Response>;
|
|
32
|
-
/** Handle WaitJob command - wait for job completion (event-driven, no polling) */
|
|
33
|
-
export declare function handleWaitJob(cmd: Extract<Command, {
|
|
34
|
-
cmd: 'WaitJob';
|
|
35
|
-
}>, ctx: HandlerContext, reqId?: string): Promise<Response>;
|
|
36
|
-
/** Handle IsPaused command */
|
|
37
|
-
export declare function handleIsPaused(cmd: Extract<Command, {
|
|
38
|
-
cmd: 'IsPaused';
|
|
39
|
-
}>, ctx: HandlerContext, reqId?: string): Response;
|
|
40
|
-
/** Handle Obliterate command */
|
|
41
|
-
export declare function handleObliterate(cmd: Extract<Command, {
|
|
42
|
-
cmd: 'Obliterate';
|
|
43
|
-
}>, ctx: HandlerContext, reqId?: string): Response;
|
|
44
|
-
/** Handle ListQueues command */
|
|
45
|
-
export declare function handleListQueues(_cmd: Extract<Command, {
|
|
46
|
-
cmd: 'ListQueues';
|
|
47
|
-
}>, ctx: HandlerContext, reqId?: string): Response;
|
|
48
|
-
/** Handle Clean command */
|
|
49
|
-
export declare function handleClean(cmd: Extract<Command, {
|
|
50
|
-
cmd: 'Clean';
|
|
51
|
-
}>, ctx: HandlerContext, reqId?: string): Response;
|
|
52
|
-
/** Handle Count command */
|
|
53
|
-
export declare function handleCount(cmd: Extract<Command, {
|
|
54
|
-
cmd: 'Count';
|
|
55
|
-
}>, ctx: HandlerContext, reqId?: string): Response;
|
|
56
|
-
/** Handle RateLimit command */
|
|
57
|
-
export declare function handleRateLimit(cmd: Extract<Command, {
|
|
58
|
-
cmd: 'RateLimit';
|
|
59
|
-
}>, ctx: HandlerContext, reqId?: string): Response;
|
|
60
|
-
/** Handle RateLimitClear command */
|
|
61
|
-
export declare function handleRateLimitClear(cmd: Extract<Command, {
|
|
62
|
-
cmd: 'RateLimitClear';
|
|
63
|
-
}>, ctx: HandlerContext, reqId?: string): Response;
|
|
64
|
-
/** Handle SetConcurrency command */
|
|
65
|
-
export declare function handleSetConcurrency(cmd: Extract<Command, {
|
|
66
|
-
cmd: 'SetConcurrency';
|
|
67
|
-
}>, ctx: HandlerContext, reqId?: string): Response;
|
|
68
|
-
/** Handle ClearConcurrency command */
|
|
69
|
-
export declare function handleClearConcurrency(cmd: Extract<Command, {
|
|
70
|
-
cmd: 'ClearConcurrency';
|
|
71
|
-
}>, ctx: HandlerContext, reqId?: string): Response;
|
|
72
|
-
/** Handle SetStallConfig command */
|
|
73
|
-
export declare function handleSetStallConfig(cmd: Extract<Command, {
|
|
74
|
-
cmd: 'SetStallConfig';
|
|
75
|
-
}>, ctx: HandlerContext, reqId?: string): Response;
|
|
76
|
-
/** Handle GetStallConfig command */
|
|
77
|
-
export declare function handleGetStallConfig(cmd: Extract<Command, {
|
|
78
|
-
cmd: 'GetStallConfig';
|
|
79
|
-
}>, ctx: HandlerContext, reqId?: string): Response;
|
|
80
|
-
/** Handle SetDlqConfig command */
|
|
81
|
-
export declare function handleSetDlqConfig(cmd: Extract<Command, {
|
|
82
|
-
cmd: 'SetDlqConfig';
|
|
83
|
-
}>, ctx: HandlerContext, reqId?: string): Response;
|
|
84
|
-
/** Handle GetDlqConfig command */
|
|
85
|
-
export declare function handleGetDlqConfig(cmd: Extract<Command, {
|
|
86
|
-
cmd: 'GetDlqConfig';
|
|
87
|
-
}>, ctx: HandlerContext, reqId?: string): Response;
|
|
88
|
-
/** Handle ChangeDelay command - change delay for a delayed/active job */
|
|
89
|
-
export declare function handleChangeDelay(cmd: Extract<Command, {
|
|
90
|
-
cmd: 'ChangeDelay';
|
|
91
|
-
}>, ctx: HandlerContext, reqId?: string): Promise<Response>;
|
|
92
|
-
/** Handle MoveToWait command - move a job back to waiting.
|
|
93
|
-
* Dispatch by state to match embedded branching in jobMove.ts.
|
|
94
|
-
* - active -> moveActiveToWait
|
|
95
|
-
* - delayed -> promote
|
|
96
|
-
* - failed -> retryDlq
|
|
97
|
-
* - waiting / prioritized -> already there, no-op success
|
|
98
|
-
*/
|
|
99
|
-
export declare function handleMoveToWait(cmd: Extract<Command, {
|
|
100
|
-
cmd: 'MoveToWait';
|
|
101
|
-
}>, ctx: HandlerContext, reqId?: string): Promise<Response>;
|
|
102
|
-
/** Handle PromoteJobs command - promote all delayed jobs in a queue */
|
|
103
|
-
export declare function handlePromoteJobs(cmd: Extract<Command, {
|
|
104
|
-
cmd: 'PromoteJobs';
|
|
105
|
-
}>, ctx: HandlerContext, reqId?: string): Promise<Response>;
|
|
106
|
-
/** Handle GetFailedChildrenValues command */
|
|
107
|
-
export declare function handleGetFailedChildrenValues(cmd: Extract<Command, {
|
|
108
|
-
cmd: 'GetFailedChildrenValues';
|
|
109
|
-
}>, ctx: HandlerContext, reqId?: string): Promise<Response>;
|
|
110
|
-
/** Handle GetIgnoredChildrenFailures command */
|
|
111
|
-
export declare function handleGetIgnoredChildrenFailures(cmd: Extract<Command, {
|
|
112
|
-
cmd: 'GetIgnoredChildrenFailures';
|
|
113
|
-
}>, ctx: HandlerContext, reqId?: string): Promise<Response>;
|
|
114
|
-
/** Handle RemoveChildDependency command */
|
|
115
|
-
export declare function handleRemoveChildDependency(cmd: Extract<Command, {
|
|
116
|
-
cmd: 'RemoveChildDependency';
|
|
117
|
-
}>, ctx: HandlerContext, reqId?: string): Promise<Response>;
|
|
118
|
-
/** Handle RemoveUnprocessedChildren command */
|
|
119
|
-
export declare function handleRemoveUnprocessedChildren(cmd: Extract<Command, {
|
|
120
|
-
cmd: 'RemoveUnprocessedChildren';
|
|
121
|
-
}>, ctx: HandlerContext, reqId?: string): Promise<Response>;
|
|
1
|
+
export { handleGetFailedChildrenValues, handleGetIgnoredChildrenFailures, handleRemoveChildDependency, handleRemoveUnprocessedChildren, } from './advanced/dependencies';
|
|
2
|
+
export { handleChangeDelay, handleChangePriority, handleDiscard, handleMoveToDelayed, handleMoveToWait, handlePromote, handlePromoteJobs, handleUpdate, handleUpdateParent, handleWaitJob, } from './advanced/jobs';
|
|
3
|
+
export { handleClean, handleClearConcurrency, handleCount, handleGetDlqConfig, handleGetStallConfig, handleIsPaused, handleListQueues, handleObliterate, handleRateLimit, handleRateLimitClear, handleSetConcurrency, handleSetDlqConfig, handleSetStallConfig, } from './advanced/queue';
|
|
@@ -1,336 +1,3 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
*/
|
|
5
|
-
import * as resp from '../../../domain/types/response';
|
|
6
|
-
import { jobId } from '../../../domain/types/job';
|
|
7
|
-
import { validateNumericField } from '../protocol';
|
|
8
|
-
/**
|
|
9
|
-
* Coerce a value to a finite number, or return undefined if it can't be.
|
|
10
|
-
* Guards config endpoints against non-numeric input (e.g. `"abc"`) that would
|
|
11
|
-
* otherwise reach numeric comparisons as NaN and silently break behaviour
|
|
12
|
-
* (a string `stallInterval` disabled stall detection entirely).
|
|
13
|
-
*/
|
|
14
|
-
function toFiniteNumber(value) {
|
|
15
|
-
if (value === undefined || value === null)
|
|
16
|
-
return undefined;
|
|
17
|
-
const n = typeof value === 'number' ? value : Number(value);
|
|
18
|
-
return Number.isFinite(n) ? n : undefined;
|
|
19
|
-
}
|
|
20
|
-
/**
|
|
21
|
-
* Sanitize the numeric fields of a config object: coerce numeric strings, drop
|
|
22
|
-
* non-numeric garbage (so the manager's merge keeps the existing/default value
|
|
23
|
-
* instead of storing NaN). Booleans and unknown keys pass through untouched.
|
|
24
|
-
*/
|
|
25
|
-
function sanitizeConfigNumbers(config, numericKeys) {
|
|
26
|
-
if (!config || typeof config !== 'object')
|
|
27
|
-
return config;
|
|
28
|
-
const numeric = new Set(numericKeys);
|
|
29
|
-
const out = {};
|
|
30
|
-
for (const [key, value] of Object.entries(config)) {
|
|
31
|
-
if (!numeric.has(key)) {
|
|
32
|
-
out[key] = value; // booleans / unknown keys pass through untouched
|
|
33
|
-
continue;
|
|
34
|
-
}
|
|
35
|
-
if (value === null) {
|
|
36
|
-
out[key] = null; // valid for nullable fields (e.g. dlq maxAge)
|
|
37
|
-
continue;
|
|
38
|
-
}
|
|
39
|
-
const n = toFiniteNumber(value);
|
|
40
|
-
// coerce numeric strings; omit non-numeric garbage so the manager's merge
|
|
41
|
-
// keeps the existing/default value instead of storing NaN
|
|
42
|
-
if (n !== undefined)
|
|
43
|
-
out[key] = n;
|
|
44
|
-
}
|
|
45
|
-
return out;
|
|
46
|
-
}
|
|
47
|
-
// ============ Job Management ============
|
|
48
|
-
/** Handle Update command - update job data */
|
|
49
|
-
export async function handleUpdate(cmd, ctx, reqId) {
|
|
50
|
-
const success = await ctx.queueManager.updateJobData(jobId(cmd.id), cmd.data);
|
|
51
|
-
if (success)
|
|
52
|
-
ctx.queueManager.emitDashboardEvent('job:data-updated', { jobId: cmd.id });
|
|
53
|
-
return success
|
|
54
|
-
? resp.ok(undefined, reqId)
|
|
55
|
-
: resp.error('Job not found or cannot be updated', reqId);
|
|
56
|
-
}
|
|
57
|
-
/** Handle ChangePriority command */
|
|
58
|
-
export async function handleChangePriority(cmd, ctx, reqId) {
|
|
59
|
-
const success = await ctx.queueManager.changePriority(jobId(cmd.id), cmd.priority, cmd.lifo);
|
|
60
|
-
if (success) {
|
|
61
|
-
ctx.queueManager.emitDashboardEvent('job:priority-changed', {
|
|
62
|
-
jobId: cmd.id,
|
|
63
|
-
newPriority: cmd.priority,
|
|
64
|
-
});
|
|
65
|
-
}
|
|
66
|
-
return success ? resp.ok(undefined, reqId) : resp.error('Job not found or not in queue', reqId);
|
|
67
|
-
}
|
|
68
|
-
/** Handle Promote command - move delayed to waiting */
|
|
69
|
-
export async function handlePromote(cmd, ctx, reqId) {
|
|
70
|
-
const success = await ctx.queueManager.promote(jobId(cmd.id));
|
|
71
|
-
if (success)
|
|
72
|
-
ctx.queueManager.emitDashboardEvent('job:promoted', { jobId: cmd.id });
|
|
73
|
-
return success ? resp.ok(undefined, reqId) : resp.error('Job not found or not delayed', reqId);
|
|
74
|
-
}
|
|
75
|
-
/** Handle UpdateParent command - update child's parent reference */
|
|
76
|
-
export async function handleUpdateParent(cmd, ctx, reqId) {
|
|
77
|
-
try {
|
|
78
|
-
await ctx.queueManager.updateJobParent(jobId(cmd.childId), jobId(cmd.parentId));
|
|
79
|
-
return resp.ok(undefined, reqId);
|
|
80
|
-
}
|
|
81
|
-
catch (error) {
|
|
82
|
-
return resp.error(error instanceof Error ? error.message : 'Failed to update parent', reqId);
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
/** Handle MoveToDelayed command */
|
|
86
|
-
export async function handleMoveToDelayed(cmd, ctx, reqId) {
|
|
87
|
-
const id = jobId(cmd.id);
|
|
88
|
-
const success = await ctx.queueManager.moveToDelayed(id, cmd.delay);
|
|
89
|
-
if (success) {
|
|
90
|
-
ctx.queueManager.emitDashboardEvent('job:moved-to-delayed', {
|
|
91
|
-
jobId: cmd.id,
|
|
92
|
-
delay: cmd.delay,
|
|
93
|
-
});
|
|
94
|
-
return resp.ok(undefined, reqId);
|
|
95
|
-
}
|
|
96
|
-
const state = await ctx.queueManager.getJobState(id);
|
|
97
|
-
if (state === 'unknown') {
|
|
98
|
-
return resp.error('Job not found', reqId);
|
|
99
|
-
}
|
|
100
|
-
return resp.error(`Job is not active (current state: ${state})`, reqId);
|
|
101
|
-
}
|
|
102
|
-
/** Handle Discard command - move to DLQ */
|
|
103
|
-
export async function handleDiscard(cmd, ctx, reqId) {
|
|
104
|
-
const success = await ctx.queueManager.discard(jobId(cmd.id));
|
|
105
|
-
if (success)
|
|
106
|
-
ctx.queueManager.emitDashboardEvent('job:discarded', { jobId: cmd.id });
|
|
107
|
-
return success ? resp.ok(undefined, reqId) : resp.error('Job not found', reqId);
|
|
108
|
-
}
|
|
109
|
-
/** Handle WaitJob command - wait for job completion (event-driven, no polling) */
|
|
110
|
-
export async function handleWaitJob(cmd, ctx, reqId) {
|
|
111
|
-
const jid = jobId(cmd.id);
|
|
112
|
-
// Bounded like PULL (which caps at 60s); waiting for completion is
|
|
113
|
-
// legitimately longer, so the cap here is 10 min. validateNumericField also
|
|
114
|
-
// rejects NaN/Infinity from hostile clients (a hand-rolled <0/>max check
|
|
115
|
-
// would let NaN through and resolve instantly as a false "not completed").
|
|
116
|
-
const timeoutError = validateNumericField(cmd.timeout, 'timeout', { min: 0, max: 600000 });
|
|
117
|
-
if (timeoutError)
|
|
118
|
-
return resp.error(timeoutError, reqId);
|
|
119
|
-
const timeout = cmd.timeout ?? 30000;
|
|
120
|
-
// First check if job exists and is already completed
|
|
121
|
-
const job = await ctx.queueManager.getJob(jid);
|
|
122
|
-
if (!job)
|
|
123
|
-
return resp.error('Job not found', reqId);
|
|
124
|
-
if (job.completedAt) {
|
|
125
|
-
const result = ctx.queueManager.getResult(jid);
|
|
126
|
-
return { ok: true, completed: true, result, reqId };
|
|
127
|
-
}
|
|
128
|
-
// Wait for completion event - event-driven, no polling
|
|
129
|
-
const completed = await ctx.queueManager.waitForJobCompletion(jid, timeout);
|
|
130
|
-
if (completed) {
|
|
131
|
-
const result = ctx.queueManager.getResult(jid);
|
|
132
|
-
return { ok: true, completed: true, result, reqId };
|
|
133
|
-
}
|
|
134
|
-
return { ok: true, completed: false, reqId };
|
|
135
|
-
}
|
|
136
|
-
// ============ Queue Control ============
|
|
137
|
-
/** Handle IsPaused command */
|
|
138
|
-
export function handleIsPaused(cmd, ctx, reqId) {
|
|
139
|
-
const paused = ctx.queueManager.isPaused(cmd.queue);
|
|
140
|
-
return { ok: true, paused, reqId };
|
|
141
|
-
}
|
|
142
|
-
/** Handle Obliterate command */
|
|
143
|
-
export function handleObliterate(cmd, ctx, reqId) {
|
|
144
|
-
ctx.queueManager.obliterate(cmd.queue);
|
|
145
|
-
return resp.ok(undefined, reqId);
|
|
146
|
-
}
|
|
147
|
-
/** Handle ListQueues command */
|
|
148
|
-
export function handleListQueues(_cmd, ctx, reqId) {
|
|
149
|
-
const queues = ctx.queueManager.listQueues();
|
|
150
|
-
return { ok: true, queues, reqId };
|
|
151
|
-
}
|
|
152
|
-
/** Handle Clean command */
|
|
153
|
-
export function handleClean(cmd, ctx, reqId) {
|
|
154
|
-
const ids = ctx.queueManager.clean(cmd.queue, cmd.grace, cmd.state, cmd.limit);
|
|
155
|
-
if (ids.length > 0) {
|
|
156
|
-
ctx.queueManager.emitDashboardEvent('queue:cleaned', {
|
|
157
|
-
queue: cmd.queue,
|
|
158
|
-
state: cmd.state,
|
|
159
|
-
count: ids.length,
|
|
160
|
-
});
|
|
161
|
-
}
|
|
162
|
-
return { ok: true, count: ids.length, ids, reqId };
|
|
163
|
-
}
|
|
164
|
-
/** Handle Count command */
|
|
165
|
-
export function handleCount(cmd, ctx, reqId) {
|
|
166
|
-
const count = ctx.queueManager.count(cmd.queue);
|
|
167
|
-
return { ok: true, count, reqId };
|
|
168
|
-
}
|
|
169
|
-
// ============ Rate Limiting ============
|
|
170
|
-
/** Handle RateLimit command */
|
|
171
|
-
export function handleRateLimit(cmd, ctx, reqId) {
|
|
172
|
-
const limit = toFiniteNumber(cmd.limit);
|
|
173
|
-
if (limit === undefined)
|
|
174
|
-
return resp.error('limit must be a finite number', reqId);
|
|
175
|
-
// Optional window/TTL: invalid values degrade to the defaults (1s window,
|
|
176
|
-
// permanent limit) inside the limiter rather than failing the command.
|
|
177
|
-
const duration = toFiniteNumber(cmd.duration);
|
|
178
|
-
const ttl = toFiniteNumber(cmd.ttl);
|
|
179
|
-
ctx.queueManager.setRateLimit(cmd.queue, limit, duration, ttl);
|
|
180
|
-
ctx.queueManager.emitDashboardEvent('ratelimit:set', {
|
|
181
|
-
queue: cmd.queue,
|
|
182
|
-
max: limit,
|
|
183
|
-
...(duration !== undefined && { duration }),
|
|
184
|
-
...(ttl !== undefined && { ttl }),
|
|
185
|
-
});
|
|
186
|
-
return resp.ok(undefined, reqId);
|
|
187
|
-
}
|
|
188
|
-
/** Handle RateLimitClear command */
|
|
189
|
-
export function handleRateLimitClear(cmd, ctx, reqId) {
|
|
190
|
-
ctx.queueManager.clearRateLimit(cmd.queue);
|
|
191
|
-
ctx.queueManager.emitDashboardEvent('ratelimit:cleared', { queue: cmd.queue });
|
|
192
|
-
return resp.ok(undefined, reqId);
|
|
193
|
-
}
|
|
194
|
-
/** Handle SetConcurrency command */
|
|
195
|
-
export function handleSetConcurrency(cmd, ctx, reqId) {
|
|
196
|
-
const limit = toFiniteNumber(cmd.limit);
|
|
197
|
-
if (limit === undefined)
|
|
198
|
-
return resp.error('limit must be a finite number', reqId);
|
|
199
|
-
ctx.queueManager.setConcurrency(cmd.queue, limit);
|
|
200
|
-
ctx.queueManager.emitDashboardEvent('concurrency:set', {
|
|
201
|
-
queue: cmd.queue,
|
|
202
|
-
concurrency: limit,
|
|
203
|
-
});
|
|
204
|
-
return resp.ok(undefined, reqId);
|
|
205
|
-
}
|
|
206
|
-
/** Handle ClearConcurrency command */
|
|
207
|
-
export function handleClearConcurrency(cmd, ctx, reqId) {
|
|
208
|
-
ctx.queueManager.clearConcurrency(cmd.queue);
|
|
209
|
-
ctx.queueManager.emitDashboardEvent('concurrency:cleared', { queue: cmd.queue });
|
|
210
|
-
return resp.ok(undefined, reqId);
|
|
211
|
-
}
|
|
212
|
-
// ============ Config Commands ============
|
|
213
|
-
/** Handle SetStallConfig command */
|
|
214
|
-
export function handleSetStallConfig(cmd, ctx, reqId) {
|
|
215
|
-
const config = sanitizeConfigNumbers(cmd.config, ['stallInterval', 'maxStalls', 'gracePeriod']);
|
|
216
|
-
ctx.queueManager.setStallConfig(cmd.queue, config);
|
|
217
|
-
ctx.queueManager.emitDashboardEvent('config:stall-changed', {
|
|
218
|
-
queue: cmd.queue,
|
|
219
|
-
config,
|
|
220
|
-
});
|
|
221
|
-
return resp.ok(undefined, reqId);
|
|
222
|
-
}
|
|
223
|
-
/** Handle GetStallConfig command */
|
|
224
|
-
export function handleGetStallConfig(cmd, ctx, reqId) {
|
|
225
|
-
const config = ctx.queueManager.getStallConfig(cmd.queue);
|
|
226
|
-
return { ok: true, config, reqId };
|
|
227
|
-
}
|
|
228
|
-
/** Handle SetDlqConfig command */
|
|
229
|
-
export function handleSetDlqConfig(cmd, ctx, reqId) {
|
|
230
|
-
const config = sanitizeConfigNumbers(cmd.config, [
|
|
231
|
-
'autoRetryInterval',
|
|
232
|
-
'maxAutoRetries',
|
|
233
|
-
'maxAge',
|
|
234
|
-
'maxEntries',
|
|
235
|
-
]);
|
|
236
|
-
ctx.queueManager.setDlqConfig(cmd.queue, config);
|
|
237
|
-
ctx.queueManager.emitDashboardEvent('config:dlq-changed', {
|
|
238
|
-
queue: cmd.queue,
|
|
239
|
-
config,
|
|
240
|
-
});
|
|
241
|
-
return resp.ok(undefined, reqId);
|
|
242
|
-
}
|
|
243
|
-
/** Handle GetDlqConfig command */
|
|
244
|
-
export function handleGetDlqConfig(cmd, ctx, reqId) {
|
|
245
|
-
const config = ctx.queueManager.getDlqConfig(cmd.queue);
|
|
246
|
-
return { ok: true, config, reqId };
|
|
247
|
-
}
|
|
248
|
-
/** Handle ChangeDelay command - change delay for a delayed/active job */
|
|
249
|
-
export async function handleChangeDelay(cmd, ctx, reqId) {
|
|
250
|
-
const success = await ctx.queueManager.changeDelay(jobId(cmd.id), cmd.delay);
|
|
251
|
-
if (success) {
|
|
252
|
-
ctx.queueManager.emitDashboardEvent('job:delay-changed', {
|
|
253
|
-
jobId: cmd.id,
|
|
254
|
-
newDelay: cmd.delay,
|
|
255
|
-
});
|
|
256
|
-
}
|
|
257
|
-
return success
|
|
258
|
-
? resp.ok(undefined, reqId)
|
|
259
|
-
: resp.error('Job not found or cannot change delay', reqId);
|
|
260
|
-
}
|
|
261
|
-
/** Handle MoveToWait command - move a job back to waiting.
|
|
262
|
-
* Dispatch by state to match embedded branching in jobMove.ts.
|
|
263
|
-
* - active -> moveActiveToWait
|
|
264
|
-
* - delayed -> promote
|
|
265
|
-
* - failed -> retryDlq
|
|
266
|
-
* - waiting / prioritized -> already there, no-op success
|
|
267
|
-
*/
|
|
268
|
-
export async function handleMoveToWait(cmd, ctx, reqId) {
|
|
269
|
-
const id = jobId(cmd.id);
|
|
270
|
-
const state = await ctx.queueManager.getJobState(id);
|
|
271
|
-
if (state === 'active') {
|
|
272
|
-
const ok = await ctx.queueManager.moveActiveToWait(id);
|
|
273
|
-
return ok ? resp.ok(undefined, reqId) : resp.error('Job not found or not active', reqId);
|
|
274
|
-
}
|
|
275
|
-
if (state === 'delayed') {
|
|
276
|
-
const ok = await ctx.queueManager.promote(id);
|
|
277
|
-
return ok ? resp.ok(undefined, reqId) : resp.error('Job not found or not delayed', reqId);
|
|
278
|
-
}
|
|
279
|
-
if (state === 'failed') {
|
|
280
|
-
const job = await ctx.queueManager.getJob(id);
|
|
281
|
-
if (!job)
|
|
282
|
-
return resp.error('Job not found', reqId);
|
|
283
|
-
const count = ctx.queueManager.retryDlq(job.queue, id);
|
|
284
|
-
return count > 0 ? resp.ok(undefined, reqId) : resp.error('Failed job not in DLQ', reqId);
|
|
285
|
-
}
|
|
286
|
-
if (state === 'waiting' || state === 'prioritized') {
|
|
287
|
-
return resp.ok(undefined, reqId);
|
|
288
|
-
}
|
|
289
|
-
return resp.error(`Cannot move job from state '${state}' to waiting`, reqId);
|
|
290
|
-
}
|
|
291
|
-
/** Handle PromoteJobs command - promote all delayed jobs in a queue */
|
|
292
|
-
export async function handlePromoteJobs(cmd, ctx, reqId) {
|
|
293
|
-
const count = await ctx.queueManager.promoteJobs(cmd.queue, cmd.count);
|
|
294
|
-
return { ok: true, count, reqId };
|
|
295
|
-
}
|
|
296
|
-
// ============ Flow Dependency Commands ============
|
|
297
|
-
/** Handle GetFailedChildrenValues command */
|
|
298
|
-
export async function handleGetFailedChildrenValues(cmd, ctx, reqId) {
|
|
299
|
-
try {
|
|
300
|
-
const values = await ctx.queueManager.getFailedChildrenValues(jobId(cmd.id));
|
|
301
|
-
return { ok: true, values, reqId };
|
|
302
|
-
}
|
|
303
|
-
catch {
|
|
304
|
-
return { ok: true, values: {}, reqId };
|
|
305
|
-
}
|
|
306
|
-
}
|
|
307
|
-
/** Handle GetIgnoredChildrenFailures command */
|
|
308
|
-
export async function handleGetIgnoredChildrenFailures(cmd, ctx, reqId) {
|
|
309
|
-
try {
|
|
310
|
-
const values = await ctx.queueManager.getIgnoredChildrenFailures(jobId(cmd.id));
|
|
311
|
-
return { ok: true, values, reqId };
|
|
312
|
-
}
|
|
313
|
-
catch {
|
|
314
|
-
return { ok: true, values: {}, reqId };
|
|
315
|
-
}
|
|
316
|
-
}
|
|
317
|
-
/** Handle RemoveChildDependency command */
|
|
318
|
-
export async function handleRemoveChildDependency(cmd, ctx, reqId) {
|
|
319
|
-
try {
|
|
320
|
-
const removed = await ctx.queueManager.removeChildDependency(jobId(cmd.id));
|
|
321
|
-
return { ok: true, removed, reqId };
|
|
322
|
-
}
|
|
323
|
-
catch (err) {
|
|
324
|
-
return resp.error(err instanceof Error ? err.message : String(err), reqId);
|
|
325
|
-
}
|
|
326
|
-
}
|
|
327
|
-
/** Handle RemoveUnprocessedChildren command */
|
|
328
|
-
export async function handleRemoveUnprocessedChildren(cmd, ctx, reqId) {
|
|
329
|
-
try {
|
|
330
|
-
await ctx.queueManager.removeUnprocessedChildren(jobId(cmd.id));
|
|
331
|
-
return resp.ok(undefined, reqId);
|
|
332
|
-
}
|
|
333
|
-
catch (err) {
|
|
334
|
-
return resp.error(err instanceof Error ? err.message : String(err), reqId);
|
|
335
|
-
}
|
|
336
|
-
}
|
|
1
|
+
export { handleGetFailedChildrenValues, handleGetIgnoredChildrenFailures, handleRemoveChildDependency, handleRemoveUnprocessedChildren, } from './advanced/dependencies';
|
|
2
|
+
export { handleChangeDelay, handleChangePriority, handleDiscard, handleMoveToDelayed, handleMoveToWait, handlePromote, handlePromoteJobs, handleUpdate, handleUpdateParent, handleWaitJob, } from './advanced/jobs';
|
|
3
|
+
export { handleClean, handleClearConcurrency, handleCount, handleGetDlqConfig, handleGetStallConfig, handleIsPaused, handleListQueues, handleObliterate, handleRateLimit, handleRateLimitClear, handleSetConcurrency, handleSetDlqConfig, handleSetStallConfig, } from './advanced/queue';
|
|
@@ -1,7 +1,4 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Core Command Handlers
|
|
3
|
-
* Push, Pull, Ack, Fail operations
|
|
4
|
-
*/
|
|
1
|
+
/** Core command handlers for push, pull, acknowledgement, and failure. */
|
|
5
2
|
import type { Command } from '../../../domain/types/command';
|
|
6
3
|
import type { Response } from '../../../domain/types/response';
|
|
7
4
|
import type { HandlerContext } from '../types';
|