@tachybase/plugin-adapter-bullmq 1.3.16 → 1.3.18
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/externalVersion.js +2 -2
- package/dist/index.js +4 -4
- package/dist/node_modules/@bull-board/api/dist/src/handlers/error.d.ts +4 -2
- package/dist/node_modules/@bull-board/api/dist/src/handlers/error.js +2 -2
- package/dist/node_modules/@bull-board/api/dist/src/handlers/pauseAll.d.ts +4 -0
- package/dist/node_modules/@bull-board/api/dist/src/handlers/pauseAll.js +15 -0
- package/dist/node_modules/@bull-board/api/dist/src/handlers/queues.js +4 -0
- package/dist/node_modules/@bull-board/api/dist/src/handlers/resumeAll.d.ts +4 -0
- package/dist/node_modules/@bull-board/api/dist/src/handlers/resumeAll.js +15 -0
- package/dist/node_modules/@bull-board/api/dist/src/index.js +1 -1
- package/dist/node_modules/@bull-board/api/dist/src/queueAdapters/base.d.ts +4 -0
- package/dist/node_modules/@bull-board/api/dist/src/queueAdapters/base.js +6 -0
- package/dist/node_modules/@bull-board/api/dist/src/queueAdapters/bull.js +6 -4
- package/dist/node_modules/@bull-board/api/dist/src/routes.js +4 -0
- package/dist/node_modules/@bull-board/api/dist/typings/app.d.ts +22 -2
- package/dist/node_modules/@bull-board/api/package.json +1 -1
- package/dist/node_modules/@bull-board/koa/dist/KoaAdapter.js +1 -1
- package/dist/node_modules/@bull-board/koa/dist/index.js +101 -101
- package/dist/node_modules/@bull-board/koa/package.json +1 -1
- package/dist/node_modules/bullmq/dist/cjs/classes/backoffs.js +18 -5
- package/dist/node_modules/bullmq/dist/cjs/classes/child-pool.js +7 -2
- package/dist/node_modules/bullmq/dist/cjs/classes/child-processor.js +59 -5
- package/dist/node_modules/bullmq/dist/cjs/classes/child.js +3 -1
- package/dist/node_modules/bullmq/dist/cjs/classes/errors/index.js +2 -1
- package/dist/node_modules/bullmq/dist/cjs/classes/errors/waiting-error.js +19 -0
- package/dist/node_modules/bullmq/dist/cjs/classes/flow-producer.js +21 -5
- package/dist/node_modules/bullmq/dist/cjs/classes/index.js +1 -0
- package/dist/node_modules/bullmq/dist/cjs/classes/job-scheduler.js +88 -62
- package/dist/node_modules/bullmq/dist/cjs/classes/job.js +216 -109
- package/dist/node_modules/bullmq/dist/cjs/classes/main-base.js +1 -1
- package/dist/node_modules/bullmq/dist/cjs/classes/queue-base.js +10 -9
- package/dist/node_modules/bullmq/dist/cjs/classes/queue-getters.js +34 -14
- package/dist/node_modules/bullmq/dist/cjs/classes/queue.js +19 -13
- package/dist/node_modules/bullmq/dist/cjs/classes/redis-connection.js +16 -9
- package/dist/node_modules/bullmq/dist/cjs/classes/repeat.js +1 -1
- package/dist/node_modules/bullmq/dist/cjs/classes/sandbox.js +54 -28
- package/dist/node_modules/bullmq/dist/cjs/classes/scripts.js +141 -39
- package/dist/node_modules/bullmq/dist/cjs/classes/worker.js +191 -182
- package/dist/node_modules/bullmq/dist/cjs/commands/addDelayedJob-6.lua +6 -17
- package/dist/node_modules/bullmq/dist/cjs/commands/addJobScheduler-11.lua +123 -0
- package/dist/node_modules/bullmq/dist/{esm/commands/addParentJob-4.lua → cjs/commands/addParentJob-5.lua} +7 -6
- package/dist/node_modules/bullmq/dist/cjs/commands/{addPrioritizedJob-8.lua → addPrioritizedJob-9.lua} +11 -10
- package/dist/node_modules/bullmq/dist/cjs/commands/addRepeatableJob-2.lua +2 -2
- package/dist/node_modules/bullmq/dist/{esm/commands/addStandardJob-8.lua → cjs/commands/addStandardJob-9.lua} +9 -8
- package/dist/node_modules/bullmq/dist/cjs/commands/cleanJobsInSet-3.lua +9 -5
- package/dist/node_modules/bullmq/dist/cjs/commands/drain-5.lua +16 -16
- package/dist/node_modules/bullmq/dist/cjs/commands/getDependencyCounts-4.lua +31 -0
- package/dist/node_modules/bullmq/dist/cjs/commands/getState-8.lua +5 -5
- package/dist/node_modules/bullmq/dist/cjs/commands/getStateV2-8.lua +8 -8
- package/dist/node_modules/bullmq/dist/cjs/commands/includes/addDelayedJob.lua +23 -0
- package/dist/node_modules/bullmq/dist/cjs/commands/includes/addJobFromScheduler.lua +37 -0
- package/dist/node_modules/bullmq/dist/cjs/commands/includes/addJobWithPriority.lua +2 -2
- package/dist/node_modules/bullmq/dist/cjs/commands/includes/cleanList.lua +4 -2
- package/dist/node_modules/bullmq/dist/cjs/commands/includes/cleanSet.lua +3 -11
- package/dist/node_modules/bullmq/dist/cjs/commands/includes/collectMetrics.lua +1 -1
- package/dist/node_modules/bullmq/dist/cjs/commands/includes/deduplicateJob.lua +63 -18
- package/dist/node_modules/bullmq/dist/cjs/commands/includes/filterOutJobsToIgnore.lua +14 -0
- package/dist/node_modules/bullmq/dist/cjs/commands/includes/getNextDelayedTimestamp.lua +1 -1
- package/dist/node_modules/bullmq/dist/cjs/commands/includes/getOrSetMaxEvents.lua +6 -6
- package/dist/node_modules/bullmq/dist/cjs/commands/includes/getPriorityScore.lua +8 -0
- package/dist/node_modules/bullmq/dist/cjs/commands/includes/isJobSchedulerJob.lua +15 -0
- package/dist/node_modules/bullmq/dist/cjs/commands/includes/isLocked.lua +1 -0
- package/dist/node_modules/bullmq/dist/cjs/commands/includes/moveChildFromDependenciesIfNeeded.lua +77 -0
- package/dist/node_modules/bullmq/dist/cjs/commands/includes/{moveJobFromPriorityToActive.lua → moveJobFromPrioritizedToActive.lua} +1 -1
- package/dist/node_modules/bullmq/dist/cjs/commands/includes/moveParentToWait.lua +45 -0
- package/dist/node_modules/bullmq/dist/cjs/commands/includes/moveParentToWaitIfNeeded.lua +9 -50
- package/dist/node_modules/bullmq/dist/cjs/commands/includes/moveParentToWaitIfNoPendingDependencies.lua +13 -0
- package/dist/node_modules/bullmq/dist/cjs/commands/includes/prepareJobForProcessing.lua +2 -1
- package/dist/node_modules/bullmq/dist/cjs/commands/includes/promoteDelayedJobs.lua +7 -3
- package/dist/node_modules/bullmq/dist/cjs/commands/includes/removeDeduplicationKeyIfNeededOnFinalization.lua +23 -0
- package/dist/node_modules/bullmq/dist/cjs/commands/includes/removeDeduplicationKeyIfNeededOnRemoval.lua +16 -0
- package/dist/node_modules/bullmq/dist/cjs/commands/includes/removeJob.lua +2 -2
- package/dist/node_modules/bullmq/dist/cjs/commands/includes/removeJobKeys.lua +2 -2
- package/dist/node_modules/bullmq/dist/cjs/commands/includes/removeJobWithChildren.lua +95 -0
- package/dist/node_modules/bullmq/dist/cjs/commands/includes/removeListJobs.lua +7 -1
- package/dist/node_modules/bullmq/dist/cjs/commands/includes/removeParentDependencyKey.lua +5 -5
- package/dist/node_modules/bullmq/dist/cjs/commands/includes/removeZSetJobs.lua +2 -8
- package/dist/node_modules/bullmq/dist/cjs/commands/includes/storeJob.lua +2 -2
- package/dist/node_modules/bullmq/dist/cjs/commands/includes/storeJobScheduler.lua +52 -0
- package/dist/node_modules/bullmq/dist/cjs/commands/includes/trimEvents.lua +1 -1
- package/dist/node_modules/bullmq/dist/cjs/commands/includes/updateExistingJobsParent.lua +1 -1
- package/dist/node_modules/bullmq/dist/cjs/commands/includes/updateJobFields.lua +5 -5
- package/dist/node_modules/bullmq/dist/cjs/commands/includes/updateParentDepsIfNeeded.lua +2 -2
- package/dist/node_modules/bullmq/dist/cjs/commands/isFinished-3.lua +2 -2
- package/dist/node_modules/bullmq/dist/cjs/commands/moveJobFromActiveToWait-9.lua +63 -0
- package/dist/node_modules/bullmq/dist/cjs/commands/moveStalledJobsToWait-8.lua +109 -0
- package/dist/node_modules/bullmq/dist/cjs/commands/moveToActive-11.lua +3 -2
- package/dist/node_modules/bullmq/dist/cjs/commands/moveToFinished-14.lua +52 -52
- package/dist/node_modules/bullmq/dist/cjs/commands/moveToWaitingChildren-8.lua +106 -0
- package/dist/node_modules/bullmq/dist/cjs/commands/removeJob-2.lua +18 -66
- package/dist/node_modules/bullmq/dist/cjs/commands/removeJobScheduler-3.lua +1 -1
- package/dist/node_modules/bullmq/dist/cjs/commands/removeUnprocessedChildren-2.lua +31 -0
- package/dist/node_modules/bullmq/dist/cjs/commands/retryJob-11.lua +11 -5
- package/dist/node_modules/bullmq/dist/cjs/commands/updateJobScheduler-12.lua +90 -0
- package/dist/node_modules/bullmq/dist/cjs/commands/updateRepeatableJobMillis-1.lua +1 -1
- package/dist/node_modules/bullmq/dist/cjs/enums/child-command.js +2 -0
- package/dist/node_modules/bullmq/dist/cjs/enums/error-code.js +2 -1
- package/dist/node_modules/bullmq/dist/cjs/enums/parent-command.js +5 -2
- package/dist/node_modules/bullmq/dist/cjs/index.js +1 -1
- package/dist/node_modules/bullmq/dist/cjs/interfaces/index.js +2 -1
- package/dist/node_modules/bullmq/dist/cjs/interfaces/{debounce-options.js → parent-options.js} +1 -1
- package/dist/node_modules/bullmq/dist/cjs/interfaces/receiver.js +3 -0
- package/dist/node_modules/bullmq/dist/cjs/scripts/addDelayedJob-6.js +163 -84
- package/dist/node_modules/bullmq/dist/cjs/scripts/addJobScheduler-11.js +465 -0
- package/dist/node_modules/bullmq/dist/cjs/scripts/{addParentJob-4.js → addParentJob-5.js} +147 -75
- package/dist/node_modules/bullmq/dist/cjs/scripts/{addPrioritizedJob-8.js → addPrioritizedJob-9.js} +151 -79
- package/dist/node_modules/bullmq/dist/cjs/scripts/addRepeatableJob-2.js +18 -13
- package/dist/node_modules/bullmq/dist/cjs/scripts/{addStandardJob-8.js → addStandardJob-9.js} +149 -77
- package/dist/node_modules/bullmq/dist/cjs/scripts/changeDelay-4.js +7 -7
- package/dist/node_modules/bullmq/dist/cjs/scripts/changePriority-7.js +8 -2
- package/dist/node_modules/bullmq/dist/cjs/scripts/cleanJobsInSet-3.js +45 -29
- package/dist/node_modules/bullmq/dist/cjs/scripts/drain-5.js +49 -35
- package/dist/node_modules/bullmq/dist/cjs/scripts/getDependencyCounts-4.js +37 -0
- package/dist/node_modules/bullmq/dist/cjs/scripts/getState-8.js +5 -5
- package/dist/node_modules/bullmq/dist/cjs/scripts/getStateV2-8.js +8 -8
- package/dist/node_modules/bullmq/dist/cjs/scripts/index.js +10 -7
- package/dist/node_modules/bullmq/dist/cjs/scripts/isFinished-3.js +2 -2
- package/dist/node_modules/bullmq/dist/cjs/scripts/{moveJobFromActiveToWait-10.js → moveJobFromActiveToWait-9.js} +57 -37
- package/dist/node_modules/bullmq/dist/cjs/scripts/moveJobsToWait-8.js +6 -6
- package/dist/node_modules/bullmq/dist/cjs/scripts/moveStalledJobsToWait-8.js +171 -0
- package/dist/node_modules/bullmq/dist/cjs/scripts/moveToActive-11.js +18 -8
- package/dist/node_modules/bullmq/dist/cjs/scripts/moveToDelayed-8.js +12 -12
- package/dist/node_modules/bullmq/dist/cjs/scripts/moveToFinished-14.js +218 -155
- package/dist/node_modules/bullmq/dist/cjs/scripts/moveToWaitingChildren-8.js +529 -0
- package/dist/node_modules/bullmq/dist/cjs/scripts/obliterate-2.js +33 -20
- package/dist/node_modules/bullmq/dist/cjs/scripts/pause-7.js +1 -1
- package/dist/node_modules/bullmq/dist/cjs/scripts/promote-9.js +8 -2
- package/dist/node_modules/bullmq/dist/cjs/scripts/removeChildDependency-1.js +7 -7
- package/dist/node_modules/bullmq/dist/cjs/scripts/removeJob-2.js +120 -63
- package/dist/node_modules/bullmq/dist/cjs/scripts/removeJobScheduler-3.js +3 -3
- package/dist/node_modules/bullmq/dist/cjs/scripts/removeRepeatable-3.js +2 -2
- package/dist/node_modules/bullmq/dist/cjs/scripts/removeUnprocessedChildren-2.js +339 -0
- package/dist/node_modules/bullmq/dist/cjs/scripts/reprocessJob-8.js +6 -6
- package/dist/node_modules/bullmq/dist/cjs/scripts/retryJob-11.js +47 -26
- package/dist/node_modules/bullmq/dist/cjs/scripts/updateJobScheduler-12.js +274 -0
- package/dist/node_modules/bullmq/dist/cjs/scripts/updateProgress-3.js +6 -6
- package/dist/node_modules/bullmq/dist/cjs/scripts/updateRepeatableJobMillis-1.js +1 -1
- package/dist/node_modules/bullmq/dist/cjs/tsconfig-cjs.tsbuildinfo +1 -1
- package/dist/node_modules/bullmq/dist/cjs/types/deduplication-options.js +3 -0
- package/dist/node_modules/bullmq/dist/cjs/types/index.js +3 -0
- package/dist/node_modules/bullmq/dist/cjs/types/job-progress.js +3 -0
- package/dist/node_modules/bullmq/dist/cjs/types/script-queue-context.js +3 -0
- package/dist/node_modules/bullmq/dist/cjs/utils.js +29 -1
- package/dist/node_modules/bullmq/dist/cjs/version.js +1 -1
- package/dist/node_modules/bullmq/dist/esm/classes/backoffs.d.ts +1 -1
- package/dist/node_modules/bullmq/dist/esm/classes/backoffs.js +18 -5
- package/dist/node_modules/bullmq/dist/esm/classes/child-pool.d.ts +1 -1
- package/dist/node_modules/bullmq/dist/esm/classes/child-pool.js +7 -2
- package/dist/node_modules/bullmq/dist/esm/classes/child-processor.d.ts +3 -2
- package/dist/node_modules/bullmq/dist/esm/classes/child-processor.js +59 -5
- package/dist/node_modules/bullmq/dist/esm/classes/child.js +3 -1
- package/dist/node_modules/bullmq/dist/esm/classes/errors/index.d.ts +2 -1
- package/dist/node_modules/bullmq/dist/esm/classes/errors/index.js +2 -1
- package/dist/node_modules/bullmq/dist/esm/classes/errors/waiting-error.d.ts +10 -0
- package/dist/node_modules/bullmq/dist/esm/classes/errors/waiting-error.js +15 -0
- package/dist/node_modules/bullmq/dist/esm/classes/flow-producer.d.ts +3 -9
- package/dist/node_modules/bullmq/dist/esm/classes/flow-producer.js +21 -5
- package/dist/node_modules/bullmq/dist/esm/classes/index.d.ts +1 -0
- package/dist/node_modules/bullmq/dist/esm/classes/index.js +1 -0
- package/dist/node_modules/bullmq/dist/esm/classes/job-scheduler.d.ts +2 -2
- package/dist/node_modules/bullmq/dist/esm/classes/job-scheduler.js +88 -62
- package/dist/node_modules/bullmq/dist/esm/classes/job.d.ts +69 -19
- package/dist/node_modules/bullmq/dist/esm/classes/job.js +217 -110
- package/dist/node_modules/bullmq/dist/esm/classes/main-base.d.ts +2 -3
- package/dist/node_modules/bullmq/dist/esm/classes/main-base.js +1 -1
- package/dist/node_modules/bullmq/dist/esm/classes/queue-base.d.ts +2 -5
- package/dist/node_modules/bullmq/dist/esm/classes/queue-base.js +11 -10
- package/dist/node_modules/bullmq/dist/esm/classes/queue-events-producer.d.ts +2 -2
- package/dist/node_modules/bullmq/dist/esm/classes/queue-events.d.ts +118 -29
- package/dist/node_modules/bullmq/dist/esm/classes/queue-getters.d.ts +20 -13
- package/dist/node_modules/bullmq/dist/esm/classes/queue-getters.js +34 -14
- package/dist/node_modules/bullmq/dist/esm/classes/queue.d.ts +19 -16
- package/dist/node_modules/bullmq/dist/esm/classes/queue.js +19 -13
- package/dist/node_modules/bullmq/dist/esm/classes/redis-connection.d.ts +7 -3
- package/dist/node_modules/bullmq/dist/esm/classes/redis-connection.js +16 -9
- package/dist/node_modules/bullmq/dist/esm/classes/repeat.js +1 -1
- package/dist/node_modules/bullmq/dist/esm/classes/sandbox.js +54 -28
- package/dist/node_modules/bullmq/dist/esm/classes/scripts.d.ts +20 -13
- package/dist/node_modules/bullmq/dist/esm/classes/scripts.js +141 -39
- package/dist/node_modules/bullmq/dist/esm/classes/worker.d.ts +28 -7
- package/dist/node_modules/bullmq/dist/esm/classes/worker.js +192 -183
- package/dist/node_modules/bullmq/dist/esm/commands/addDelayedJob-6.lua +6 -17
- package/dist/node_modules/bullmq/dist/esm/commands/addJobScheduler-11.lua +123 -0
- package/dist/node_modules/bullmq/dist/{cjs/commands/addParentJob-4.lua → esm/commands/addParentJob-5.lua} +7 -6
- package/dist/node_modules/bullmq/dist/esm/commands/{addPrioritizedJob-8.lua → addPrioritizedJob-9.lua} +11 -10
- package/dist/node_modules/bullmq/dist/esm/commands/addRepeatableJob-2.lua +2 -2
- package/dist/node_modules/bullmq/dist/{cjs/commands/addStandardJob-8.lua → esm/commands/addStandardJob-9.lua} +9 -8
- package/dist/node_modules/bullmq/dist/esm/commands/cleanJobsInSet-3.lua +9 -5
- package/dist/node_modules/bullmq/dist/esm/commands/drain-5.lua +16 -16
- package/dist/node_modules/bullmq/dist/esm/commands/getDependencyCounts-4.lua +31 -0
- package/dist/node_modules/bullmq/dist/esm/commands/getState-8.lua +5 -5
- package/dist/node_modules/bullmq/dist/esm/commands/getStateV2-8.lua +8 -8
- package/dist/node_modules/bullmq/dist/esm/commands/includes/addDelayedJob.lua +23 -0
- package/dist/node_modules/bullmq/dist/esm/commands/includes/addJobFromScheduler.lua +37 -0
- package/dist/node_modules/bullmq/dist/esm/commands/includes/addJobWithPriority.lua +2 -2
- package/dist/node_modules/bullmq/dist/esm/commands/includes/cleanList.lua +4 -2
- package/dist/node_modules/bullmq/dist/esm/commands/includes/cleanSet.lua +3 -11
- package/dist/node_modules/bullmq/dist/esm/commands/includes/collectMetrics.lua +1 -1
- package/dist/node_modules/bullmq/dist/esm/commands/includes/deduplicateJob.lua +63 -18
- package/dist/node_modules/bullmq/dist/esm/commands/includes/filterOutJobsToIgnore.lua +14 -0
- package/dist/node_modules/bullmq/dist/esm/commands/includes/getNextDelayedTimestamp.lua +1 -1
- package/dist/node_modules/bullmq/dist/esm/commands/includes/getOrSetMaxEvents.lua +6 -6
- package/dist/node_modules/bullmq/dist/esm/commands/includes/getPriorityScore.lua +8 -0
- package/dist/node_modules/bullmq/dist/esm/commands/includes/isJobSchedulerJob.lua +15 -0
- package/dist/node_modules/bullmq/dist/esm/commands/includes/isLocked.lua +1 -0
- package/dist/node_modules/bullmq/dist/esm/commands/includes/moveChildFromDependenciesIfNeeded.lua +77 -0
- package/dist/node_modules/bullmq/dist/esm/commands/includes/{moveJobFromPriorityToActive.lua → moveJobFromPrioritizedToActive.lua} +1 -1
- package/dist/node_modules/bullmq/dist/esm/commands/includes/moveParentToWait.lua +45 -0
- package/dist/node_modules/bullmq/dist/esm/commands/includes/moveParentToWaitIfNeeded.lua +9 -50
- package/dist/node_modules/bullmq/dist/esm/commands/includes/moveParentToWaitIfNoPendingDependencies.lua +13 -0
- package/dist/node_modules/bullmq/dist/esm/commands/includes/prepareJobForProcessing.lua +2 -1
- package/dist/node_modules/bullmq/dist/esm/commands/includes/promoteDelayedJobs.lua +7 -3
- package/dist/node_modules/bullmq/dist/esm/commands/includes/removeDeduplicationKeyIfNeededOnFinalization.lua +23 -0
- package/dist/node_modules/bullmq/dist/esm/commands/includes/removeDeduplicationKeyIfNeededOnRemoval.lua +16 -0
- package/dist/node_modules/bullmq/dist/esm/commands/includes/removeJob.lua +2 -2
- package/dist/node_modules/bullmq/dist/esm/commands/includes/removeJobKeys.lua +2 -2
- package/dist/node_modules/bullmq/dist/esm/commands/includes/removeJobWithChildren.lua +95 -0
- package/dist/node_modules/bullmq/dist/esm/commands/includes/removeListJobs.lua +7 -1
- package/dist/node_modules/bullmq/dist/esm/commands/includes/removeParentDependencyKey.lua +5 -5
- package/dist/node_modules/bullmq/dist/esm/commands/includes/removeZSetJobs.lua +2 -8
- package/dist/node_modules/bullmq/dist/esm/commands/includes/storeJob.lua +2 -2
- package/dist/node_modules/bullmq/dist/esm/commands/includes/storeJobScheduler.lua +52 -0
- package/dist/node_modules/bullmq/dist/esm/commands/includes/trimEvents.lua +1 -1
- package/dist/node_modules/bullmq/dist/esm/commands/includes/updateExistingJobsParent.lua +1 -1
- package/dist/node_modules/bullmq/dist/esm/commands/includes/updateJobFields.lua +5 -5
- package/dist/node_modules/bullmq/dist/esm/commands/includes/updateParentDepsIfNeeded.lua +2 -2
- package/dist/node_modules/bullmq/dist/esm/commands/isFinished-3.lua +2 -2
- package/dist/node_modules/bullmq/dist/esm/commands/moveJobFromActiveToWait-9.lua +63 -0
- package/dist/node_modules/bullmq/dist/esm/commands/moveStalledJobsToWait-8.lua +109 -0
- package/dist/node_modules/bullmq/dist/esm/commands/moveToActive-11.lua +3 -2
- package/dist/node_modules/bullmq/dist/esm/commands/moveToFinished-14.lua +52 -52
- package/dist/node_modules/bullmq/dist/esm/commands/moveToWaitingChildren-8.lua +106 -0
- package/dist/node_modules/bullmq/dist/esm/commands/removeJob-2.lua +18 -66
- package/dist/node_modules/bullmq/dist/esm/commands/removeJobScheduler-3.lua +1 -1
- package/dist/node_modules/bullmq/dist/esm/commands/removeUnprocessedChildren-2.lua +31 -0
- package/dist/node_modules/bullmq/dist/esm/commands/retryJob-11.lua +11 -5
- package/dist/node_modules/bullmq/dist/esm/commands/updateJobScheduler-12.lua +90 -0
- package/dist/node_modules/bullmq/dist/esm/commands/updateRepeatableJobMillis-1.lua +1 -1
- package/dist/node_modules/bullmq/dist/esm/enums/child-command.d.ts +3 -1
- package/dist/node_modules/bullmq/dist/esm/enums/child-command.js +2 -0
- package/dist/node_modules/bullmq/dist/esm/enums/error-code.d.ts +3 -2
- package/dist/node_modules/bullmq/dist/esm/enums/error-code.js +2 -1
- package/dist/node_modules/bullmq/dist/esm/enums/parent-command.d.ts +5 -2
- package/dist/node_modules/bullmq/dist/esm/enums/parent-command.js +5 -2
- package/dist/node_modules/bullmq/dist/esm/interfaces/backoff-options.d.ts +5 -0
- package/dist/node_modules/bullmq/dist/esm/interfaces/base-job-options.d.ts +3 -9
- package/dist/node_modules/bullmq/dist/esm/interfaces/child-message.d.ts +1 -0
- package/dist/node_modules/bullmq/dist/esm/interfaces/index.d.ts +2 -1
- package/dist/node_modules/bullmq/dist/esm/interfaces/index.js +2 -1
- package/dist/node_modules/bullmq/dist/esm/interfaces/job-json.d.ts +6 -2
- package/dist/node_modules/bullmq/dist/esm/interfaces/job-scheduler-json.d.ts +7 -4
- package/dist/node_modules/bullmq/dist/esm/interfaces/minimal-job.d.ts +34 -15
- package/dist/node_modules/bullmq/dist/esm/interfaces/parent-options.d.ts +11 -0
- package/dist/node_modules/bullmq/dist/esm/interfaces/parent-options.js +2 -0
- package/dist/node_modules/bullmq/dist/esm/interfaces/parent.d.ts +6 -2
- package/dist/node_modules/bullmq/dist/esm/interfaces/queue-options.d.ts +15 -6
- package/dist/node_modules/bullmq/dist/esm/interfaces/receiver.d.ts +4 -0
- package/dist/node_modules/bullmq/dist/esm/interfaces/receiver.js +2 -0
- package/dist/node_modules/bullmq/dist/esm/interfaces/repeat-options.d.ts +1 -2
- package/dist/node_modules/bullmq/dist/esm/interfaces/repeatable-options.d.ts +2 -0
- package/dist/node_modules/bullmq/dist/esm/interfaces/sandboxed-job.d.ts +3 -2
- package/dist/node_modules/bullmq/dist/esm/interfaces/sandboxed-options.d.ts +1 -1
- package/dist/node_modules/bullmq/dist/esm/interfaces/telemetry.d.ts +18 -15
- package/dist/node_modules/bullmq/dist/esm/interfaces/worker-options.d.ts +10 -10
- package/dist/node_modules/bullmq/dist/esm/scripts/addDelayedJob-6.js +163 -84
- package/dist/node_modules/bullmq/dist/esm/scripts/addJobScheduler-11.js +462 -0
- package/dist/node_modules/bullmq/dist/esm/scripts/{addParentJob-4.js → addParentJob-5.js} +147 -75
- package/dist/node_modules/bullmq/dist/esm/scripts/{addPrioritizedJob-8.js → addPrioritizedJob-9.js} +151 -79
- package/dist/node_modules/bullmq/dist/esm/scripts/addRepeatableJob-2.js +18 -13
- package/dist/node_modules/bullmq/dist/esm/scripts/{addStandardJob-8.js → addStandardJob-9.js} +149 -77
- package/dist/node_modules/bullmq/dist/esm/scripts/changeDelay-4.js +7 -7
- package/dist/node_modules/bullmq/dist/esm/scripts/changePriority-7.js +8 -2
- package/dist/node_modules/bullmq/dist/esm/scripts/cleanJobsInSet-3.js +45 -29
- package/dist/node_modules/bullmq/dist/esm/scripts/drain-5.js +49 -35
- package/dist/node_modules/bullmq/dist/esm/scripts/getDependencyCounts-4.d.ts +5 -0
- package/dist/node_modules/bullmq/dist/esm/scripts/getDependencyCounts-4.js +34 -0
- package/dist/node_modules/bullmq/dist/esm/scripts/getState-8.js +5 -5
- package/dist/node_modules/bullmq/dist/esm/scripts/getStateV2-8.js +8 -8
- package/dist/node_modules/bullmq/dist/esm/scripts/index.d.ts +10 -7
- package/dist/node_modules/bullmq/dist/esm/scripts/index.js +10 -7
- package/dist/node_modules/bullmq/dist/esm/scripts/isFinished-3.js +2 -2
- package/dist/node_modules/bullmq/dist/esm/scripts/{moveJobFromActiveToWait-10.js → moveJobFromActiveToWait-9.js} +57 -37
- package/dist/node_modules/bullmq/dist/esm/scripts/moveJobsToWait-8.js +6 -6
- package/dist/node_modules/bullmq/dist/esm/scripts/moveStalledJobsToWait-8.js +168 -0
- package/dist/node_modules/bullmq/dist/esm/scripts/moveToActive-11.js +18 -8
- package/dist/node_modules/bullmq/dist/esm/scripts/moveToDelayed-8.js +12 -12
- package/dist/node_modules/bullmq/dist/esm/scripts/moveToFinished-14.js +218 -155
- package/dist/node_modules/bullmq/dist/esm/scripts/moveToWaitingChildren-8.js +526 -0
- package/dist/node_modules/bullmq/dist/esm/scripts/obliterate-2.js +33 -20
- package/dist/node_modules/bullmq/dist/esm/scripts/pause-7.js +1 -1
- package/dist/node_modules/bullmq/dist/esm/scripts/promote-9.js +8 -2
- package/dist/node_modules/bullmq/dist/esm/scripts/removeChildDependency-1.js +7 -7
- package/dist/node_modules/bullmq/dist/esm/scripts/removeJob-2.js +120 -63
- package/dist/node_modules/bullmq/dist/esm/scripts/removeJobScheduler-3.js +3 -3
- package/dist/node_modules/bullmq/dist/esm/scripts/removeRepeatable-3.js +2 -2
- package/dist/node_modules/bullmq/dist/esm/scripts/removeUnprocessedChildren-2.d.ts +5 -0
- package/dist/node_modules/bullmq/dist/esm/scripts/removeUnprocessedChildren-2.js +336 -0
- package/dist/node_modules/bullmq/dist/esm/scripts/reprocessJob-8.js +6 -6
- package/dist/node_modules/bullmq/dist/esm/scripts/retryJob-11.js +47 -26
- package/dist/node_modules/bullmq/dist/esm/scripts/updateJobScheduler-12.d.ts +5 -0
- package/dist/node_modules/bullmq/dist/esm/scripts/updateJobScheduler-12.js +271 -0
- package/dist/node_modules/bullmq/dist/esm/scripts/updateProgress-3.js +6 -6
- package/dist/node_modules/bullmq/dist/esm/scripts/updateRepeatableJobMillis-1.js +1 -1
- package/dist/node_modules/bullmq/dist/esm/tsconfig.tsbuildinfo +1 -1
- package/dist/node_modules/bullmq/dist/esm/types/deduplication-options.d.ts +22 -0
- package/dist/node_modules/bullmq/dist/esm/types/deduplication-options.js +2 -0
- package/dist/node_modules/bullmq/dist/esm/types/index.d.ts +3 -0
- package/dist/node_modules/bullmq/dist/esm/types/index.js +3 -0
- package/dist/node_modules/bullmq/dist/esm/types/job-options.d.ts +19 -8
- package/dist/node_modules/bullmq/dist/esm/types/job-progress.d.ts +1 -0
- package/dist/node_modules/bullmq/dist/esm/types/job-progress.js +2 -0
- package/dist/node_modules/bullmq/dist/esm/types/script-queue-context.d.ts +2 -0
- package/dist/node_modules/bullmq/dist/esm/types/script-queue-context.js +2 -0
- package/dist/node_modules/bullmq/dist/esm/utils.d.ts +25 -5
- package/dist/node_modules/bullmq/dist/esm/utils.js +27 -0
- package/dist/node_modules/bullmq/dist/esm/version.d.ts +1 -1
- package/dist/node_modules/bullmq/dist/esm/version.js +1 -1
- package/dist/node_modules/bullmq/package.json +1 -1
- package/package.json +7 -7
- package/dist/node_modules/bullmq/dist/cjs/commands/addJobScheduler-2.lua +0 -91
- package/dist/node_modules/bullmq/dist/cjs/commands/includes/moveParentFromWaitingChildrenToFailed.lua +0 -53
- package/dist/node_modules/bullmq/dist/cjs/commands/includes/removeDeduplicationKey.lua +0 -11
- package/dist/node_modules/bullmq/dist/cjs/commands/includes/removeDeduplicationKeyIfNeeded.lua +0 -14
- package/dist/node_modules/bullmq/dist/cjs/commands/moveJobFromActiveToWait-10.lua +0 -60
- package/dist/node_modules/bullmq/dist/cjs/commands/moveStalledJobsToWait-9.lua +0 -156
- package/dist/node_modules/bullmq/dist/cjs/commands/moveToWaitingChildren-5.lua +0 -68
- package/dist/node_modules/bullmq/dist/cjs/scripts/addJobScheduler-2.js +0 -237
- package/dist/node_modules/bullmq/dist/cjs/scripts/moveStalledJobsToWait-9.js +0 -529
- package/dist/node_modules/bullmq/dist/cjs/scripts/moveToWaitingChildren-5.js +0 -83
- package/dist/node_modules/bullmq/dist/esm/commands/addJobScheduler-2.lua +0 -91
- package/dist/node_modules/bullmq/dist/esm/commands/includes/moveParentFromWaitingChildrenToFailed.lua +0 -53
- package/dist/node_modules/bullmq/dist/esm/commands/includes/removeDeduplicationKey.lua +0 -11
- package/dist/node_modules/bullmq/dist/esm/commands/includes/removeDeduplicationKeyIfNeeded.lua +0 -14
- package/dist/node_modules/bullmq/dist/esm/commands/moveJobFromActiveToWait-10.lua +0 -60
- package/dist/node_modules/bullmq/dist/esm/commands/moveStalledJobsToWait-9.lua +0 -156
- package/dist/node_modules/bullmq/dist/esm/commands/moveToWaitingChildren-5.lua +0 -68
- package/dist/node_modules/bullmq/dist/esm/interfaces/debounce-options.d.ts +0 -13
- package/dist/node_modules/bullmq/dist/esm/interfaces/debounce-options.js +0 -2
- package/dist/node_modules/bullmq/dist/esm/scripts/addJobScheduler-2.js +0 -234
- package/dist/node_modules/bullmq/dist/esm/scripts/moveStalledJobsToWait-9.js +0 -526
- package/dist/node_modules/bullmq/dist/esm/scripts/moveToWaitingChildren-5.js +0 -80
- /package/dist/node_modules/bullmq/dist/esm/scripts/{addJobScheduler-2.d.ts → addJobScheduler-11.d.ts} +0 -0
- /package/dist/node_modules/bullmq/dist/esm/scripts/{addParentJob-4.d.ts → addParentJob-5.d.ts} +0 -0
- /package/dist/node_modules/bullmq/dist/esm/scripts/{addPrioritizedJob-8.d.ts → addPrioritizedJob-9.d.ts} +0 -0
- /package/dist/node_modules/bullmq/dist/esm/scripts/{addStandardJob-8.d.ts → addStandardJob-9.d.ts} +0 -0
- /package/dist/node_modules/bullmq/dist/esm/scripts/{moveJobFromActiveToWait-10.d.ts → moveJobFromActiveToWait-9.d.ts} +0 -0
- /package/dist/node_modules/bullmq/dist/esm/scripts/{moveStalledJobsToWait-9.d.ts → moveStalledJobsToWait-8.d.ts} +0 -0
- /package/dist/node_modules/bullmq/dist/esm/scripts/{moveToWaitingChildren-5.d.ts → moveToWaitingChildren-8.d.ts} +0 -0
|
@@ -1,529 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.moveStalledJobsToWait = void 0;
|
|
4
|
-
const content = `--[[
|
|
5
|
-
Move stalled jobs to wait.
|
|
6
|
-
Input:
|
|
7
|
-
KEYS[1] 'stalled' (SET)
|
|
8
|
-
KEYS[2] 'wait', (LIST)
|
|
9
|
-
KEYS[3] 'active', (LIST)
|
|
10
|
-
KEYS[4] 'failed', (ZSET)
|
|
11
|
-
KEYS[5] 'stalled-check', (KEY)
|
|
12
|
-
KEYS[6] 'meta', (KEY)
|
|
13
|
-
KEYS[7] 'paused', (LIST)
|
|
14
|
-
KEYS[8] 'marker'
|
|
15
|
-
KEYS[9] 'event stream' (STREAM)
|
|
16
|
-
ARGV[1] Max stalled job count
|
|
17
|
-
ARGV[2] queue.toKey('')
|
|
18
|
-
ARGV[3] timestamp
|
|
19
|
-
ARGV[4] max check time
|
|
20
|
-
Events:
|
|
21
|
-
'stalled' with stalled job id.
|
|
22
|
-
]]
|
|
23
|
-
local rcall = redis.call
|
|
24
|
-
-- Includes
|
|
25
|
-
--[[
|
|
26
|
-
Function to add job in target list and add marker if needed.
|
|
27
|
-
]]
|
|
28
|
-
-- Includes
|
|
29
|
-
--[[
|
|
30
|
-
Add marker if needed when a job is available.
|
|
31
|
-
]]
|
|
32
|
-
local function addBaseMarkerIfNeeded(markerKey, isPausedOrMaxed)
|
|
33
|
-
if not isPausedOrMaxed then
|
|
34
|
-
rcall("ZADD", markerKey, 0, "0")
|
|
35
|
-
end
|
|
36
|
-
end
|
|
37
|
-
local function addJobInTargetList(targetKey, markerKey, pushCmd, isPausedOrMaxed, jobId)
|
|
38
|
-
rcall(pushCmd, targetKey, jobId)
|
|
39
|
-
addBaseMarkerIfNeeded(markerKey, isPausedOrMaxed)
|
|
40
|
-
end
|
|
41
|
-
--[[
|
|
42
|
-
Function to loop in batches.
|
|
43
|
-
Just a bit of warning, some commands as ZREM
|
|
44
|
-
could receive a maximum of 7000 parameters per call.
|
|
45
|
-
]]
|
|
46
|
-
local function batches(n, batchSize)
|
|
47
|
-
local i = 0
|
|
48
|
-
return function()
|
|
49
|
-
local from = i * batchSize + 1
|
|
50
|
-
i = i + 1
|
|
51
|
-
if (from <= n) then
|
|
52
|
-
local to = math.min(from + batchSize - 1, n)
|
|
53
|
-
return from, to
|
|
54
|
-
end
|
|
55
|
-
end
|
|
56
|
-
end
|
|
57
|
-
--[[
|
|
58
|
-
Function to check for the meta.paused key to decide if we are paused or not
|
|
59
|
-
(since an empty list and !EXISTS are not really the same).
|
|
60
|
-
]]
|
|
61
|
-
local function getTargetQueueList(queueMetaKey, activeKey, waitKey, pausedKey)
|
|
62
|
-
local queueAttributes = rcall("HMGET", queueMetaKey, "paused", "concurrency")
|
|
63
|
-
if queueAttributes[1] then
|
|
64
|
-
return pausedKey, true
|
|
65
|
-
else
|
|
66
|
-
if queueAttributes[2] then
|
|
67
|
-
local activeCount = rcall("LLEN", activeKey)
|
|
68
|
-
if activeCount >= tonumber(queueAttributes[2]) then
|
|
69
|
-
return waitKey, true
|
|
70
|
-
else
|
|
71
|
-
return waitKey, false
|
|
72
|
-
end
|
|
73
|
-
end
|
|
74
|
-
end
|
|
75
|
-
return waitKey, false
|
|
76
|
-
end
|
|
77
|
-
--[[
|
|
78
|
-
Function to recursively move from waitingChildren to failed.
|
|
79
|
-
]]
|
|
80
|
-
-- Includes
|
|
81
|
-
--[[
|
|
82
|
-
Validate and move parent to active if needed.
|
|
83
|
-
]]
|
|
84
|
-
-- Includes
|
|
85
|
-
--[[
|
|
86
|
-
Add delay marker if needed.
|
|
87
|
-
]]
|
|
88
|
-
-- Includes
|
|
89
|
-
--[[
|
|
90
|
-
Function to return the next delayed job timestamp.
|
|
91
|
-
]]
|
|
92
|
-
local function getNextDelayedTimestamp(delayedKey)
|
|
93
|
-
local result = rcall("ZRANGE", delayedKey, 0, 0, "WITHSCORES")
|
|
94
|
-
if #result then
|
|
95
|
-
local nextTimestamp = tonumber(result[2])
|
|
96
|
-
if nextTimestamp ~= nil then
|
|
97
|
-
return nextTimestamp / 0x1000
|
|
98
|
-
end
|
|
99
|
-
end
|
|
100
|
-
end
|
|
101
|
-
local function addDelayMarkerIfNeeded(markerKey, delayedKey)
|
|
102
|
-
local nextTimestamp = getNextDelayedTimestamp(delayedKey)
|
|
103
|
-
if nextTimestamp ~= nil then
|
|
104
|
-
-- Replace the score of the marker with the newest known
|
|
105
|
-
-- next timestamp.
|
|
106
|
-
rcall("ZADD", markerKey, nextTimestamp, "1")
|
|
107
|
-
end
|
|
108
|
-
end
|
|
109
|
-
--[[
|
|
110
|
-
Function to add job considering priority.
|
|
111
|
-
]]
|
|
112
|
-
-- Includes
|
|
113
|
-
local function addJobWithPriority(markerKey, prioritizedKey, priority, jobId, priorityCounterKey,
|
|
114
|
-
isPausedOrMaxed)
|
|
115
|
-
local prioCounter = rcall("INCR", priorityCounterKey)
|
|
116
|
-
local score = priority * 0x100000000 + prioCounter % 0x100000000
|
|
117
|
-
rcall("ZADD", prioritizedKey, score, jobId)
|
|
118
|
-
addBaseMarkerIfNeeded(markerKey, isPausedOrMaxed)
|
|
119
|
-
end
|
|
120
|
-
--[[
|
|
121
|
-
Function to check if queue is paused or maxed
|
|
122
|
-
(since an empty list and !EXISTS are not really the same).
|
|
123
|
-
]]
|
|
124
|
-
local function isQueuePausedOrMaxed(queueMetaKey, activeKey)
|
|
125
|
-
local queueAttributes = rcall("HMGET", queueMetaKey, "paused", "concurrency")
|
|
126
|
-
if queueAttributes[1] then
|
|
127
|
-
return true
|
|
128
|
-
else
|
|
129
|
-
if queueAttributes[2] then
|
|
130
|
-
local activeCount = rcall("LLEN", activeKey)
|
|
131
|
-
return activeCount >= tonumber(queueAttributes[2])
|
|
132
|
-
end
|
|
133
|
-
end
|
|
134
|
-
return false
|
|
135
|
-
end
|
|
136
|
-
local function moveParentToWaitIfNeeded(parentQueueKey, parentDependenciesKey,
|
|
137
|
-
parentKey, parentId, timestamp)
|
|
138
|
-
local isParentActive = rcall("ZSCORE",
|
|
139
|
-
parentQueueKey .. ":waiting-children", parentId)
|
|
140
|
-
if rcall("SCARD", parentDependenciesKey) == 0 and isParentActive then
|
|
141
|
-
rcall("ZREM", parentQueueKey .. ":waiting-children", parentId)
|
|
142
|
-
local parentWaitKey = parentQueueKey .. ":wait"
|
|
143
|
-
local parentPausedKey = parentQueueKey .. ":paused"
|
|
144
|
-
local parentActiveKey = parentQueueKey .. ":active"
|
|
145
|
-
local parentMetaKey = parentQueueKey .. ":meta"
|
|
146
|
-
local parentMarkerKey = parentQueueKey .. ":marker"
|
|
147
|
-
local jobAttributes = rcall("HMGET", parentKey, "priority", "delay")
|
|
148
|
-
local priority = tonumber(jobAttributes[1]) or 0
|
|
149
|
-
local delay = tonumber(jobAttributes[2]) or 0
|
|
150
|
-
if delay > 0 then
|
|
151
|
-
local delayedTimestamp = tonumber(timestamp) + delay
|
|
152
|
-
local score = delayedTimestamp * 0x1000
|
|
153
|
-
local parentDelayedKey = parentQueueKey .. ":delayed"
|
|
154
|
-
rcall("ZADD", parentDelayedKey, score, parentId)
|
|
155
|
-
rcall("XADD", parentQueueKey .. ":events", "*", "event", "delayed",
|
|
156
|
-
"jobId", parentId, "delay", delayedTimestamp)
|
|
157
|
-
addDelayMarkerIfNeeded(parentMarkerKey, parentDelayedKey)
|
|
158
|
-
else
|
|
159
|
-
if priority == 0 then
|
|
160
|
-
local parentTarget, isParentPausedOrMaxed =
|
|
161
|
-
getTargetQueueList(parentMetaKey, parentActiveKey, parentWaitKey,
|
|
162
|
-
parentPausedKey)
|
|
163
|
-
addJobInTargetList(parentTarget, parentMarkerKey, "RPUSH", isParentPausedOrMaxed,
|
|
164
|
-
parentId)
|
|
165
|
-
else
|
|
166
|
-
local isPausedOrMaxed = isQueuePausedOrMaxed(parentMetaKey, parentActiveKey)
|
|
167
|
-
addJobWithPriority(parentMarkerKey,
|
|
168
|
-
parentQueueKey .. ":prioritized", priority,
|
|
169
|
-
parentId, parentQueueKey .. ":pc", isPausedOrMaxed)
|
|
170
|
-
end
|
|
171
|
-
rcall("XADD", parentQueueKey .. ":events", "*", "event", "waiting",
|
|
172
|
-
"jobId", parentId, "prev", "waiting-children")
|
|
173
|
-
end
|
|
174
|
-
end
|
|
175
|
-
end
|
|
176
|
-
--[[
|
|
177
|
-
Function to remove deduplication key if needed.
|
|
178
|
-
]]
|
|
179
|
-
local function removeDeduplicationKeyIfNeeded(prefixKey, deduplicationId)
|
|
180
|
-
if deduplicationId then
|
|
181
|
-
local deduplicationKey = prefixKey .. "de:" .. deduplicationId
|
|
182
|
-
local pttl = rcall("PTTL", deduplicationKey)
|
|
183
|
-
if pttl == 0 or pttl == -1 then
|
|
184
|
-
rcall("DEL", deduplicationKey)
|
|
185
|
-
end
|
|
186
|
-
end
|
|
187
|
-
end
|
|
188
|
-
--[[
|
|
189
|
-
Functions to remove jobs when removeOnFail option is provided.
|
|
190
|
-
]]
|
|
191
|
-
-- Includes
|
|
192
|
-
--[[
|
|
193
|
-
Function to remove job.
|
|
194
|
-
]]
|
|
195
|
-
-- Includes
|
|
196
|
-
--[[
|
|
197
|
-
Function to remove deduplication key.
|
|
198
|
-
]]
|
|
199
|
-
local function removeDeduplicationKey(prefixKey, jobKey)
|
|
200
|
-
local deduplicationId = rcall("HGET", jobKey, "deid")
|
|
201
|
-
if deduplicationId then
|
|
202
|
-
local deduplicationKey = prefixKey .. "de:" .. deduplicationId
|
|
203
|
-
rcall("DEL", deduplicationKey)
|
|
204
|
-
end
|
|
205
|
-
end
|
|
206
|
-
--[[
|
|
207
|
-
Function to remove job keys.
|
|
208
|
-
]]
|
|
209
|
-
local function removeJobKeys(jobKey)
|
|
210
|
-
return rcall("DEL", jobKey, jobKey .. ':logs',
|
|
211
|
-
jobKey .. ':dependencies', jobKey .. ':processed', jobKey .. ':failed')
|
|
212
|
-
end
|
|
213
|
-
--[[
|
|
214
|
-
Check if this job has a parent. If so we will just remove it from
|
|
215
|
-
the parent child list, but if it is the last child we should move the parent to "wait/paused"
|
|
216
|
-
which requires code from "moveToFinished"
|
|
217
|
-
]]
|
|
218
|
-
-- Includes
|
|
219
|
-
--[[
|
|
220
|
-
Functions to destructure job key.
|
|
221
|
-
Just a bit of warning, these functions may be a bit slow and affect performance significantly.
|
|
222
|
-
]]
|
|
223
|
-
local getJobIdFromKey = function (jobKey)
|
|
224
|
-
return string.match(jobKey, ".*:(.*)")
|
|
225
|
-
end
|
|
226
|
-
local getJobKeyPrefix = function (jobKey, jobId)
|
|
227
|
-
return string.sub(jobKey, 0, #jobKey - #jobId)
|
|
228
|
-
end
|
|
229
|
-
local function moveParentToWait(parentPrefix, parentId, emitEvent)
|
|
230
|
-
local parentTarget, isPausedOrMaxed = getTargetQueueList(parentPrefix .. "meta", parentPrefix .. "active",
|
|
231
|
-
parentPrefix .. "wait", parentPrefix .. "paused")
|
|
232
|
-
addJobInTargetList(parentTarget, parentPrefix .. "marker", "RPUSH", isPausedOrMaxed, parentId)
|
|
233
|
-
if emitEvent then
|
|
234
|
-
local parentEventStream = parentPrefix .. "events"
|
|
235
|
-
rcall("XADD", parentEventStream, "*", "event", "waiting", "jobId", parentId, "prev", "waiting-children")
|
|
236
|
-
end
|
|
237
|
-
end
|
|
238
|
-
local function removeParentDependencyKey(jobKey, hard, parentKey, baseKey, debounceId)
|
|
239
|
-
if parentKey then
|
|
240
|
-
local parentDependenciesKey = parentKey .. ":dependencies"
|
|
241
|
-
local result = rcall("SREM", parentDependenciesKey, jobKey)
|
|
242
|
-
if result > 0 then
|
|
243
|
-
local pendingDependencies = rcall("SCARD", parentDependenciesKey)
|
|
244
|
-
if pendingDependencies == 0 then
|
|
245
|
-
local parentId = getJobIdFromKey(parentKey)
|
|
246
|
-
local parentPrefix = getJobKeyPrefix(parentKey, parentId)
|
|
247
|
-
local numRemovedElements = rcall("ZREM", parentPrefix .. "waiting-children", parentId)
|
|
248
|
-
if numRemovedElements == 1 then
|
|
249
|
-
if hard then -- remove parent in same queue
|
|
250
|
-
if parentPrefix == baseKey then
|
|
251
|
-
removeParentDependencyKey(parentKey, hard, nil, baseKey, nil)
|
|
252
|
-
removeJobKeys(parentKey)
|
|
253
|
-
if debounceId then
|
|
254
|
-
rcall("DEL", parentPrefix .. "de:" .. debounceId)
|
|
255
|
-
end
|
|
256
|
-
else
|
|
257
|
-
moveParentToWait(parentPrefix, parentId)
|
|
258
|
-
end
|
|
259
|
-
else
|
|
260
|
-
moveParentToWait(parentPrefix, parentId, true)
|
|
261
|
-
end
|
|
262
|
-
end
|
|
263
|
-
end
|
|
264
|
-
return true
|
|
265
|
-
end
|
|
266
|
-
else
|
|
267
|
-
local parentAttributes = rcall("HMGET", jobKey, "parentKey", "deid")
|
|
268
|
-
local missedParentKey = parentAttributes[1]
|
|
269
|
-
if( (type(missedParentKey) == "string") and missedParentKey ~= ""
|
|
270
|
-
and (rcall("EXISTS", missedParentKey) == 1)) then
|
|
271
|
-
local parentDependenciesKey = missedParentKey .. ":dependencies"
|
|
272
|
-
local result = rcall("SREM", parentDependenciesKey, jobKey)
|
|
273
|
-
if result > 0 then
|
|
274
|
-
local pendingDependencies = rcall("SCARD", parentDependenciesKey)
|
|
275
|
-
if pendingDependencies == 0 then
|
|
276
|
-
local parentId = getJobIdFromKey(missedParentKey)
|
|
277
|
-
local parentPrefix = getJobKeyPrefix(missedParentKey, parentId)
|
|
278
|
-
local numRemovedElements = rcall("ZREM", parentPrefix .. "waiting-children", parentId)
|
|
279
|
-
if numRemovedElements == 1 then
|
|
280
|
-
if hard then
|
|
281
|
-
if parentPrefix == baseKey then
|
|
282
|
-
removeParentDependencyKey(missedParentKey, hard, nil, baseKey, nil)
|
|
283
|
-
removeJobKeys(missedParentKey)
|
|
284
|
-
if parentAttributes[2] then
|
|
285
|
-
rcall("DEL", parentPrefix .. "de:" .. parentAttributes[2])
|
|
286
|
-
end
|
|
287
|
-
else
|
|
288
|
-
moveParentToWait(parentPrefix, parentId)
|
|
289
|
-
end
|
|
290
|
-
else
|
|
291
|
-
moveParentToWait(parentPrefix, parentId, true)
|
|
292
|
-
end
|
|
293
|
-
end
|
|
294
|
-
end
|
|
295
|
-
return true
|
|
296
|
-
end
|
|
297
|
-
end
|
|
298
|
-
end
|
|
299
|
-
return false
|
|
300
|
-
end
|
|
301
|
-
local function removeJob(jobId, hard, baseKey, shouldRemoveDeduplicationKey)
|
|
302
|
-
local jobKey = baseKey .. jobId
|
|
303
|
-
removeParentDependencyKey(jobKey, hard, nil, baseKey)
|
|
304
|
-
if shouldRemoveDeduplicationKey then
|
|
305
|
-
removeDeduplicationKey(baseKey, jobKey)
|
|
306
|
-
end
|
|
307
|
-
removeJobKeys(jobKey)
|
|
308
|
-
end
|
|
309
|
-
--[[
|
|
310
|
-
Functions to remove jobs by max age.
|
|
311
|
-
]]
|
|
312
|
-
-- Includes
|
|
313
|
-
local function removeJobsByMaxAge(timestamp, maxAge, targetSet, prefix,
|
|
314
|
-
shouldRemoveDebounceKey)
|
|
315
|
-
local start = timestamp - maxAge * 1000
|
|
316
|
-
local jobIds = rcall("ZREVRANGEBYSCORE", targetSet, start, "-inf")
|
|
317
|
-
for i, jobId in ipairs(jobIds) do
|
|
318
|
-
removeJob(jobId, false, prefix, false --[[remove debounce key]])
|
|
319
|
-
end
|
|
320
|
-
rcall("ZREMRANGEBYSCORE", targetSet, "-inf", start)
|
|
321
|
-
end
|
|
322
|
-
--[[
|
|
323
|
-
Functions to remove jobs by max count.
|
|
324
|
-
]]
|
|
325
|
-
-- Includes
|
|
326
|
-
local function removeJobsByMaxCount(maxCount, targetSet, prefix)
|
|
327
|
-
local start = maxCount
|
|
328
|
-
local jobIds = rcall("ZREVRANGE", targetSet, start, -1)
|
|
329
|
-
for i, jobId in ipairs(jobIds) do
|
|
330
|
-
removeJob(jobId, false, prefix, false --[[remove debounce key]])
|
|
331
|
-
end
|
|
332
|
-
rcall("ZREMRANGEBYRANK", targetSet, 0, -(maxCount + 1))
|
|
333
|
-
end
|
|
334
|
-
local function removeJobsOnFail(queueKeyPrefix, failedKey, jobId, opts, timestamp)
|
|
335
|
-
local removeOnFailType = type(opts["removeOnFail"])
|
|
336
|
-
if removeOnFailType == "number" then
|
|
337
|
-
removeJobsByMaxCount(opts["removeOnFail"],
|
|
338
|
-
failedKey, queueKeyPrefix)
|
|
339
|
-
elseif removeOnFailType == "boolean" then
|
|
340
|
-
if opts["removeOnFail"] then
|
|
341
|
-
removeJob(jobId, false, queueKeyPrefix,
|
|
342
|
-
false --[[remove debounce key]])
|
|
343
|
-
rcall("ZREM", failedKey, jobId)
|
|
344
|
-
end
|
|
345
|
-
elseif removeOnFailType ~= "nil" then
|
|
346
|
-
local maxAge = opts["removeOnFail"]["age"]
|
|
347
|
-
local maxCount = opts["removeOnFail"]["count"]
|
|
348
|
-
if maxAge ~= nil then
|
|
349
|
-
removeJobsByMaxAge(timestamp, maxAge,
|
|
350
|
-
failedKey, queueKeyPrefix)
|
|
351
|
-
end
|
|
352
|
-
if maxCount ~= nil and maxCount > 0 then
|
|
353
|
-
removeJobsByMaxCount(maxCount, failedKey,
|
|
354
|
-
queueKeyPrefix)
|
|
355
|
-
end
|
|
356
|
-
end
|
|
357
|
-
end
|
|
358
|
-
local function moveParentFromWaitingChildrenToFailed( parentQueueKey, parentKey, parentId, jobIdKey, timestamp)
|
|
359
|
-
if rcall("ZREM", parentQueueKey .. ":waiting-children", parentId) == 1 then
|
|
360
|
-
local parentQueuePrefix = parentQueueKey .. ":"
|
|
361
|
-
local parentFailedKey = parentQueueKey .. ":failed"
|
|
362
|
-
rcall("ZADD", parentFailedKey, timestamp, parentId)
|
|
363
|
-
local failedReason = "child " .. jobIdKey .. " failed"
|
|
364
|
-
rcall("HMSET", parentKey, "failedReason", failedReason, "finishedOn", timestamp)
|
|
365
|
-
rcall("XADD", parentQueueKey .. ":events", "*", "event", "failed", "jobId", parentId, "failedReason",
|
|
366
|
-
failedReason, "prev", "waiting-children")
|
|
367
|
-
local jobAttributes = rcall("HMGET", parentKey, "parent", "deid", "opts")
|
|
368
|
-
removeDeduplicationKeyIfNeeded(parentQueueKey .. ":", jobAttributes[2])
|
|
369
|
-
if jobAttributes[1] then
|
|
370
|
-
local parentData = cjson.decode(jobAttributes[1])
|
|
371
|
-
if parentData['fpof'] then
|
|
372
|
-
moveParentFromWaitingChildrenToFailed(
|
|
373
|
-
parentData['queueKey'],
|
|
374
|
-
parentData['queueKey'] .. ':' .. parentData['id'],
|
|
375
|
-
parentData['id'],
|
|
376
|
-
parentKey,
|
|
377
|
-
timestamp
|
|
378
|
-
)
|
|
379
|
-
elseif parentData['idof'] or parentData['rdof'] then
|
|
380
|
-
local grandParentKey = parentData['queueKey'] .. ':' .. parentData['id']
|
|
381
|
-
local grandParentDependenciesSet = grandParentKey .. ":dependencies"
|
|
382
|
-
if rcall("SREM", grandParentDependenciesSet, parentKey) == 1 then
|
|
383
|
-
moveParentToWaitIfNeeded(parentData['queueKey'], grandParentDependenciesSet,
|
|
384
|
-
grandParentKey, parentData['id'], timestamp)
|
|
385
|
-
if parentData['idof'] then
|
|
386
|
-
local grandParentFailedSet = grandParentKey .. ":failed"
|
|
387
|
-
rcall("HSET", grandParentFailedSet, parentKey, failedReason)
|
|
388
|
-
end
|
|
389
|
-
end
|
|
390
|
-
end
|
|
391
|
-
end
|
|
392
|
-
local parentRawOpts = jobAttributes[3]
|
|
393
|
-
local parentOpts = cjson.decode(parentRawOpts)
|
|
394
|
-
removeJobsOnFail(parentQueuePrefix, parentFailedKey, parentId, parentOpts, timestamp)
|
|
395
|
-
end
|
|
396
|
-
end
|
|
397
|
-
--[[
|
|
398
|
-
Function to trim events, default 10000.
|
|
399
|
-
]]
|
|
400
|
-
-- Includes
|
|
401
|
-
--[[
|
|
402
|
-
Function to get max events value or set by default 10000.
|
|
403
|
-
]]
|
|
404
|
-
local function getOrSetMaxEvents(metaKey)
|
|
405
|
-
local maxEvents = rcall("HGET", metaKey, "opts.maxLenEvents")
|
|
406
|
-
if not maxEvents then
|
|
407
|
-
maxEvents = 10000
|
|
408
|
-
rcall("HSET", metaKey, "opts.maxLenEvents", maxEvents)
|
|
409
|
-
end
|
|
410
|
-
return maxEvents
|
|
411
|
-
end
|
|
412
|
-
local function trimEvents(metaKey, eventStreamKey)
|
|
413
|
-
local maxEvents = getOrSetMaxEvents(metaKey)
|
|
414
|
-
if maxEvents ~= false then
|
|
415
|
-
rcall("XTRIM", eventStreamKey, "MAXLEN", "~", maxEvents)
|
|
416
|
-
else
|
|
417
|
-
rcall("XTRIM", eventStreamKey, "MAXLEN", "~", 10000)
|
|
418
|
-
end
|
|
419
|
-
end
|
|
420
|
-
local stalledKey = KEYS[1]
|
|
421
|
-
local waitKey = KEYS[2]
|
|
422
|
-
local activeKey = KEYS[3]
|
|
423
|
-
local failedKey = KEYS[4]
|
|
424
|
-
local stalledCheckKey = KEYS[5]
|
|
425
|
-
local metaKey = KEYS[6]
|
|
426
|
-
local pausedKey = KEYS[7]
|
|
427
|
-
local markerKey = KEYS[8]
|
|
428
|
-
local eventStreamKey = KEYS[9]
|
|
429
|
-
local maxStalledJobCount = tonumber(ARGV[1])
|
|
430
|
-
local queueKeyPrefix = ARGV[2]
|
|
431
|
-
local timestamp = ARGV[3]
|
|
432
|
-
local maxCheckTime = ARGV[4]
|
|
433
|
-
if rcall("EXISTS", stalledCheckKey) == 1 then return {{}, {}} end
|
|
434
|
-
rcall("SET", stalledCheckKey, timestamp, "PX", maxCheckTime)
|
|
435
|
-
-- Trim events before emiting them to avoid trimming events emitted in this script
|
|
436
|
-
trimEvents(metaKey, eventStreamKey)
|
|
437
|
-
-- Move all stalled jobs to wait
|
|
438
|
-
local stalling = rcall('SMEMBERS', stalledKey)
|
|
439
|
-
local stalled = {}
|
|
440
|
-
local failed = {}
|
|
441
|
-
if (#stalling > 0) then
|
|
442
|
-
rcall('DEL', stalledKey)
|
|
443
|
-
-- Remove from active list
|
|
444
|
-
for i, jobId in ipairs(stalling) do
|
|
445
|
-
-- Markers in waitlist DEPRECATED in v5: Remove in v6.
|
|
446
|
-
if string.sub(jobId, 1, 2) == "0:" then
|
|
447
|
-
-- If the jobId is a delay marker ID we just remove it.
|
|
448
|
-
rcall("LREM", activeKey, 1, jobId)
|
|
449
|
-
else
|
|
450
|
-
local jobKey = queueKeyPrefix .. jobId
|
|
451
|
-
-- Check that the lock is also missing, then we can handle this job as really stalled.
|
|
452
|
-
if (rcall("EXISTS", jobKey .. ":lock") == 0) then
|
|
453
|
-
-- Remove from the active queue.
|
|
454
|
-
local removed = rcall("LREM", activeKey, 1, jobId)
|
|
455
|
-
if (removed > 0) then
|
|
456
|
-
-- If this job has been stalled too many times, such as if it crashes the worker, then fail it.
|
|
457
|
-
local stalledCount =
|
|
458
|
-
rcall("HINCRBY", jobKey, "stalledCounter", 1)
|
|
459
|
-
if (stalledCount > maxStalledJobCount) then
|
|
460
|
-
local jobAttributes = rcall("HMGET", jobKey, "opts", "parent", "deid")
|
|
461
|
-
local rawOpts = jobAttributes[1]
|
|
462
|
-
local rawParentData = jobAttributes[2]
|
|
463
|
-
local opts = cjson.decode(rawOpts)
|
|
464
|
-
rcall("ZADD", failedKey, timestamp, jobId)
|
|
465
|
-
removeDeduplicationKeyIfNeeded(queueKeyPrefix, jobAttributes[3])
|
|
466
|
-
local failedReason =
|
|
467
|
-
"job stalled more than allowable limit"
|
|
468
|
-
rcall("HMSET", jobKey, "failedReason", failedReason,
|
|
469
|
-
"finishedOn", timestamp)
|
|
470
|
-
rcall("XADD", eventStreamKey, "*", "event",
|
|
471
|
-
"failed", "jobId", jobId, 'prev', 'active',
|
|
472
|
-
'failedReason', failedReason)
|
|
473
|
-
if rawParentData ~= false then
|
|
474
|
-
if opts['fpof'] then
|
|
475
|
-
local parentData = cjson.decode(rawParentData)
|
|
476
|
-
moveParentFromWaitingChildrenToFailed(
|
|
477
|
-
parentData['queueKey'],
|
|
478
|
-
parentData['queueKey'] .. ':' .. parentData['id'],
|
|
479
|
-
parentData['id'],
|
|
480
|
-
jobKey,
|
|
481
|
-
timestamp
|
|
482
|
-
)
|
|
483
|
-
elseif opts['idof'] or opts['rdof'] then
|
|
484
|
-
local parentData = cjson.decode(rawParentData)
|
|
485
|
-
local parentKey = parentData['queueKey'] .. ':' .. parentData['id']
|
|
486
|
-
local dependenciesSet = parentKey .. ":dependencies"
|
|
487
|
-
if rcall("SREM", dependenciesSet, jobKey) == 1 then
|
|
488
|
-
moveParentToWaitIfNeeded(parentData['queueKey'], dependenciesSet,
|
|
489
|
-
parentKey, parentData['id'], timestamp)
|
|
490
|
-
if opts['idof'] then
|
|
491
|
-
local failedSet = parentKey .. ":failed"
|
|
492
|
-
rcall("HSET", failedSet, jobKey, failedReason)
|
|
493
|
-
end
|
|
494
|
-
end
|
|
495
|
-
end
|
|
496
|
-
end
|
|
497
|
-
removeJobsOnFail(queueKeyPrefix, failedKey, jobId, opts, timestamp)
|
|
498
|
-
table.insert(failed, jobId)
|
|
499
|
-
else
|
|
500
|
-
local target, isPausedOrMaxed =
|
|
501
|
-
getTargetQueueList(metaKey, activeKey, waitKey, pausedKey)
|
|
502
|
-
-- Move the job back to the wait queue, to immediately be picked up by a waiting worker.
|
|
503
|
-
addJobInTargetList(target, markerKey, "RPUSH", isPausedOrMaxed, jobId)
|
|
504
|
-
rcall("XADD", eventStreamKey, "*", "event",
|
|
505
|
-
"waiting", "jobId", jobId, 'prev', 'active')
|
|
506
|
-
-- Emit the stalled event
|
|
507
|
-
rcall("XADD", eventStreamKey, "*", "event",
|
|
508
|
-
"stalled", "jobId", jobId)
|
|
509
|
-
table.insert(stalled, jobId)
|
|
510
|
-
end
|
|
511
|
-
end
|
|
512
|
-
end
|
|
513
|
-
end
|
|
514
|
-
end
|
|
515
|
-
end
|
|
516
|
-
-- Mark potentially stalled jobs
|
|
517
|
-
local active = rcall('LRANGE', activeKey, 0, -1)
|
|
518
|
-
if (#active > 0) then
|
|
519
|
-
for from, to in batches(#active, 7000) do
|
|
520
|
-
rcall('SADD', stalledKey, unpack(active, from, to))
|
|
521
|
-
end
|
|
522
|
-
end
|
|
523
|
-
return {failed, stalled}`;
|
|
524
|
-
exports.moveStalledJobsToWait = {
|
|
525
|
-
name: 'moveStalledJobsToWait',
|
|
526
|
-
content,
|
|
527
|
-
keys: 9,
|
|
528
|
-
};
|
|
529
|
-
//# sourceMappingURL=moveStalledJobsToWait-9.js.map
|
|
@@ -1,83 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.moveToWaitingChildren = void 0;
|
|
4
|
-
const content = `--[[
|
|
5
|
-
Moves job from active to waiting children set.
|
|
6
|
-
Input:
|
|
7
|
-
KEYS[1] lock key
|
|
8
|
-
KEYS[2] active key
|
|
9
|
-
KEYS[3] waitChildrenKey key
|
|
10
|
-
KEYS[4] job key
|
|
11
|
-
KEYS[5] stalled key
|
|
12
|
-
ARGV[1] token
|
|
13
|
-
ARGV[2] child key
|
|
14
|
-
ARGV[3] timestamp
|
|
15
|
-
ARGV[4] the id of the job
|
|
16
|
-
Output:
|
|
17
|
-
0 - OK
|
|
18
|
-
1 - There are not pending dependencies.
|
|
19
|
-
-1 - Missing job.
|
|
20
|
-
-2 - Missing lock
|
|
21
|
-
-3 - Job not in active set
|
|
22
|
-
]]
|
|
23
|
-
local rcall = redis.call
|
|
24
|
-
local stalledKey = KEYS[5]
|
|
25
|
-
--- Includes
|
|
26
|
-
local function removeLock(jobKey, stalledKey, token, jobId)
|
|
27
|
-
if token ~= "0" then
|
|
28
|
-
local lockKey = jobKey .. ':lock'
|
|
29
|
-
local lockToken = rcall("GET", lockKey)
|
|
30
|
-
if lockToken == token then
|
|
31
|
-
rcall("DEL", lockKey)
|
|
32
|
-
rcall("SREM", stalledKey, jobId)
|
|
33
|
-
else
|
|
34
|
-
if lockToken then
|
|
35
|
-
-- Lock exists but token does not match
|
|
36
|
-
return -6
|
|
37
|
-
else
|
|
38
|
-
-- Lock is missing completely
|
|
39
|
-
return -2
|
|
40
|
-
end
|
|
41
|
-
end
|
|
42
|
-
end
|
|
43
|
-
return 0
|
|
44
|
-
end
|
|
45
|
-
local function moveToWaitingChildren (activeKey, waitingChildrenKey, jobId,
|
|
46
|
-
timestamp)
|
|
47
|
-
local score = tonumber(timestamp)
|
|
48
|
-
local numRemovedElements = rcall("LREM", activeKey, -1, jobId)
|
|
49
|
-
if(numRemovedElements < 1) then
|
|
50
|
-
return -3
|
|
51
|
-
end
|
|
52
|
-
rcall("ZADD", waitingChildrenKey, score, jobId)
|
|
53
|
-
return 0
|
|
54
|
-
end
|
|
55
|
-
if rcall("EXISTS", KEYS[4]) == 1 then
|
|
56
|
-
if ARGV[2] ~= "" then
|
|
57
|
-
if rcall("SISMEMBER", KEYS[4] .. ":dependencies", ARGV[2]) ~= 0 then
|
|
58
|
-
local errorCode = removeLock(KEYS[4], stalledKey, ARGV[1], ARGV[4])
|
|
59
|
-
if errorCode < 0 then
|
|
60
|
-
return errorCode
|
|
61
|
-
end
|
|
62
|
-
return moveToWaitingChildren(KEYS[2], KEYS[3], ARGV[4], ARGV[3])
|
|
63
|
-
end
|
|
64
|
-
return 1
|
|
65
|
-
else
|
|
66
|
-
if rcall("SCARD", KEYS[4] .. ":dependencies") ~= 0 then
|
|
67
|
-
local errorCode = removeLock(KEYS[4], stalledKey, ARGV[1], ARGV[4])
|
|
68
|
-
if errorCode < 0 then
|
|
69
|
-
return errorCode
|
|
70
|
-
end
|
|
71
|
-
return moveToWaitingChildren(KEYS[2], KEYS[3], ARGV[4], ARGV[3])
|
|
72
|
-
end
|
|
73
|
-
return 1
|
|
74
|
-
end
|
|
75
|
-
end
|
|
76
|
-
return -1
|
|
77
|
-
`;
|
|
78
|
-
exports.moveToWaitingChildren = {
|
|
79
|
-
name: 'moveToWaitingChildren',
|
|
80
|
-
content,
|
|
81
|
-
keys: 5,
|
|
82
|
-
};
|
|
83
|
-
//# sourceMappingURL=moveToWaitingChildren-5.js.map
|