@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
|
@@ -0,0 +1,529 @@
|
|
|
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] active key
|
|
8
|
+
KEYS[2] wait-children key
|
|
9
|
+
KEYS[3] job key
|
|
10
|
+
KEYS[4] job dependencies key
|
|
11
|
+
KEYS[5] job unsuccessful key
|
|
12
|
+
KEYS[6] stalled key
|
|
13
|
+
KEYS[7] failed key
|
|
14
|
+
KEYS[8] events key
|
|
15
|
+
ARGV[1] token
|
|
16
|
+
ARGV[2] child key
|
|
17
|
+
ARGV[3] timestamp
|
|
18
|
+
ARGV[4] jobId
|
|
19
|
+
ARGV[5] prefix
|
|
20
|
+
Output:
|
|
21
|
+
0 - OK
|
|
22
|
+
1 - There are not pending dependencies.
|
|
23
|
+
-1 - Missing job.
|
|
24
|
+
-2 - Missing lock
|
|
25
|
+
-3 - Job not in active set
|
|
26
|
+
]]
|
|
27
|
+
local rcall = redis.call
|
|
28
|
+
local activeKey = KEYS[1]
|
|
29
|
+
local waitingChildrenKey = KEYS[2]
|
|
30
|
+
local jobKey = KEYS[3]
|
|
31
|
+
local jobDependenciesKey = KEYS[4]
|
|
32
|
+
local jobUnsuccessfulKey = KEYS[5]
|
|
33
|
+
local stalledKey = KEYS[6]
|
|
34
|
+
local failedKey = KEYS[7]
|
|
35
|
+
local timestamp = ARGV[3]
|
|
36
|
+
local jobId = ARGV[4]
|
|
37
|
+
--- Includes
|
|
38
|
+
--[[
|
|
39
|
+
Function to recursively move from waitingChildren to failed.
|
|
40
|
+
]]
|
|
41
|
+
-- Includes
|
|
42
|
+
--[[
|
|
43
|
+
Validate and move parent to a wait status (waiting, delayed or prioritized)
|
|
44
|
+
if no pending dependencies.
|
|
45
|
+
]]
|
|
46
|
+
-- Includes
|
|
47
|
+
--[[
|
|
48
|
+
Validate and move parent to a wait status (waiting, delayed or prioritized) if needed.
|
|
49
|
+
]]
|
|
50
|
+
-- Includes
|
|
51
|
+
--[[
|
|
52
|
+
Move parent to a wait status (wait, prioritized or delayed)
|
|
53
|
+
]]
|
|
54
|
+
-- Includes
|
|
55
|
+
--[[
|
|
56
|
+
Add delay marker if needed.
|
|
57
|
+
]]
|
|
58
|
+
-- Includes
|
|
59
|
+
--[[
|
|
60
|
+
Function to return the next delayed job timestamp.
|
|
61
|
+
]]
|
|
62
|
+
local function getNextDelayedTimestamp(delayedKey)
|
|
63
|
+
local result = rcall("ZRANGE", delayedKey, 0, 0, "WITHSCORES")
|
|
64
|
+
if #result then
|
|
65
|
+
local nextTimestamp = tonumber(result[2])
|
|
66
|
+
if nextTimestamp ~= nil then
|
|
67
|
+
return nextTimestamp / 0x1000
|
|
68
|
+
end
|
|
69
|
+
end
|
|
70
|
+
end
|
|
71
|
+
local function addDelayMarkerIfNeeded(markerKey, delayedKey)
|
|
72
|
+
local nextTimestamp = getNextDelayedTimestamp(delayedKey)
|
|
73
|
+
if nextTimestamp ~= nil then
|
|
74
|
+
-- Replace the score of the marker with the newest known
|
|
75
|
+
-- next timestamp.
|
|
76
|
+
rcall("ZADD", markerKey, nextTimestamp, "1")
|
|
77
|
+
end
|
|
78
|
+
end
|
|
79
|
+
--[[
|
|
80
|
+
Function to add job in target list and add marker if needed.
|
|
81
|
+
]]
|
|
82
|
+
-- Includes
|
|
83
|
+
--[[
|
|
84
|
+
Add marker if needed when a job is available.
|
|
85
|
+
]]
|
|
86
|
+
local function addBaseMarkerIfNeeded(markerKey, isPausedOrMaxed)
|
|
87
|
+
if not isPausedOrMaxed then
|
|
88
|
+
rcall("ZADD", markerKey, 0, "0")
|
|
89
|
+
end
|
|
90
|
+
end
|
|
91
|
+
local function addJobInTargetList(targetKey, markerKey, pushCmd, isPausedOrMaxed, jobId)
|
|
92
|
+
rcall(pushCmd, targetKey, jobId)
|
|
93
|
+
addBaseMarkerIfNeeded(markerKey, isPausedOrMaxed)
|
|
94
|
+
end
|
|
95
|
+
--[[
|
|
96
|
+
Function to add job considering priority.
|
|
97
|
+
]]
|
|
98
|
+
-- Includes
|
|
99
|
+
--[[
|
|
100
|
+
Function to get priority score.
|
|
101
|
+
]]
|
|
102
|
+
local function getPriorityScore(priority, priorityCounterKey)
|
|
103
|
+
local prioCounter = rcall("INCR", priorityCounterKey)
|
|
104
|
+
return priority * 0x100000000 + prioCounter % 0x100000000
|
|
105
|
+
end
|
|
106
|
+
local function addJobWithPriority(markerKey, prioritizedKey, priority, jobId, priorityCounterKey,
|
|
107
|
+
isPausedOrMaxed)
|
|
108
|
+
local score = getPriorityScore(priority, priorityCounterKey)
|
|
109
|
+
rcall("ZADD", prioritizedKey, score, jobId)
|
|
110
|
+
addBaseMarkerIfNeeded(markerKey, isPausedOrMaxed)
|
|
111
|
+
end
|
|
112
|
+
--[[
|
|
113
|
+
Function to check if queue is paused or maxed
|
|
114
|
+
(since an empty list and !EXISTS are not really the same).
|
|
115
|
+
]]
|
|
116
|
+
local function isQueuePausedOrMaxed(queueMetaKey, activeKey)
|
|
117
|
+
local queueAttributes = rcall("HMGET", queueMetaKey, "paused", "concurrency")
|
|
118
|
+
if queueAttributes[1] then
|
|
119
|
+
return true
|
|
120
|
+
else
|
|
121
|
+
if queueAttributes[2] then
|
|
122
|
+
local activeCount = rcall("LLEN", activeKey)
|
|
123
|
+
return activeCount >= tonumber(queueAttributes[2])
|
|
124
|
+
end
|
|
125
|
+
end
|
|
126
|
+
return false
|
|
127
|
+
end
|
|
128
|
+
--[[
|
|
129
|
+
Function to check for the meta.paused key to decide if we are paused or not
|
|
130
|
+
(since an empty list and !EXISTS are not really the same).
|
|
131
|
+
]]
|
|
132
|
+
local function getTargetQueueList(queueMetaKey, activeKey, waitKey, pausedKey)
|
|
133
|
+
local queueAttributes = rcall("HMGET", queueMetaKey, "paused", "concurrency")
|
|
134
|
+
if queueAttributes[1] then
|
|
135
|
+
return pausedKey, true
|
|
136
|
+
else
|
|
137
|
+
if queueAttributes[2] then
|
|
138
|
+
local activeCount = rcall("LLEN", activeKey)
|
|
139
|
+
if activeCount >= tonumber(queueAttributes[2]) then
|
|
140
|
+
return waitKey, true
|
|
141
|
+
else
|
|
142
|
+
return waitKey, false
|
|
143
|
+
end
|
|
144
|
+
end
|
|
145
|
+
end
|
|
146
|
+
return waitKey, false
|
|
147
|
+
end
|
|
148
|
+
local function moveParentToWait(parentQueueKey, parentKey, parentId, timestamp)
|
|
149
|
+
local parentWaitKey = parentQueueKey .. ":wait"
|
|
150
|
+
local parentPausedKey = parentQueueKey .. ":paused"
|
|
151
|
+
local parentActiveKey = parentQueueKey .. ":active"
|
|
152
|
+
local parentMetaKey = parentQueueKey .. ":meta"
|
|
153
|
+
local parentMarkerKey = parentQueueKey .. ":marker"
|
|
154
|
+
local jobAttributes = rcall("HMGET", parentKey, "priority", "delay")
|
|
155
|
+
local priority = tonumber(jobAttributes[1]) or 0
|
|
156
|
+
local delay = tonumber(jobAttributes[2]) or 0
|
|
157
|
+
if delay > 0 then
|
|
158
|
+
local delayedTimestamp = tonumber(timestamp) + delay
|
|
159
|
+
local score = delayedTimestamp * 0x1000
|
|
160
|
+
local parentDelayedKey = parentQueueKey .. ":delayed"
|
|
161
|
+
rcall("ZADD", parentDelayedKey, score, parentId)
|
|
162
|
+
rcall("XADD", parentQueueKey .. ":events", "*", "event", "delayed", "jobId", parentId, "delay",
|
|
163
|
+
delayedTimestamp)
|
|
164
|
+
addDelayMarkerIfNeeded(parentMarkerKey, parentDelayedKey)
|
|
165
|
+
else
|
|
166
|
+
if priority == 0 then
|
|
167
|
+
local parentTarget, isParentPausedOrMaxed = getTargetQueueList(parentMetaKey, parentActiveKey,
|
|
168
|
+
parentWaitKey, parentPausedKey)
|
|
169
|
+
addJobInTargetList(parentTarget, parentMarkerKey, "RPUSH", isParentPausedOrMaxed, parentId)
|
|
170
|
+
else
|
|
171
|
+
local isPausedOrMaxed = isQueuePausedOrMaxed(parentMetaKey, parentActiveKey)
|
|
172
|
+
addJobWithPriority(parentMarkerKey, parentQueueKey .. ":prioritized", priority, parentId,
|
|
173
|
+
parentQueueKey .. ":pc", isPausedOrMaxed)
|
|
174
|
+
end
|
|
175
|
+
rcall("XADD", parentQueueKey .. ":events", "*", "event", "waiting", "jobId", parentId, "prev",
|
|
176
|
+
"waiting-children")
|
|
177
|
+
end
|
|
178
|
+
end
|
|
179
|
+
local function moveParentToWaitIfNeeded(parentQueueKey, parentKey, parentId, timestamp)
|
|
180
|
+
if rcall("EXISTS", parentKey) == 1 then
|
|
181
|
+
local parentWaitingChildrenKey = parentQueueKey .. ":waiting-children"
|
|
182
|
+
if rcall("ZSCORE", parentWaitingChildrenKey, parentId) then
|
|
183
|
+
rcall("ZREM", parentWaitingChildrenKey, parentId)
|
|
184
|
+
moveParentToWait(parentQueueKey, parentKey, parentId, timestamp)
|
|
185
|
+
end
|
|
186
|
+
end
|
|
187
|
+
end
|
|
188
|
+
local function moveParentToWaitIfNoPendingDependencies(parentQueueKey, parentDependenciesKey, parentKey,
|
|
189
|
+
parentId, timestamp)
|
|
190
|
+
local doNotHavePendingDependencies = rcall("SCARD", parentDependenciesKey) == 0
|
|
191
|
+
if doNotHavePendingDependencies then
|
|
192
|
+
moveParentToWaitIfNeeded(parentQueueKey, parentKey, parentId, timestamp)
|
|
193
|
+
end
|
|
194
|
+
end
|
|
195
|
+
--[[
|
|
196
|
+
Functions to remove jobs when removeOnFail option is provided.
|
|
197
|
+
]]
|
|
198
|
+
-- Includes
|
|
199
|
+
--[[
|
|
200
|
+
Function to remove job.
|
|
201
|
+
]]
|
|
202
|
+
-- Includes
|
|
203
|
+
--[[
|
|
204
|
+
Function to remove deduplication key if needed
|
|
205
|
+
when a job is being removed.
|
|
206
|
+
]]
|
|
207
|
+
local function removeDeduplicationKeyIfNeededOnRemoval(prefixKey,
|
|
208
|
+
jobKey, jobId)
|
|
209
|
+
local deduplicationId = rcall("HGET", jobKey, "deid")
|
|
210
|
+
if deduplicationId then
|
|
211
|
+
local deduplicationKey = prefixKey .. "de:" .. deduplicationId
|
|
212
|
+
local currentJobId = rcall('GET', deduplicationKey)
|
|
213
|
+
if currentJobId and currentJobId == jobId then
|
|
214
|
+
return rcall("DEL", deduplicationKey)
|
|
215
|
+
end
|
|
216
|
+
end
|
|
217
|
+
end
|
|
218
|
+
--[[
|
|
219
|
+
Function to remove job keys.
|
|
220
|
+
]]
|
|
221
|
+
local function removeJobKeys(jobKey)
|
|
222
|
+
return rcall("DEL", jobKey, jobKey .. ':logs', jobKey .. ':dependencies',
|
|
223
|
+
jobKey .. ':processed', jobKey .. ':failed', jobKey .. ':unsuccessful')
|
|
224
|
+
end
|
|
225
|
+
--[[
|
|
226
|
+
Check if this job has a parent. If so we will just remove it from
|
|
227
|
+
the parent child list, but if it is the last child we should move the parent to "wait/paused"
|
|
228
|
+
which requires code from "moveToFinished"
|
|
229
|
+
]]
|
|
230
|
+
-- Includes
|
|
231
|
+
--[[
|
|
232
|
+
Functions to destructure job key.
|
|
233
|
+
Just a bit of warning, these functions may be a bit slow and affect performance significantly.
|
|
234
|
+
]]
|
|
235
|
+
local getJobIdFromKey = function (jobKey)
|
|
236
|
+
return string.match(jobKey, ".*:(.*)")
|
|
237
|
+
end
|
|
238
|
+
local getJobKeyPrefix = function (jobKey, jobId)
|
|
239
|
+
return string.sub(jobKey, 0, #jobKey - #jobId)
|
|
240
|
+
end
|
|
241
|
+
local function _moveParentToWait(parentPrefix, parentId, emitEvent)
|
|
242
|
+
local parentTarget, isPausedOrMaxed = getTargetQueueList(parentPrefix .. "meta", parentPrefix .. "active",
|
|
243
|
+
parentPrefix .. "wait", parentPrefix .. "paused")
|
|
244
|
+
addJobInTargetList(parentTarget, parentPrefix .. "marker", "RPUSH", isPausedOrMaxed, parentId)
|
|
245
|
+
if emitEvent then
|
|
246
|
+
local parentEventStream = parentPrefix .. "events"
|
|
247
|
+
rcall("XADD", parentEventStream, "*", "event", "waiting", "jobId", parentId, "prev", "waiting-children")
|
|
248
|
+
end
|
|
249
|
+
end
|
|
250
|
+
local function removeParentDependencyKey(jobKey, hard, parentKey, baseKey, debounceId)
|
|
251
|
+
if parentKey then
|
|
252
|
+
local parentDependenciesKey = parentKey .. ":dependencies"
|
|
253
|
+
local result = rcall("SREM", parentDependenciesKey, jobKey)
|
|
254
|
+
if result > 0 then
|
|
255
|
+
local pendingDependencies = rcall("SCARD", parentDependenciesKey)
|
|
256
|
+
if pendingDependencies == 0 then
|
|
257
|
+
local parentId = getJobIdFromKey(parentKey)
|
|
258
|
+
local parentPrefix = getJobKeyPrefix(parentKey, parentId)
|
|
259
|
+
local numRemovedElements = rcall("ZREM", parentPrefix .. "waiting-children", parentId)
|
|
260
|
+
if numRemovedElements == 1 then
|
|
261
|
+
if hard then -- remove parent in same queue
|
|
262
|
+
if parentPrefix == baseKey then
|
|
263
|
+
removeParentDependencyKey(parentKey, hard, nil, baseKey, nil)
|
|
264
|
+
removeJobKeys(parentKey)
|
|
265
|
+
if debounceId then
|
|
266
|
+
rcall("DEL", parentPrefix .. "de:" .. debounceId)
|
|
267
|
+
end
|
|
268
|
+
else
|
|
269
|
+
_moveParentToWait(parentPrefix, parentId)
|
|
270
|
+
end
|
|
271
|
+
else
|
|
272
|
+
_moveParentToWait(parentPrefix, parentId, true)
|
|
273
|
+
end
|
|
274
|
+
end
|
|
275
|
+
end
|
|
276
|
+
return true
|
|
277
|
+
end
|
|
278
|
+
else
|
|
279
|
+
local parentAttributes = rcall("HMGET", jobKey, "parentKey", "deid")
|
|
280
|
+
local missedParentKey = parentAttributes[1]
|
|
281
|
+
if( (type(missedParentKey) == "string") and missedParentKey ~= ""
|
|
282
|
+
and (rcall("EXISTS", missedParentKey) == 1)) then
|
|
283
|
+
local parentDependenciesKey = missedParentKey .. ":dependencies"
|
|
284
|
+
local result = rcall("SREM", parentDependenciesKey, jobKey)
|
|
285
|
+
if result > 0 then
|
|
286
|
+
local pendingDependencies = rcall("SCARD", parentDependenciesKey)
|
|
287
|
+
if pendingDependencies == 0 then
|
|
288
|
+
local parentId = getJobIdFromKey(missedParentKey)
|
|
289
|
+
local parentPrefix = getJobKeyPrefix(missedParentKey, parentId)
|
|
290
|
+
local numRemovedElements = rcall("ZREM", parentPrefix .. "waiting-children", parentId)
|
|
291
|
+
if numRemovedElements == 1 then
|
|
292
|
+
if hard then
|
|
293
|
+
if parentPrefix == baseKey then
|
|
294
|
+
removeParentDependencyKey(missedParentKey, hard, nil, baseKey, nil)
|
|
295
|
+
removeJobKeys(missedParentKey)
|
|
296
|
+
if parentAttributes[2] then
|
|
297
|
+
rcall("DEL", parentPrefix .. "de:" .. parentAttributes[2])
|
|
298
|
+
end
|
|
299
|
+
else
|
|
300
|
+
_moveParentToWait(parentPrefix, parentId)
|
|
301
|
+
end
|
|
302
|
+
else
|
|
303
|
+
_moveParentToWait(parentPrefix, parentId, true)
|
|
304
|
+
end
|
|
305
|
+
end
|
|
306
|
+
end
|
|
307
|
+
return true
|
|
308
|
+
end
|
|
309
|
+
end
|
|
310
|
+
end
|
|
311
|
+
return false
|
|
312
|
+
end
|
|
313
|
+
local function removeJob(jobId, hard, baseKey, shouldRemoveDeduplicationKey)
|
|
314
|
+
local jobKey = baseKey .. jobId
|
|
315
|
+
removeParentDependencyKey(jobKey, hard, nil, baseKey)
|
|
316
|
+
if shouldRemoveDeduplicationKey then
|
|
317
|
+
removeDeduplicationKeyIfNeededOnRemoval(baseKey, jobKey, jobId)
|
|
318
|
+
end
|
|
319
|
+
removeJobKeys(jobKey)
|
|
320
|
+
end
|
|
321
|
+
--[[
|
|
322
|
+
Functions to remove jobs by max age.
|
|
323
|
+
]]
|
|
324
|
+
-- Includes
|
|
325
|
+
local function removeJobsByMaxAge(timestamp, maxAge, targetSet, prefix,
|
|
326
|
+
shouldRemoveDebounceKey)
|
|
327
|
+
local start = timestamp - maxAge * 1000
|
|
328
|
+
local jobIds = rcall("ZREVRANGEBYSCORE", targetSet, start, "-inf")
|
|
329
|
+
for i, jobId in ipairs(jobIds) do
|
|
330
|
+
removeJob(jobId, false, prefix, false --[[remove debounce key]])
|
|
331
|
+
end
|
|
332
|
+
rcall("ZREMRANGEBYSCORE", targetSet, "-inf", start)
|
|
333
|
+
end
|
|
334
|
+
--[[
|
|
335
|
+
Functions to remove jobs by max count.
|
|
336
|
+
]]
|
|
337
|
+
-- Includes
|
|
338
|
+
local function removeJobsByMaxCount(maxCount, targetSet, prefix)
|
|
339
|
+
local start = maxCount
|
|
340
|
+
local jobIds = rcall("ZREVRANGE", targetSet, start, -1)
|
|
341
|
+
for i, jobId in ipairs(jobIds) do
|
|
342
|
+
removeJob(jobId, false, prefix, false --[[remove debounce key]])
|
|
343
|
+
end
|
|
344
|
+
rcall("ZREMRANGEBYRANK", targetSet, 0, -(maxCount + 1))
|
|
345
|
+
end
|
|
346
|
+
local function removeJobsOnFail(queueKeyPrefix, failedKey, jobId, opts, timestamp)
|
|
347
|
+
local removeOnFailType = type(opts["removeOnFail"])
|
|
348
|
+
if removeOnFailType == "number" then
|
|
349
|
+
removeJobsByMaxCount(opts["removeOnFail"],
|
|
350
|
+
failedKey, queueKeyPrefix)
|
|
351
|
+
elseif removeOnFailType == "boolean" then
|
|
352
|
+
if opts["removeOnFail"] then
|
|
353
|
+
removeJob(jobId, false, queueKeyPrefix,
|
|
354
|
+
false --[[remove debounce key]])
|
|
355
|
+
rcall("ZREM", failedKey, jobId)
|
|
356
|
+
end
|
|
357
|
+
elseif removeOnFailType ~= "nil" then
|
|
358
|
+
local maxAge = opts["removeOnFail"]["age"]
|
|
359
|
+
local maxCount = opts["removeOnFail"]["count"]
|
|
360
|
+
if maxAge ~= nil then
|
|
361
|
+
removeJobsByMaxAge(timestamp, maxAge,
|
|
362
|
+
failedKey, queueKeyPrefix)
|
|
363
|
+
end
|
|
364
|
+
if maxCount ~= nil and maxCount > 0 then
|
|
365
|
+
removeJobsByMaxCount(maxCount, failedKey,
|
|
366
|
+
queueKeyPrefix)
|
|
367
|
+
end
|
|
368
|
+
end
|
|
369
|
+
end
|
|
370
|
+
local moveParentToFailedIfNeeded = function (parentQueueKey, parentKey, parentId, jobIdKey, timestamp)
|
|
371
|
+
if rcall("EXISTS", parentKey) == 1 then
|
|
372
|
+
local parentWaitingChildrenKey = parentQueueKey .. ":waiting-children"
|
|
373
|
+
local parentDelayedKey = parentQueueKey .. ":delayed"
|
|
374
|
+
local parentPrioritizedKey = parentQueueKey .. ":prioritized"
|
|
375
|
+
local parentWaitingChildrenOrDelayedKey
|
|
376
|
+
local prevState
|
|
377
|
+
if rcall("ZSCORE", parentWaitingChildrenKey, parentId) then
|
|
378
|
+
parentWaitingChildrenOrDelayedKey = parentWaitingChildrenKey
|
|
379
|
+
prevState = "waiting-children"
|
|
380
|
+
elseif rcall("ZSCORE", parentDelayedKey, parentId) then
|
|
381
|
+
parentWaitingChildrenOrDelayedKey = parentDelayedKey
|
|
382
|
+
prevState = "delayed"
|
|
383
|
+
rcall("HSET", parentKey, "delay", 0)
|
|
384
|
+
end
|
|
385
|
+
if parentWaitingChildrenOrDelayedKey then
|
|
386
|
+
rcall("ZREM", parentWaitingChildrenOrDelayedKey, parentId)
|
|
387
|
+
local parentQueuePrefix = parentQueueKey .. ":"
|
|
388
|
+
local parentFailedKey = parentQueueKey .. ":failed"
|
|
389
|
+
local deferredFailure = "child " .. jobIdKey .. " failed"
|
|
390
|
+
rcall("HSET", parentKey, "defa", deferredFailure)
|
|
391
|
+
moveParentToWait(parentQueueKey, parentKey, parentId, timestamp)
|
|
392
|
+
else
|
|
393
|
+
if not rcall("ZSCORE", parentQueueKey .. ":failed", parentId) then
|
|
394
|
+
local deferredFailure = "child " .. jobIdKey .. " failed"
|
|
395
|
+
rcall("HSET", parentKey, "defa", deferredFailure)
|
|
396
|
+
end
|
|
397
|
+
end
|
|
398
|
+
end
|
|
399
|
+
end
|
|
400
|
+
local moveChildFromDependenciesIfNeeded = function (rawParentData, childKey, failedReason, timestamp)
|
|
401
|
+
if rawParentData then
|
|
402
|
+
local parentData = cjson.decode(rawParentData)
|
|
403
|
+
local parentKey = parentData['queueKey'] .. ':' .. parentData['id']
|
|
404
|
+
local parentDependenciesChildrenKey = parentKey .. ":dependencies"
|
|
405
|
+
if parentData['fpof'] then
|
|
406
|
+
if rcall("SREM", parentDependenciesChildrenKey, childKey) == 1 then
|
|
407
|
+
local parentUnsuccesssfulChildrenKey = parentKey .. ":unsuccessful"
|
|
408
|
+
rcall("ZADD", parentUnsuccesssfulChildrenKey, timestamp, childKey)
|
|
409
|
+
moveParentToFailedIfNeeded(
|
|
410
|
+
parentData['queueKey'],
|
|
411
|
+
parentKey,
|
|
412
|
+
parentData['id'],
|
|
413
|
+
childKey,
|
|
414
|
+
timestamp
|
|
415
|
+
)
|
|
416
|
+
end
|
|
417
|
+
elseif parentData['cpof'] then
|
|
418
|
+
if rcall("SREM", parentDependenciesChildrenKey, childKey) == 1 then
|
|
419
|
+
local parentFailedChildrenKey = parentKey .. ":failed"
|
|
420
|
+
rcall("HSET", parentFailedChildrenKey, childKey, failedReason)
|
|
421
|
+
moveParentToWaitIfNeeded(parentData['queueKey'], parentKey, parentData['id'], timestamp)
|
|
422
|
+
end
|
|
423
|
+
elseif parentData['idof'] or parentData['rdof'] then
|
|
424
|
+
if rcall("SREM", parentDependenciesChildrenKey, childKey) == 1 then
|
|
425
|
+
moveParentToWaitIfNoPendingDependencies(parentData['queueKey'], parentDependenciesChildrenKey,
|
|
426
|
+
parentKey, parentData['id'], timestamp)
|
|
427
|
+
if parentData['idof'] then
|
|
428
|
+
local parentFailedChildrenKey = parentKey .. ":failed"
|
|
429
|
+
rcall("HSET", parentFailedChildrenKey, childKey, failedReason)
|
|
430
|
+
end
|
|
431
|
+
end
|
|
432
|
+
end
|
|
433
|
+
end
|
|
434
|
+
end
|
|
435
|
+
--[[
|
|
436
|
+
Function to remove deduplication key if needed
|
|
437
|
+
when a job is moved to completed or failed states.
|
|
438
|
+
]]
|
|
439
|
+
local function removeDeduplicationKeyIfNeededOnFinalization(prefixKey,
|
|
440
|
+
deduplicationId, jobId)
|
|
441
|
+
if deduplicationId then
|
|
442
|
+
local deduplicationKey = prefixKey .. "de:" .. deduplicationId
|
|
443
|
+
local pttl = rcall("PTTL", deduplicationKey)
|
|
444
|
+
if pttl == 0 then
|
|
445
|
+
return rcall("DEL", deduplicationKey)
|
|
446
|
+
end
|
|
447
|
+
if pttl == -1 then
|
|
448
|
+
local currentJobId = rcall('GET', deduplicationKey)
|
|
449
|
+
if currentJobId and currentJobId == jobId then
|
|
450
|
+
return rcall("DEL", deduplicationKey)
|
|
451
|
+
end
|
|
452
|
+
end
|
|
453
|
+
end
|
|
454
|
+
end
|
|
455
|
+
local function removeLock(jobKey, stalledKey, token, jobId)
|
|
456
|
+
if token ~= "0" then
|
|
457
|
+
local lockKey = jobKey .. ':lock'
|
|
458
|
+
local lockToken = rcall("GET", lockKey)
|
|
459
|
+
if lockToken == token then
|
|
460
|
+
rcall("DEL", lockKey)
|
|
461
|
+
rcall("SREM", stalledKey, jobId)
|
|
462
|
+
else
|
|
463
|
+
if lockToken then
|
|
464
|
+
-- Lock exists but token does not match
|
|
465
|
+
return -6
|
|
466
|
+
else
|
|
467
|
+
-- Lock is missing completely
|
|
468
|
+
return -2
|
|
469
|
+
end
|
|
470
|
+
end
|
|
471
|
+
end
|
|
472
|
+
return 0
|
|
473
|
+
end
|
|
474
|
+
local function moveToWaitingChildren(activeKey, waitingChildrenKey, jobId,
|
|
475
|
+
timestamp)
|
|
476
|
+
local score = tonumber(timestamp)
|
|
477
|
+
local numRemovedElements = rcall("LREM", activeKey, -1, jobId)
|
|
478
|
+
if(numRemovedElements < 1) then
|
|
479
|
+
return -3
|
|
480
|
+
end
|
|
481
|
+
rcall("ZADD", waitingChildrenKey, score, jobId)
|
|
482
|
+
return 0
|
|
483
|
+
end
|
|
484
|
+
if rcall("EXISTS", jobKey) == 1 then
|
|
485
|
+
if rcall("ZCARD", jobUnsuccessfulKey) ~= 0 then
|
|
486
|
+
-- TODO: refactor this logic in an include later
|
|
487
|
+
local jobAttributes = rcall("HMGET", jobKey, "parent", "deid", "opts")
|
|
488
|
+
removeDeduplicationKeyIfNeededOnFinalization(ARGV[5], jobAttributes[2], jobId)
|
|
489
|
+
local failedReason = "children are failed"
|
|
490
|
+
rcall("ZADD", failedKey, timestamp, jobId)
|
|
491
|
+
rcall("HSET", jobKey, "finishedOn", timestamp)
|
|
492
|
+
rcall("XADD", KEYS[8], "*", "event", "failed", "jobId", jobId, "failedReason",
|
|
493
|
+
failedReason, "prev", "active")
|
|
494
|
+
local rawParentData = jobAttributes[1]
|
|
495
|
+
local rawOpts = jobAttributes[3]
|
|
496
|
+
local opts = cjson.decode(rawOpts)
|
|
497
|
+
moveChildFromDependenciesIfNeeded(rawParentData, jobKey, failedReason, timestamp)
|
|
498
|
+
removeJobsOnFail(ARGV[5], failedKey, jobId, opts, timestamp)
|
|
499
|
+
return 0
|
|
500
|
+
else
|
|
501
|
+
if ARGV[2] ~= "" then
|
|
502
|
+
if rcall("SISMEMBER", jobDependenciesKey, ARGV[2]) ~= 0 then
|
|
503
|
+
local errorCode = removeLock(jobKey, stalledKey, ARGV[1], jobId)
|
|
504
|
+
if errorCode < 0 then
|
|
505
|
+
return errorCode
|
|
506
|
+
end
|
|
507
|
+
return moveToWaitingChildren(activeKey, waitingChildrenKey, jobId, timestamp)
|
|
508
|
+
end
|
|
509
|
+
return 1
|
|
510
|
+
else
|
|
511
|
+
if rcall("SCARD", jobDependenciesKey) ~= 0 then
|
|
512
|
+
local errorCode = removeLock(jobKey, stalledKey, ARGV[1], jobId)
|
|
513
|
+
if errorCode < 0 then
|
|
514
|
+
return errorCode
|
|
515
|
+
end
|
|
516
|
+
return moveToWaitingChildren(activeKey, waitingChildrenKey, jobId, timestamp)
|
|
517
|
+
end
|
|
518
|
+
return 1
|
|
519
|
+
end
|
|
520
|
+
end
|
|
521
|
+
end
|
|
522
|
+
return -1
|
|
523
|
+
`;
|
|
524
|
+
exports.moveToWaitingChildren = {
|
|
525
|
+
name: 'moveToWaitingChildren',
|
|
526
|
+
content,
|
|
527
|
+
keys: 8,
|
|
528
|
+
};
|
|
529
|
+
//# sourceMappingURL=moveToWaitingChildren-8.js.map
|
|
@@ -28,21 +28,26 @@ local rcall = redis.call
|
|
|
28
28
|
]]
|
|
29
29
|
-- Includes
|
|
30
30
|
--[[
|
|
31
|
-
Function to remove deduplication key
|
|
31
|
+
Function to remove deduplication key if needed
|
|
32
|
+
when a job is being removed.
|
|
32
33
|
]]
|
|
33
|
-
local function
|
|
34
|
+
local function removeDeduplicationKeyIfNeededOnRemoval(prefixKey,
|
|
35
|
+
jobKey, jobId)
|
|
34
36
|
local deduplicationId = rcall("HGET", jobKey, "deid")
|
|
35
37
|
if deduplicationId then
|
|
36
38
|
local deduplicationKey = prefixKey .. "de:" .. deduplicationId
|
|
37
|
-
rcall(
|
|
39
|
+
local currentJobId = rcall('GET', deduplicationKey)
|
|
40
|
+
if currentJobId and currentJobId == jobId then
|
|
41
|
+
return rcall("DEL", deduplicationKey)
|
|
42
|
+
end
|
|
38
43
|
end
|
|
39
44
|
end
|
|
40
45
|
--[[
|
|
41
46
|
Function to remove job keys.
|
|
42
47
|
]]
|
|
43
48
|
local function removeJobKeys(jobKey)
|
|
44
|
-
return rcall("DEL", jobKey, jobKey .. ':logs',
|
|
45
|
-
jobKey .. ':
|
|
49
|
+
return rcall("DEL", jobKey, jobKey .. ':logs', jobKey .. ':dependencies',
|
|
50
|
+
jobKey .. ':processed', jobKey .. ':failed', jobKey .. ':unsuccessful')
|
|
46
51
|
end
|
|
47
52
|
--[[
|
|
48
53
|
Check if this job has a parent. If so we will just remove it from
|
|
@@ -96,7 +101,7 @@ local function getTargetQueueList(queueMetaKey, activeKey, waitKey, pausedKey)
|
|
|
96
101
|
end
|
|
97
102
|
return waitKey, false
|
|
98
103
|
end
|
|
99
|
-
local function
|
|
104
|
+
local function _moveParentToWait(parentPrefix, parentId, emitEvent)
|
|
100
105
|
local parentTarget, isPausedOrMaxed = getTargetQueueList(parentPrefix .. "meta", parentPrefix .. "active",
|
|
101
106
|
parentPrefix .. "wait", parentPrefix .. "paused")
|
|
102
107
|
addJobInTargetList(parentTarget, parentPrefix .. "marker", "RPUSH", isPausedOrMaxed, parentId)
|
|
@@ -124,10 +129,10 @@ local function removeParentDependencyKey(jobKey, hard, parentKey, baseKey, debou
|
|
|
124
129
|
rcall("DEL", parentPrefix .. "de:" .. debounceId)
|
|
125
130
|
end
|
|
126
131
|
else
|
|
127
|
-
|
|
132
|
+
_moveParentToWait(parentPrefix, parentId)
|
|
128
133
|
end
|
|
129
134
|
else
|
|
130
|
-
|
|
135
|
+
_moveParentToWait(parentPrefix, parentId, true)
|
|
131
136
|
end
|
|
132
137
|
end
|
|
133
138
|
end
|
|
@@ -155,10 +160,10 @@ local function removeParentDependencyKey(jobKey, hard, parentKey, baseKey, debou
|
|
|
155
160
|
rcall("DEL", parentPrefix .. "de:" .. parentAttributes[2])
|
|
156
161
|
end
|
|
157
162
|
else
|
|
158
|
-
|
|
163
|
+
_moveParentToWait(parentPrefix, parentId)
|
|
159
164
|
end
|
|
160
165
|
else
|
|
161
|
-
|
|
166
|
+
_moveParentToWait(parentPrefix, parentId, true)
|
|
162
167
|
end
|
|
163
168
|
end
|
|
164
169
|
end
|
|
@@ -172,7 +177,7 @@ local function removeJob(jobId, hard, baseKey, shouldRemoveDeduplicationKey)
|
|
|
172
177
|
local jobKey = baseKey .. jobId
|
|
173
178
|
removeParentDependencyKey(jobKey, hard, nil, baseKey)
|
|
174
179
|
if shouldRemoveDeduplicationKey then
|
|
175
|
-
|
|
180
|
+
removeDeduplicationKeyIfNeededOnRemoval(baseKey, jobKey, jobId)
|
|
176
181
|
end
|
|
177
182
|
removeJobKeys(jobKey)
|
|
178
183
|
end
|
|
@@ -186,11 +191,26 @@ end
|
|
|
186
191
|
Functions to remove jobs.
|
|
187
192
|
]]
|
|
188
193
|
-- Includes
|
|
194
|
+
--[[
|
|
195
|
+
Function to filter out jobs to ignore from a table.
|
|
196
|
+
]]
|
|
197
|
+
local function filterOutJobsToIgnore(jobs, jobsToIgnore)
|
|
198
|
+
local filteredJobs = {}
|
|
199
|
+
for i = 1, #jobs do
|
|
200
|
+
if not jobsToIgnore[jobs[i]] then
|
|
201
|
+
table.insert(filteredJobs, jobs[i])
|
|
202
|
+
end
|
|
203
|
+
end
|
|
204
|
+
return filteredJobs
|
|
205
|
+
end
|
|
189
206
|
local function getListItems(keyName, max)
|
|
190
207
|
return rcall('LRANGE', keyName, 0, max - 1)
|
|
191
208
|
end
|
|
192
|
-
local function removeListJobs(keyName, hard, baseKey, max)
|
|
209
|
+
local function removeListJobs(keyName, hard, baseKey, max, jobsToIgnore)
|
|
193
210
|
local jobs = getListItems(keyName, max)
|
|
211
|
+
if jobsToIgnore then
|
|
212
|
+
jobs = filterOutJobsToIgnore(jobs, jobsToIgnore)
|
|
213
|
+
end
|
|
194
214
|
local count = removeJobs(jobs, hard, baseKey, max)
|
|
195
215
|
rcall("LTRIM", keyName, #jobs, -1)
|
|
196
216
|
return count
|
|
@@ -220,15 +240,8 @@ local function getZSetItems(keyName, max)
|
|
|
220
240
|
end
|
|
221
241
|
local function removeZSetJobs(keyName, hard, baseKey, max, jobsToIgnore)
|
|
222
242
|
local jobs = getZSetItems(keyName, max)
|
|
223
|
-
-- filter out jobs to ignore
|
|
224
243
|
if jobsToIgnore then
|
|
225
|
-
|
|
226
|
-
for i = 1, #jobs do
|
|
227
|
-
if not jobsToIgnore[jobs[i]] then
|
|
228
|
-
table.insert(filteredJobs, jobs[i])
|
|
229
|
-
end
|
|
230
|
-
end
|
|
231
|
-
jobs = filteredJobs
|
|
244
|
+
jobs = filterOutJobsToIgnore(jobs, jobsToIgnore)
|
|
232
245
|
end
|
|
233
246
|
local count = removeJobs(jobs, hard, baseKey, max)
|
|
234
247
|
if(#jobs > 0) then
|
|
@@ -28,7 +28,7 @@ local function getNextDelayedTimestamp(delayedKey)
|
|
|
28
28
|
local result = rcall("ZRANGE", delayedKey, 0, 0, "WITHSCORES")
|
|
29
29
|
if #result then
|
|
30
30
|
local nextTimestamp = tonumber(result[2])
|
|
31
|
-
if nextTimestamp ~= nil then
|
|
31
|
+
if nextTimestamp ~= nil then
|
|
32
32
|
return nextTimestamp / 0x1000
|
|
33
33
|
end
|
|
34
34
|
end
|
|
@@ -44,10 +44,16 @@ end
|
|
|
44
44
|
Function to add job considering priority.
|
|
45
45
|
]]
|
|
46
46
|
-- Includes
|
|
47
|
+
--[[
|
|
48
|
+
Function to get priority score.
|
|
49
|
+
]]
|
|
50
|
+
local function getPriorityScore(priority, priorityCounterKey)
|
|
51
|
+
local prioCounter = rcall("INCR", priorityCounterKey)
|
|
52
|
+
return priority * 0x100000000 + prioCounter % 0x100000000
|
|
53
|
+
end
|
|
47
54
|
local function addJobWithPriority(markerKey, prioritizedKey, priority, jobId, priorityCounterKey,
|
|
48
55
|
isPausedOrMaxed)
|
|
49
|
-
local
|
|
50
|
-
local score = priority * 0x100000000 + prioCounter % 0x100000000
|
|
56
|
+
local score = getPriorityScore(priority, priorityCounterKey)
|
|
51
57
|
rcall("ZADD", prioritizedKey, score, jobId)
|
|
52
58
|
addBaseMarkerIfNeeded(markerKey, isPausedOrMaxed)
|
|
53
59
|
end
|