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
|
@@ -1,9 +1,6 @@
|
|
|
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 * as resp from '../../../domain/types/response';
|
|
6
|
-
import { jobId } from '../../../domain/types/job';
|
|
3
|
+
import { jobId, normalizeLegacyJobPayload } from '../../../domain/types/job';
|
|
7
4
|
import { validateQueueName, validateJobData, validateJobOptions, validateNumericField, } from '../protocol';
|
|
8
5
|
import { validatePushBatchJobs } from './pushBatchValidation';
|
|
9
6
|
/** Handle PUSH command */
|
|
@@ -42,8 +39,10 @@ export async function handlePush(cmd, ctx, reqId) {
|
|
|
42
39
|
}
|
|
43
40
|
}
|
|
44
41
|
try {
|
|
42
|
+
const payload = normalizeLegacyJobPayload(cmd);
|
|
45
43
|
const job = await ctx.queueManager.push(cmd.queue, {
|
|
46
|
-
|
|
44
|
+
name: payload.name,
|
|
45
|
+
data: payload.data,
|
|
47
46
|
priority: cmd.priority,
|
|
48
47
|
delay: cmd.delay,
|
|
49
48
|
maxAttempts: cmd.maxAttempts,
|
|
@@ -92,7 +91,11 @@ export async function handlePushBatch(cmd, ctx, reqId) {
|
|
|
92
91
|
const jobsError = validatePushBatchJobs(cmd.jobs, ctx);
|
|
93
92
|
if (jobsError)
|
|
94
93
|
return resp.error(jobsError, reqId);
|
|
95
|
-
const
|
|
94
|
+
const inputs = cmd.jobs.map((job) => {
|
|
95
|
+
const payload = normalizeLegacyJobPayload(job);
|
|
96
|
+
return { ...job, name: payload.name, data: payload.data };
|
|
97
|
+
});
|
|
98
|
+
const ids = await ctx.queueManager.pushBatch(cmd.queue, inputs);
|
|
96
99
|
return resp.batch(ids, reqId);
|
|
97
100
|
}
|
|
98
101
|
/** Handle PULL command */
|
|
@@ -158,10 +161,12 @@ export async function handlePullBatch(cmd, ctx, reqId) {
|
|
|
158
161
|
export async function handleAck(cmd, ctx, reqId) {
|
|
159
162
|
try {
|
|
160
163
|
const jid = jobId(cmd.id);
|
|
161
|
-
await ctx.queueManager.ack(jid, cmd.result, cmd.token
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
164
|
+
const outcome = await ctx.queueManager.ack(jid, cmd.result, cmd.token, {
|
|
165
|
+
removeOnComplete: cmd.removeOnComplete,
|
|
166
|
+
});
|
|
167
|
+
if (!outcome)
|
|
168
|
+
ctx.queueManager.unregisterClientJob(ctx.clientId, jid);
|
|
169
|
+
return outcome ? resp.data(outcome, reqId) : resp.ok(undefined, reqId);
|
|
165
170
|
}
|
|
166
171
|
catch (err) {
|
|
167
172
|
return resp.error(err instanceof Error ? err.message : String(err), reqId);
|
|
@@ -169,9 +174,19 @@ export async function handleAck(cmd, ctx, reqId) {
|
|
|
169
174
|
}
|
|
170
175
|
/** Handle ACKB (batch ack) command - supports optional results and tokens */
|
|
171
176
|
export async function handleAckBatch(cmd, ctx, reqId) {
|
|
177
|
+
if (cmd.tokens && cmd.tokens.length !== cmd.ids.length) {
|
|
178
|
+
return resp.error('ACKB tokens length must match ids length', reqId);
|
|
179
|
+
}
|
|
180
|
+
if (cmd.results && cmd.results.length !== cmd.ids.length) {
|
|
181
|
+
return resp.error('ACKB results length must match ids length', reqId);
|
|
182
|
+
}
|
|
183
|
+
if (cmd.removeOnCompletes && cmd.removeOnCompletes.length !== cmd.ids.length) {
|
|
184
|
+
return resp.error('ACKB removeOnCompletes length must match ids length', reqId);
|
|
185
|
+
}
|
|
172
186
|
const ids = cmd.ids.map((id) => jobId(id));
|
|
173
187
|
try {
|
|
174
188
|
// If results provided, use ackBatchWithResults
|
|
189
|
+
let outcome;
|
|
175
190
|
if (cmd.results?.length === cmd.ids.length) {
|
|
176
191
|
const results = cmd.results;
|
|
177
192
|
const tokens = cmd.tokens;
|
|
@@ -179,18 +194,20 @@ export async function handleAckBatch(cmd, ctx, reqId) {
|
|
|
179
194
|
id,
|
|
180
195
|
result: results[i],
|
|
181
196
|
token: tokens?.[i],
|
|
197
|
+
removeOnComplete: cmd.removeOnCompletes?.[i] === true ? true : undefined,
|
|
182
198
|
}));
|
|
183
|
-
await ctx.queueManager.ackBatchWithResults(items);
|
|
199
|
+
outcome = await ctx.queueManager.ackBatchWithResults(items);
|
|
184
200
|
}
|
|
185
201
|
else {
|
|
186
202
|
// Use optimized batch ack without results
|
|
187
|
-
await ctx.queueManager.ackBatch(ids, cmd.tokens);
|
|
203
|
+
outcome = await ctx.queueManager.ackBatch(ids, cmd.tokens);
|
|
188
204
|
}
|
|
189
|
-
|
|
205
|
+
const ignoredIds = new Set(outcome?.ignoredIds ?? []);
|
|
190
206
|
for (const id of ids) {
|
|
191
|
-
|
|
207
|
+
if (!ignoredIds.has(id))
|
|
208
|
+
ctx.queueManager.unregisterClientJob(ctx.clientId, id);
|
|
192
209
|
}
|
|
193
|
-
return resp.ok(undefined, reqId);
|
|
210
|
+
return outcome ? resp.data(outcome, reqId) : resp.ok(undefined, reqId);
|
|
194
211
|
}
|
|
195
212
|
catch (err) {
|
|
196
213
|
return resp.error(err instanceof Error ? err.message : String(err), reqId);
|
|
@@ -206,10 +223,10 @@ export async function handleFail(cmd, ctx, reqId) {
|
|
|
206
223
|
const stack = Array.isArray(cmd.stack)
|
|
207
224
|
? cmd.stack.filter((line) => typeof line === 'string').slice(0, 100)
|
|
208
225
|
: undefined;
|
|
209
|
-
await ctx.queueManager.fail(jid, cmd.error, cmd.token, cmd.unrecoverable, stack && stack.length > 0 ? stack : undefined);
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
return resp.ok(undefined, reqId);
|
|
226
|
+
const outcome = await ctx.queueManager.fail(jid, cmd.error, cmd.token, cmd.unrecoverable, stack && stack.length > 0 ? stack : undefined, cmd.removeOnFail);
|
|
227
|
+
if (!outcome)
|
|
228
|
+
ctx.queueManager.unregisterClientJob(ctx.clientId, jid);
|
|
229
|
+
return outcome ? resp.data(outcome, reqId) : resp.ok(undefined, reqId);
|
|
213
230
|
}
|
|
214
231
|
catch (err) {
|
|
215
232
|
return resp.error(err instanceof Error ? err.message : String(err), reqId);
|
|
@@ -3,14 +3,17 @@
|
|
|
3
3
|
* Cron, CronGet, CronDelete, CronList
|
|
4
4
|
*/
|
|
5
5
|
import * as resp from '../../../domain/types/response';
|
|
6
|
+
import { normalizeLegacyJobPayload } from '../../../domain/types/job';
|
|
6
7
|
/** Handle Cron command - add cron job */
|
|
7
8
|
export function handleCron(cmd, ctx, reqId) {
|
|
8
9
|
try {
|
|
10
|
+
const payload = normalizeLegacyJobPayload({ name: cmd.jobName, data: cmd.data });
|
|
9
11
|
const existing = ctx.queueManager.getCron(cmd.name);
|
|
10
12
|
const cron = ctx.queueManager.addCron({
|
|
11
13
|
name: cmd.name,
|
|
14
|
+
jobName: payload.name,
|
|
12
15
|
queue: cmd.queue,
|
|
13
|
-
data:
|
|
16
|
+
data: payload.data,
|
|
14
17
|
schedule: cmd.schedule,
|
|
15
18
|
repeatEvery: cmd.repeatEvery,
|
|
16
19
|
priority: cmd.priority,
|
|
@@ -35,10 +38,13 @@ export function handleCron(cmd, ctx, reqId) {
|
|
|
35
38
|
ok: true,
|
|
36
39
|
cron: {
|
|
37
40
|
name: cron.name,
|
|
41
|
+
jobName: cron.jobName,
|
|
38
42
|
queue: cron.queue,
|
|
39
43
|
schedule: cron.schedule,
|
|
40
44
|
repeatEvery: cron.repeatEvery,
|
|
41
45
|
nextRun: cron.nextRun,
|
|
46
|
+
executions: cron.executions,
|
|
47
|
+
maxLimit: cron.maxLimit,
|
|
42
48
|
timezone: cron.timezone,
|
|
43
49
|
priority: cron.priority,
|
|
44
50
|
},
|
|
@@ -59,6 +65,7 @@ export function handleCronGet(cmd, ctx, reqId) {
|
|
|
59
65
|
ok: true,
|
|
60
66
|
cron: {
|
|
61
67
|
name: cron.name,
|
|
68
|
+
jobName: cron.jobName,
|
|
62
69
|
queue: cron.queue,
|
|
63
70
|
schedule: cron.schedule,
|
|
64
71
|
repeatEvery: cron.repeatEvery,
|
|
@@ -84,6 +91,7 @@ export function handleCronList(_cmd, ctx, reqId) {
|
|
|
84
91
|
ok: true,
|
|
85
92
|
crons: crons.map((c) => ({
|
|
86
93
|
name: c.name,
|
|
94
|
+
jobName: c.jobName,
|
|
87
95
|
queue: c.queue,
|
|
88
96
|
schedule: c.schedule,
|
|
89
97
|
repeatEvery: c.repeatEvery,
|
|
@@ -9,6 +9,9 @@ import type { HandlerContext } from '../types';
|
|
|
9
9
|
export declare function handleDlq(cmd: Extract<Command, {
|
|
10
10
|
cmd: 'Dlq';
|
|
11
11
|
}>, ctx: HandlerContext, reqId?: string): Response;
|
|
12
|
+
export declare function handleGetDlqStats(cmd: Extract<Command, {
|
|
13
|
+
cmd: 'GetDlqStats';
|
|
14
|
+
}>, ctx: HandlerContext, reqId?: string): Response;
|
|
12
15
|
/** Handle RetryDlq command - retry DLQ jobs */
|
|
13
16
|
export declare function handleRetryDlq(cmd: Extract<Command, {
|
|
14
17
|
cmd: 'RetryDlq';
|
|
@@ -6,14 +6,25 @@ import * as resp from '../../../domain/types/response';
|
|
|
6
6
|
import { jobId } from '../../../domain/types/job';
|
|
7
7
|
/** Handle Dlq command - get DLQ jobs */
|
|
8
8
|
export function handleDlq(cmd, ctx, reqId) {
|
|
9
|
-
const
|
|
10
|
-
|
|
9
|
+
const entries = ctx.queueManager.getDlqEntries(cmd.queue, cmd.filter);
|
|
10
|
+
const selected = cmd.count === undefined ? entries : entries.slice(0, Math.max(0, cmd.count));
|
|
11
|
+
return {
|
|
12
|
+
ok: true,
|
|
13
|
+
jobs: selected.map((entry) => entry.job),
|
|
14
|
+
entries: selected,
|
|
15
|
+
reqId,
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
export function handleGetDlqStats(cmd, ctx, reqId) {
|
|
19
|
+
return resp.data({ stats: ctx.queueManager.getDlqStats(cmd.queue) }, reqId);
|
|
11
20
|
}
|
|
12
21
|
/** Handle RetryDlq command - retry DLQ jobs */
|
|
13
22
|
export function handleRetryDlq(cmd, ctx, reqId) {
|
|
14
23
|
const jid = cmd.jobId ? jobId(cmd.jobId) : undefined;
|
|
15
24
|
// #111-class: honour the caller's `count` cap instead of retrying the whole DLQ.
|
|
16
|
-
const count =
|
|
25
|
+
const count = cmd.filter
|
|
26
|
+
? ctx.queueManager.retryDlqByFilter(cmd.queue, cmd.filter)
|
|
27
|
+
: ctx.queueManager.retryDlq(cmd.queue, jid, cmd.count);
|
|
17
28
|
if (count > 0) {
|
|
18
29
|
const event = jid ? 'dlq:retried' : 'dlq:retry-all';
|
|
19
30
|
const data = { queue: cmd.queue, count };
|
|
@@ -33,6 +44,9 @@ export function handlePurgeDlq(cmd, ctx, reqId) {
|
|
|
33
44
|
/** Handle RetryCompleted command - retry completed jobs */
|
|
34
45
|
export function handleRetryCompleted(cmd, ctx, reqId) {
|
|
35
46
|
const jid = cmd.id ? jobId(cmd.id) : undefined;
|
|
36
|
-
const count = ctx.queueManager.retryCompleted(cmd.queue, jid
|
|
47
|
+
const count = ctx.queueManager.retryCompleted(cmd.queue, jid, {
|
|
48
|
+
limit: cmd.count,
|
|
49
|
+
timestamp: cmd.timestamp,
|
|
50
|
+
});
|
|
37
51
|
return { ok: true, count, reqId };
|
|
38
52
|
}
|
|
@@ -1,8 +1,13 @@
|
|
|
1
1
|
import * as resp from '../../../domain/types/response';
|
|
2
|
+
import { normalizeLegacyJobPayload } from '../../../domain/types/job';
|
|
2
3
|
/** Commit the whole graph in one broker operation; validation happens pre-mutation. */
|
|
3
4
|
export async function handlePushFlow(cmd, ctx, reqId) {
|
|
4
5
|
try {
|
|
5
|
-
const
|
|
6
|
+
const jobs = cmd.jobs.map((job) => {
|
|
7
|
+
const payload = normalizeLegacyJobPayload(job.input);
|
|
8
|
+
return { ...job, input: { ...job.input, name: payload.name, data: payload.data } };
|
|
9
|
+
});
|
|
10
|
+
const result = await ctx.queueManager.pushFlow({ jobs });
|
|
6
11
|
return resp.data(result, reqId);
|
|
7
12
|
}
|
|
8
13
|
catch (error) {
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/** Queue limit and deduplication introspection handlers. */
|
|
2
|
+
import type { Command } from '../../../domain/types/command';
|
|
3
|
+
import type { Response } from '../../../domain/types/response';
|
|
4
|
+
import type { HandlerContext } from '../types';
|
|
5
|
+
export declare function handleGetQueueLimits(cmd: Extract<Command, {
|
|
6
|
+
cmd: 'GetQueueLimits';
|
|
7
|
+
}>, ctx: HandlerContext, reqId?: string): Response;
|
|
8
|
+
export declare function handleGetDeduplicationJobId(cmd: Extract<Command, {
|
|
9
|
+
cmd: 'GetDeduplicationJobId';
|
|
10
|
+
}>, ctx: HandlerContext, reqId?: string): Response;
|
|
11
|
+
export declare function handleRemoveDeduplicationKey(cmd: Extract<Command, {
|
|
12
|
+
cmd: 'RemoveDeduplicationKey';
|
|
13
|
+
}>, ctx: HandlerContext, reqId?: string): Promise<Response>;
|
|
14
|
+
export declare function handleRemoveJobDeduplicationKey(cmd: Extract<Command, {
|
|
15
|
+
cmd: 'RemoveJobDeduplicationKey';
|
|
16
|
+
}>, ctx: HandlerContext, reqId?: string): Promise<Response>;
|
|
17
|
+
export declare function handleMoveToWaitingChildren(cmd: Extract<Command, {
|
|
18
|
+
cmd: 'MoveToWaitingChildren';
|
|
19
|
+
}>, ctx: HandlerContext, reqId?: string): Promise<Response>;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/** Queue limit and deduplication introspection handlers. */
|
|
2
|
+
import * as resp from '../../../domain/types/response';
|
|
3
|
+
import { jobId } from '../../../domain/types/job';
|
|
4
|
+
export function handleGetQueueLimits(cmd, ctx, reqId) {
|
|
5
|
+
return resp.data({ limits: ctx.queueManager.getQueueLimitStatus(cmd.queue, cmd.maxJobs) }, reqId);
|
|
6
|
+
}
|
|
7
|
+
export function handleGetDeduplicationJobId(cmd, ctx, reqId) {
|
|
8
|
+
return resp.data({ jobId: ctx.queueManager.getDeduplicationJobId(cmd.queue, cmd.deduplicationId) }, reqId);
|
|
9
|
+
}
|
|
10
|
+
export async function handleRemoveDeduplicationKey(cmd, ctx, reqId) {
|
|
11
|
+
const count = await ctx.queueManager.removeDeduplicationKey(cmd.queue, cmd.deduplicationId);
|
|
12
|
+
return resp.data({ count }, reqId);
|
|
13
|
+
}
|
|
14
|
+
export async function handleRemoveJobDeduplicationKey(cmd, ctx, reqId) {
|
|
15
|
+
const removed = await ctx.queueManager.removeJobDeduplicationKey(cmd.id);
|
|
16
|
+
return resp.data({ removed }, reqId);
|
|
17
|
+
}
|
|
18
|
+
export async function handleMoveToWaitingChildren(cmd, ctx, reqId) {
|
|
19
|
+
const moved = await ctx.queueManager.moveToWaitingChildren(jobId(cmd.id), cmd.token);
|
|
20
|
+
return moved ? resp.data({ moved: true }, reqId) : resp.error('Job is not active', reqId);
|
|
21
|
+
}
|
|
@@ -37,3 +37,11 @@ export declare function handleStorageStatus(_cmd: Extract<Command, {
|
|
|
37
37
|
}>, ctx: HandlerContext, reqId?: string): Response;
|
|
38
38
|
/** Handle Metrics command */
|
|
39
39
|
export declare function handleMetrics(ctx: HandlerContext, reqId?: string): Response;
|
|
40
|
+
/** Handle the queue-scoped Metrics form. */
|
|
41
|
+
export declare function handleQueueMetrics(cmd: Extract<Command, {
|
|
42
|
+
cmd: 'Metrics';
|
|
43
|
+
}>, ctx: HandlerContext, reqId?: string): Response;
|
|
44
|
+
/** Trim one queue's durable lifecycle-event journal. */
|
|
45
|
+
export declare function handleTrimEvents(cmd: Extract<Command, {
|
|
46
|
+
cmd: 'TrimEvents';
|
|
47
|
+
}>, ctx: HandlerContext, reqId?: string): Response;
|
|
@@ -6,6 +6,7 @@ import * as resp from '../../../domain/types/response';
|
|
|
6
6
|
import { jobId } from '../../../domain/types/job';
|
|
7
7
|
import { throughputTracker } from '../../../application/throughputTracker';
|
|
8
8
|
import { latencyTracker } from '../../../application/latencyTracker';
|
|
9
|
+
import { validateQueueName } from '../protocol/validation';
|
|
9
10
|
/** Handle Cancel command */
|
|
10
11
|
export async function handleCancel(cmd, ctx, reqId) {
|
|
11
12
|
const success = await ctx.queueManager.cancel(jobId(cmd.id));
|
|
@@ -97,3 +98,32 @@ export function handleMetrics(ctx, reqId) {
|
|
|
97
98
|
activeConnections: 0,
|
|
98
99
|
}, reqId);
|
|
99
100
|
}
|
|
101
|
+
/** Handle the queue-scoped Metrics form. */
|
|
102
|
+
export function handleQueueMetrics(cmd, ctx, reqId) {
|
|
103
|
+
if (typeof cmd.queue !== 'string')
|
|
104
|
+
return resp.error('Metrics queue is required', reqId);
|
|
105
|
+
const queueError = validateQueueName(cmd.queue);
|
|
106
|
+
if (queueError)
|
|
107
|
+
return resp.error(queueError, reqId);
|
|
108
|
+
if (cmd.type !== 'completed' && cmd.type !== 'failed') {
|
|
109
|
+
return resp.error("Metrics type must be 'completed' or 'failed'", reqId);
|
|
110
|
+
}
|
|
111
|
+
try {
|
|
112
|
+
return resp.data(ctx.queueManager.getQueueMetrics(cmd.queue, cmd.type, cmd.start ?? 0, cmd.end ?? -1), reqId);
|
|
113
|
+
}
|
|
114
|
+
catch (error) {
|
|
115
|
+
return resp.error(error instanceof Error ? error.message : String(error), reqId);
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
/** Trim one queue's durable lifecycle-event journal. */
|
|
119
|
+
export function handleTrimEvents(cmd, ctx, reqId) {
|
|
120
|
+
const queueError = validateQueueName(cmd.queue);
|
|
121
|
+
if (queueError)
|
|
122
|
+
return resp.error(queueError, reqId);
|
|
123
|
+
try {
|
|
124
|
+
return resp.data({ removed: ctx.queueManager.trimQueueEvents(cmd.queue, cmd.maxLength) }, reqId);
|
|
125
|
+
}
|
|
126
|
+
catch (error) {
|
|
127
|
+
return resp.error(error instanceof Error ? error.message : String(error), reqId);
|
|
128
|
+
}
|
|
129
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { AddLogCommand, GetLogsCommand, HeartbeatCommand, HelloCommand, JobHeartbeatBatchCommand, JobHeartbeatCommand, PingCommand } from '../../../../domain/types/command';
|
|
2
|
+
import { PROTOCOL_VERSION, type ProtocolCapability } from '../../../../domain/types/protocol';
|
|
3
|
+
import type { Response } from '../../../../domain/types/response';
|
|
4
|
+
import type { HandlerContext } from '../../types';
|
|
5
|
+
export { PROTOCOL_VERSION };
|
|
6
|
+
export declare const SUPPORTED_CAPABILITIES: ProtocolCapability[];
|
|
7
|
+
export declare function handleAddLog(command: AddLogCommand, context: HandlerContext, requestId?: string): Response;
|
|
8
|
+
export declare function handleGetLogs(command: GetLogsCommand, context: HandlerContext, requestId?: string): Response;
|
|
9
|
+
export declare function handleHeartbeat(command: HeartbeatCommand, context: HandlerContext, requestId?: string): Response;
|
|
10
|
+
export declare function handleJobHeartbeat(command: JobHeartbeatCommand, context: HandlerContext, requestId?: string): Response;
|
|
11
|
+
export declare function handleJobHeartbeatBatch(command: JobHeartbeatBatchCommand, context: HandlerContext, requestId?: string): Response;
|
|
12
|
+
export declare function handlePing(_command: PingCommand, _context: HandlerContext, requestId?: string): Response;
|
|
13
|
+
export declare function handleHello(_command: HelloCommand, _context: HandlerContext, requestId?: string): Response;
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { jobId } from '../../../../domain/types/job';
|
|
2
|
+
import { PROTOCOL_CAPABILITIES, PROTOCOL_VERSION, } from '../../../../domain/types/protocol';
|
|
3
|
+
import * as response from '../../../../domain/types/response';
|
|
4
|
+
import { VERSION } from '../../../../shared/version';
|
|
5
|
+
export { PROTOCOL_VERSION };
|
|
6
|
+
export const SUPPORTED_CAPABILITIES = [...PROTOCOL_CAPABILITIES];
|
|
7
|
+
export function handleAddLog(command, context, requestId) {
|
|
8
|
+
const success = context.queueManager.addLog(jobId(command.id), command.message, command.level ?? 'info');
|
|
9
|
+
return success
|
|
10
|
+
? response.data({ added: true }, requestId)
|
|
11
|
+
: response.error('Job not found', requestId);
|
|
12
|
+
}
|
|
13
|
+
export function handleGetLogs(command, context, requestId) {
|
|
14
|
+
const all = context.queueManager.getLogs(jobId(command.id));
|
|
15
|
+
const total = all.length;
|
|
16
|
+
const logs = command.start === undefined && command.end === undefined
|
|
17
|
+
? all
|
|
18
|
+
: all.slice(command.start ?? 0, (command.end ?? total - 1) + 1);
|
|
19
|
+
return response.data({ logs, count: total }, requestId);
|
|
20
|
+
}
|
|
21
|
+
export function handleHeartbeat(command, context, requestId) {
|
|
22
|
+
const stats = command.activeJobs !== undefined ||
|
|
23
|
+
command.processed !== undefined ||
|
|
24
|
+
command.failed !== undefined
|
|
25
|
+
? {
|
|
26
|
+
activeJobs: command.activeJobs,
|
|
27
|
+
processed: command.processed,
|
|
28
|
+
failed: command.failed,
|
|
29
|
+
}
|
|
30
|
+
: undefined;
|
|
31
|
+
const success = context.queueManager.workerManager.heartbeat(command.id, stats);
|
|
32
|
+
if (success) {
|
|
33
|
+
context.queueManager.emitDashboardEvent('worker:heartbeat', { workerId: command.id });
|
|
34
|
+
return response.data({ ok: true }, requestId);
|
|
35
|
+
}
|
|
36
|
+
return response.error('Worker not found', requestId);
|
|
37
|
+
}
|
|
38
|
+
export function handleJobHeartbeat(command, context, requestId) {
|
|
39
|
+
const id = jobId(command.id);
|
|
40
|
+
if (command.duration && command.token) {
|
|
41
|
+
const success = context.queueManager.renewJobLock(id, command.token, command.duration);
|
|
42
|
+
return success
|
|
43
|
+
? response.data({ ok: true }, requestId)
|
|
44
|
+
: response.error('Job not found or not active (or invalid token)', requestId);
|
|
45
|
+
}
|
|
46
|
+
const success = context.queueManager.jobHeartbeat(id, command.token);
|
|
47
|
+
return success
|
|
48
|
+
? response.data({ ok: true }, requestId)
|
|
49
|
+
: response.error('Job not found or not active (or invalid token)', requestId);
|
|
50
|
+
}
|
|
51
|
+
export function handleJobHeartbeatBatch(command, context, requestId) {
|
|
52
|
+
const ids = command.ids.map((id) => jobId(id));
|
|
53
|
+
const count = context.queueManager.jobHeartbeatBatch(ids, command.tokens);
|
|
54
|
+
return response.data({ ok: true, count }, requestId);
|
|
55
|
+
}
|
|
56
|
+
export function handlePing(_command, _context, requestId) {
|
|
57
|
+
return response.data({ pong: true, time: Date.now() }, requestId);
|
|
58
|
+
}
|
|
59
|
+
export function handleHello(_command, _context, requestId) {
|
|
60
|
+
return response.hello(PROTOCOL_VERSION, SUPPORTED_CAPABILITIES, 'bunqueue', VERSION, requestId);
|
|
61
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { ClearLogsCommand, CompactMemoryCommand, ExtendLockCommand, ExtendLocksCommand, PrometheusCommand } from '../../../../domain/types/command';
|
|
2
|
+
import type { Response } from '../../../../domain/types/response';
|
|
3
|
+
import type { HandlerContext } from '../../types';
|
|
4
|
+
export declare function handlePrometheus(_command: PrometheusCommand, context: HandlerContext, requestId?: string): Response;
|
|
5
|
+
export declare function handleClearLogs(command: ClearLogsCommand, context: HandlerContext, requestId?: string): Response;
|
|
6
|
+
export declare function handleExtendLock(command: ExtendLockCommand, context: HandlerContext, requestId?: string): Promise<Response>;
|
|
7
|
+
export declare function handleExtendLocks(command: ExtendLocksCommand, context: HandlerContext, requestId?: string): Promise<Response>;
|
|
8
|
+
export declare function handleCompactMemory(_command: CompactMemoryCommand, context: HandlerContext, requestId?: string): Response;
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { jobId } from '../../../../domain/types/job';
|
|
2
|
+
import * as response from '../../../../domain/types/response';
|
|
3
|
+
export function handlePrometheus(_command, context, requestId) {
|
|
4
|
+
return response.data({ metrics: context.queueManager.getPrometheusMetrics() }, requestId);
|
|
5
|
+
}
|
|
6
|
+
export function handleClearLogs(command, context, requestId) {
|
|
7
|
+
context.queueManager.clearLogs(jobId(command.id), command.keepLogs);
|
|
8
|
+
return response.ok(undefined, requestId);
|
|
9
|
+
}
|
|
10
|
+
export async function handleExtendLock(command, context, requestId) {
|
|
11
|
+
const success = await context.queueManager.extendLock(jobId(command.id), command.token ?? null, command.duration);
|
|
12
|
+
return success
|
|
13
|
+
? response.ok(undefined, requestId)
|
|
14
|
+
: response.error('Lock not found or invalid token', requestId);
|
|
15
|
+
}
|
|
16
|
+
export async function handleExtendLocks(command, context, requestId) {
|
|
17
|
+
let count = 0;
|
|
18
|
+
for (let index = 0; index < command.ids.length; index++) {
|
|
19
|
+
const success = await context.queueManager.extendLock(jobId(command.ids[index]), command.tokens[index] ?? null, command.durations[index]);
|
|
20
|
+
if (success)
|
|
21
|
+
count++;
|
|
22
|
+
}
|
|
23
|
+
return { ok: true, count, reqId: requestId };
|
|
24
|
+
}
|
|
25
|
+
export function handleCompactMemory(_command, context, requestId) {
|
|
26
|
+
context.queueManager.compactMemory();
|
|
27
|
+
return response.ok(undefined, requestId);
|
|
28
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { AddWebhookCommand, ListWebhooksCommand, RemoveWebhookCommand, SetWebhookEnabledCommand } from '../../../../domain/types/command';
|
|
2
|
+
import type { Response } from '../../../../domain/types/response';
|
|
3
|
+
import type { HandlerContext } from '../../types';
|
|
4
|
+
export declare function handleAddWebhook(command: AddWebhookCommand, context: HandlerContext, requestId?: string): Response;
|
|
5
|
+
export declare function handleRemoveWebhook(command: RemoveWebhookCommand, context: HandlerContext, requestId?: string): Response;
|
|
6
|
+
export declare function handleListWebhooks(_command: ListWebhooksCommand, context: HandlerContext, requestId?: string): Response;
|
|
7
|
+
export declare function handleSetWebhookEnabled(command: SetWebhookEnabledCommand, context: HandlerContext, requestId?: string): Response;
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import * as response from '../../../../domain/types/response';
|
|
2
|
+
import { WEBHOOK_EVENTS } from '../../../../domain/types/webhook';
|
|
3
|
+
import { validateWebhookUrl } from '../../protocol';
|
|
4
|
+
export function handleAddWebhook(command, context, requestId) {
|
|
5
|
+
const urlError = validateWebhookUrl(command.url);
|
|
6
|
+
if (urlError)
|
|
7
|
+
return response.error(urlError, requestId);
|
|
8
|
+
const invalidEvents = command.events.filter((event) => !WEBHOOK_EVENTS.includes(event));
|
|
9
|
+
if (invalidEvents.length > 0) {
|
|
10
|
+
return response.error(`Invalid webhook event(s): ${invalidEvents.join(', ')}. Valid: ${WEBHOOK_EVENTS.join(', ')}`, requestId);
|
|
11
|
+
}
|
|
12
|
+
const webhook = context.queueManager.webhookManager.add(command.url, command.events, command.queue, command.secret);
|
|
13
|
+
context.queueManager.emitDashboardEvent('webhook:added', {
|
|
14
|
+
id: webhook.id,
|
|
15
|
+
url: webhook.url,
|
|
16
|
+
events: webhook.events,
|
|
17
|
+
});
|
|
18
|
+
return response.data({
|
|
19
|
+
webhookId: webhook.id,
|
|
20
|
+
url: webhook.url,
|
|
21
|
+
events: webhook.events,
|
|
22
|
+
queue: webhook.queue,
|
|
23
|
+
createdAt: webhook.createdAt,
|
|
24
|
+
}, requestId);
|
|
25
|
+
}
|
|
26
|
+
export function handleRemoveWebhook(command, context, requestId) {
|
|
27
|
+
const success = context.queueManager.webhookManager.remove(command.webhookId);
|
|
28
|
+
if (success) {
|
|
29
|
+
context.queueManager.emitDashboardEvent('webhook:removed', { id: command.webhookId });
|
|
30
|
+
return response.data({ removed: true }, requestId);
|
|
31
|
+
}
|
|
32
|
+
return response.error('Webhook not found', requestId);
|
|
33
|
+
}
|
|
34
|
+
export function handleListWebhooks(_command, context, requestId) {
|
|
35
|
+
const webhooks = context.queueManager.webhookManager.list();
|
|
36
|
+
return response.data({
|
|
37
|
+
webhooks: webhooks.map((webhook) => ({
|
|
38
|
+
id: webhook.id,
|
|
39
|
+
url: webhook.url,
|
|
40
|
+
events: webhook.events,
|
|
41
|
+
queue: webhook.queue,
|
|
42
|
+
createdAt: webhook.createdAt,
|
|
43
|
+
lastTriggered: webhook.lastTriggered,
|
|
44
|
+
successCount: webhook.successCount,
|
|
45
|
+
failureCount: webhook.failureCount,
|
|
46
|
+
enabled: webhook.enabled,
|
|
47
|
+
})),
|
|
48
|
+
stats: context.queueManager.webhookManager.getStats(),
|
|
49
|
+
}, requestId);
|
|
50
|
+
}
|
|
51
|
+
export function handleSetWebhookEnabled(command, context, requestId) {
|
|
52
|
+
const success = context.queueManager.webhookManager.setEnabled(command.id, command.enabled);
|
|
53
|
+
return success
|
|
54
|
+
? response.ok(undefined, requestId)
|
|
55
|
+
: response.error('Webhook not found', requestId);
|
|
56
|
+
}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { ListWorkersCommand, RegisterWorkerCommand, UnregisterWorkerCommand } from '../../../../domain/types/command';
|
|
2
|
+
import type { Response } from '../../../../domain/types/response';
|
|
3
|
+
import type { HandlerContext } from '../../types';
|
|
4
|
+
export declare function handleRegisterWorker(command: RegisterWorkerCommand, context: HandlerContext, requestId?: string): Response;
|
|
5
|
+
export declare function handleUnregisterWorker(command: UnregisterWorkerCommand, context: HandlerContext, requestId?: string): Response;
|
|
6
|
+
export declare function handleListWorkers(_command: ListWorkersCommand, context: HandlerContext, requestId?: string): Response;
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import * as response from '../../../../domain/types/response';
|
|
2
|
+
const WORKER_TIMEOUT_MS = parseInt(Bun.env.WORKER_TIMEOUT_MS ?? '30000', 10);
|
|
3
|
+
function computeWorkerStatus(lastSeen, now) {
|
|
4
|
+
return now - lastSeen < WORKER_TIMEOUT_MS ? 'active' : 'stale';
|
|
5
|
+
}
|
|
6
|
+
export function handleRegisterWorker(command, context, requestId) {
|
|
7
|
+
const worker = context.queueManager.registerWorker(command.name, command.queues, command.concurrency, {
|
|
8
|
+
workerId: command.workerId,
|
|
9
|
+
hostname: command.hostname,
|
|
10
|
+
pid: command.pid,
|
|
11
|
+
startedAt: command.startedAt,
|
|
12
|
+
clientId: context.clientId,
|
|
13
|
+
});
|
|
14
|
+
return response.data({
|
|
15
|
+
workerId: worker.id,
|
|
16
|
+
name: worker.name,
|
|
17
|
+
queues: worker.queues,
|
|
18
|
+
concurrency: worker.concurrency,
|
|
19
|
+
hostname: worker.hostname,
|
|
20
|
+
pid: worker.pid,
|
|
21
|
+
status: 'active',
|
|
22
|
+
registeredAt: worker.registeredAt,
|
|
23
|
+
lastSeen: worker.lastSeen,
|
|
24
|
+
activeJobs: worker.activeJobs,
|
|
25
|
+
processedJobs: worker.processedJobs,
|
|
26
|
+
failedJobs: worker.failedJobs,
|
|
27
|
+
currentJob: worker.currentJob,
|
|
28
|
+
}, requestId);
|
|
29
|
+
}
|
|
30
|
+
export function handleUnregisterWorker(command, context, requestId) {
|
|
31
|
+
return context.queueManager.unregisterWorker(command.workerId)
|
|
32
|
+
? response.data({ removed: true }, requestId)
|
|
33
|
+
: response.error('Worker not found', requestId);
|
|
34
|
+
}
|
|
35
|
+
export function handleListWorkers(_command, context, requestId) {
|
|
36
|
+
const workers = context.queueManager.workerManager.list();
|
|
37
|
+
const now = Date.now();
|
|
38
|
+
return response.data({
|
|
39
|
+
workers: workers.map((worker) => ({
|
|
40
|
+
id: worker.id,
|
|
41
|
+
name: worker.name,
|
|
42
|
+
queues: worker.queues,
|
|
43
|
+
concurrency: worker.concurrency,
|
|
44
|
+
hostname: worker.hostname,
|
|
45
|
+
pid: worker.pid,
|
|
46
|
+
status: computeWorkerStatus(worker.lastSeen, now),
|
|
47
|
+
registeredAt: worker.registeredAt,
|
|
48
|
+
lastSeen: worker.lastSeen,
|
|
49
|
+
activeJobs: worker.activeJobs,
|
|
50
|
+
processedJobs: worker.processedJobs,
|
|
51
|
+
failedJobs: worker.failedJobs,
|
|
52
|
+
currentJob: worker.currentJob,
|
|
53
|
+
uptime: now - worker.registeredAt,
|
|
54
|
+
})),
|
|
55
|
+
stats: context.queueManager.workerManager.getStats(),
|
|
56
|
+
}, requestId);
|
|
57
|
+
}
|
|
@@ -1,30 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
import type { AddLogCommand, GetLogsCommand, HeartbeatCommand, JobHeartbeatCommand, JobHeartbeatBatchCommand, PingCommand, HelloCommand, RegisterWorkerCommand, UnregisterWorkerCommand, ListWorkersCommand, AddWebhookCommand, RemoveWebhookCommand, ListWebhooksCommand, PrometheusCommand, ClearLogsCommand, ExtendLockCommand, ExtendLocksCommand, SetWebhookEnabledCommand, CompactMemoryCommand } from '../../../domain/types/command';
|
|
6
|
-
import type { Response } from '../../../domain/types/response';
|
|
7
|
-
import type { HandlerContext } from '../types';
|
|
8
|
-
export declare function handleAddLog(cmd: AddLogCommand, ctx: HandlerContext, reqId?: string): Response;
|
|
9
|
-
export declare function handleGetLogs(cmd: GetLogsCommand, ctx: HandlerContext, reqId?: string): Response;
|
|
10
|
-
export declare function handleHeartbeat(cmd: HeartbeatCommand, ctx: HandlerContext, reqId?: string): Response;
|
|
11
|
-
export declare function handleJobHeartbeat(cmd: JobHeartbeatCommand, ctx: HandlerContext, reqId?: string): Response;
|
|
12
|
-
export declare function handleJobHeartbeatBatch(cmd: JobHeartbeatBatchCommand, ctx: HandlerContext, reqId?: string): Response;
|
|
13
|
-
export declare function handlePing(_cmd: PingCommand, _ctx: HandlerContext, reqId?: string): Response;
|
|
14
|
-
/** Current protocol version */
|
|
15
|
-
export declare const PROTOCOL_VERSION = 2;
|
|
16
|
-
/** Supported capabilities */
|
|
17
|
-
export declare const SUPPORTED_CAPABILITIES: 'pipelining'[];
|
|
18
|
-
export declare function handleHello(_cmd: HelloCommand, _ctx: HandlerContext, reqId?: string): Response;
|
|
19
|
-
export declare function handleRegisterWorker(cmd: RegisterWorkerCommand, ctx: HandlerContext, reqId?: string): Response;
|
|
20
|
-
export declare function handleUnregisterWorker(cmd: UnregisterWorkerCommand, ctx: HandlerContext, reqId?: string): Response;
|
|
21
|
-
export declare function handleListWorkers(_cmd: ListWorkersCommand, ctx: HandlerContext, reqId?: string): Response;
|
|
22
|
-
export declare function handleAddWebhook(cmd: AddWebhookCommand, ctx: HandlerContext, reqId?: string): Response;
|
|
23
|
-
export declare function handleRemoveWebhook(cmd: RemoveWebhookCommand, ctx: HandlerContext, reqId?: string): Response;
|
|
24
|
-
export declare function handleListWebhooks(_cmd: ListWebhooksCommand, ctx: HandlerContext, reqId?: string): Response;
|
|
25
|
-
export declare function handlePrometheus(_cmd: PrometheusCommand, ctx: HandlerContext, reqId?: string): Response;
|
|
26
|
-
export declare function handleClearLogs(cmd: ClearLogsCommand, ctx: HandlerContext, reqId?: string): Response;
|
|
27
|
-
export declare function handleExtendLock(cmd: ExtendLockCommand, ctx: HandlerContext, reqId?: string): Promise<Response>;
|
|
28
|
-
export declare function handleExtendLocks(cmd: ExtendLocksCommand, ctx: HandlerContext, reqId?: string): Promise<Response>;
|
|
29
|
-
export declare function handleSetWebhookEnabled(cmd: SetWebhookEnabledCommand, ctx: HandlerContext, reqId?: string): Response;
|
|
30
|
-
export declare function handleCompactMemory(_cmd: CompactMemoryCommand, ctx: HandlerContext, reqId?: string): Response;
|
|
1
|
+
export { handleAddLog, handleGetLogs, handleHeartbeat, handleHello, handleJobHeartbeat, handleJobHeartbeatBatch, handlePing, PROTOCOL_VERSION, SUPPORTED_CAPABILITIES, } from './monitoring/health';
|
|
2
|
+
export { handleClearLogs, handleCompactMemory, handleExtendLock, handleExtendLocks, handlePrometheus, } from './monitoring/operations';
|
|
3
|
+
export { handleAddWebhook, handleListWebhooks, handleRemoveWebhook, handleSetWebhookEnabled, } from './monitoring/webhooks';
|
|
4
|
+
export { handleListWorkers, handleRegisterWorker, handleUnregisterWorker, } from './monitoring/workers';
|