bullmq 4.0.0-beta.1 → 4.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +156 -22
- package/dist/cjs/classes/async-fifo-queue.js +90 -0
- package/dist/cjs/classes/async-fifo-queue.js.map +1 -0
- package/dist/{classes → cjs/classes}/backoffs.js +10 -9
- package/dist/cjs/classes/backoffs.js.map +1 -0
- package/dist/cjs/classes/child-pool.js +64 -0
- package/dist/cjs/classes/child-pool.js.map +1 -0
- package/dist/cjs/classes/child-processor.js +150 -0
- package/dist/cjs/classes/child-processor.js.map +1 -0
- package/dist/cjs/classes/child.js +216 -0
- package/dist/cjs/classes/child.js.map +1 -0
- package/dist/cjs/classes/delayed-error.js +19 -0
- package/dist/cjs/classes/delayed-error.js.map +1 -0
- package/dist/cjs/classes/flow-producer.js +283 -0
- package/dist/cjs/classes/flow-producer.js.map +1 -0
- package/dist/{classes → cjs/classes}/index.js +11 -3
- package/dist/cjs/classes/index.js.map +1 -0
- package/dist/cjs/classes/job.js +768 -0
- package/dist/cjs/classes/job.js.map +1 -0
- package/dist/cjs/classes/main-base.js +45 -0
- package/dist/cjs/classes/main-base.js.map +1 -0
- package/dist/cjs/classes/main-worker.js +10 -0
- package/dist/cjs/classes/main-worker.js.map +1 -0
- package/dist/cjs/classes/main.js +10 -0
- package/dist/cjs/classes/main.js.map +1 -0
- package/dist/cjs/classes/queue-base.js +135 -0
- package/dist/cjs/classes/queue-base.js.map +1 -0
- package/dist/cjs/classes/queue-events.js +120 -0
- package/dist/cjs/classes/queue-events.js.map +1 -0
- package/dist/cjs/classes/queue-getters.js +347 -0
- package/dist/cjs/classes/queue-getters.js.map +1 -0
- package/dist/cjs/classes/queue-keys.js +45 -0
- package/dist/cjs/classes/queue-keys.js.map +1 -0
- package/dist/cjs/classes/queue.js +275 -0
- package/dist/cjs/classes/queue.js.map +1 -0
- package/dist/cjs/classes/redis-connection.js +207 -0
- package/dist/cjs/classes/redis-connection.js.map +1 -0
- package/dist/cjs/classes/repeat.js +149 -0
- package/dist/cjs/classes/repeat.js.map +1 -0
- package/dist/{classes → cjs/classes}/sandbox.js +18 -14
- package/dist/cjs/classes/sandbox.js.map +1 -0
- package/dist/cjs/classes/scripts.js +658 -0
- package/dist/cjs/classes/scripts.js.map +1 -0
- package/dist/cjs/classes/unrecoverable-error.js +19 -0
- package/dist/cjs/classes/unrecoverable-error.js.map +1 -0
- package/dist/cjs/classes/waiting-children-error.js +19 -0
- package/dist/cjs/classes/waiting-children-error.js.map +1 -0
- package/dist/cjs/classes/worker.js +577 -0
- package/dist/cjs/classes/worker.js.map +1 -0
- package/dist/cjs/commands/addJob-9.lua +170 -0
- package/dist/cjs/commands/changeDelay-3.lua +40 -0
- package/dist/cjs/commands/changePriority-5.lua +52 -0
- package/dist/cjs/commands/cleanJobsInSet-2.lua +48 -0
- package/dist/cjs/commands/drain-4.lua +26 -0
- package/dist/{commands → cjs/commands}/extendLock-2.lua +1 -0
- package/dist/cjs/commands/getCounts-1.lua +35 -0
- package/dist/cjs/commands/getRanges-1.lua +69 -0
- package/dist/cjs/commands/getState-8.lua +66 -0
- package/dist/cjs/commands/getStateV2-8.lua +59 -0
- package/dist/cjs/commands/includes/addDelayMarkerIfNeeded.lua +15 -0
- package/dist/cjs/commands/includes/addJobWithPriority.lua +15 -0
- package/dist/cjs/commands/includes/addPriorityMarkerIfNeeded.lua +12 -0
- package/dist/cjs/commands/includes/batches.lua +18 -0
- package/dist/cjs/commands/includes/checkItemInList.lua +12 -0
- package/dist/cjs/commands/includes/checkStalledJobs.lua +139 -0
- package/dist/cjs/commands/includes/cleanList.lua +47 -0
- package/dist/cjs/commands/includes/cleanSet.lua +39 -0
- package/dist/cjs/commands/includes/collectMetrics.lua +46 -0
- package/dist/cjs/commands/includes/destructureJobKey.lua +12 -0
- package/dist/cjs/commands/includes/getJobsInZset.lua +12 -0
- package/dist/cjs/commands/includes/getNextDelayedTimestamp.lua +13 -0
- package/dist/cjs/commands/includes/getRateLimitTTL.lua +17 -0
- package/dist/cjs/commands/includes/getTargetQueueList.lua +12 -0
- package/dist/cjs/commands/includes/getTimestamp.lua +19 -0
- package/dist/cjs/commands/includes/getZSetItems.lua +7 -0
- package/dist/cjs/commands/includes/isLocked.lua +31 -0
- package/dist/cjs/commands/includes/moveJobFromPriorityToActive.lua +14 -0
- package/dist/cjs/commands/includes/moveParentFromWaitingChildrenToFailed.lua +28 -0
- package/dist/cjs/commands/includes/prepareJobForProcessing.lua +74 -0
- package/dist/cjs/commands/includes/promoteDelayedJobs.lua +39 -0
- package/dist/cjs/commands/includes/pushBackJobWithPriority.lua +9 -0
- package/dist/cjs/commands/includes/removeJob.lua +13 -0
- package/dist/cjs/commands/includes/removeJobFromAnyState.lua +35 -0
- package/dist/cjs/commands/includes/removeJobs.lua +25 -0
- package/dist/cjs/commands/includes/removeJobsByMaxAge.lua +15 -0
- package/dist/cjs/commands/includes/removeJobsByMaxCount.lua +15 -0
- package/dist/cjs/commands/includes/removeParentDependencyKey.lua +77 -0
- package/dist/cjs/commands/includes/removeZSetJobs.lua +15 -0
- package/dist/cjs/commands/includes/trimEvents.lua +12 -0
- package/dist/cjs/commands/includes/updateParentDepsIfNeeded.lua +40 -0
- package/dist/cjs/commands/index.js +10 -0
- package/dist/cjs/commands/index.js.map +1 -0
- package/dist/cjs/commands/isFinished-3.lua +48 -0
- package/dist/cjs/commands/isJobInList-1.lua +16 -0
- package/dist/cjs/commands/moveJobFromActiveToWait-9.lua +53 -0
- package/dist/cjs/commands/moveStalledJobsToWait-8.lua +24 -0
- package/dist/cjs/commands/moveToActive-10.lua +116 -0
- package/dist/cjs/commands/moveToDelayed-8.lua +66 -0
- package/dist/cjs/commands/moveToFinished-13.lua +250 -0
- package/dist/cjs/commands/moveToWaitingChildren-4.lua +62 -0
- package/dist/cjs/commands/obliterate-2.lua +102 -0
- package/dist/cjs/commands/pause-5.lua +36 -0
- package/dist/cjs/commands/promote-7.lua +57 -0
- package/dist/cjs/commands/releaseLock-1.lua +19 -0
- package/dist/cjs/commands/removeJob-1.lua +71 -0
- package/{src → dist/cjs}/commands/removeRepeatable-2.lua +13 -1
- package/dist/cjs/commands/reprocessJob-6.lua +43 -0
- package/dist/cjs/commands/retryJob-9.lua +69 -0
- package/dist/cjs/commands/retryJobs-6.lua +53 -0
- package/dist/cjs/commands/saveStacktrace-1.lua +22 -0
- package/dist/cjs/commands/script-loader.js +408 -0
- package/dist/cjs/commands/script-loader.js.map +1 -0
- package/dist/cjs/commands/updateData-1.lua +20 -0
- package/dist/cjs/commands/updateProgress-2.lua +26 -0
- package/dist/cjs/enums/error-code.enum.js +13 -0
- package/dist/cjs/enums/error-code.enum.js.map +1 -0
- package/dist/cjs/enums/index.js +6 -0
- package/dist/cjs/enums/index.js.map +1 -0
- package/dist/cjs/enums/metrics-time.js +15 -0
- package/dist/cjs/enums/metrics-time.js.map +1 -0
- package/dist/{index.js → cjs/index.js} +2 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/interfaces/advanced-options.js +3 -0
- package/dist/cjs/interfaces/advanced-options.js.map +1 -0
- package/dist/cjs/interfaces/backoff-options.js.map +1 -0
- package/dist/cjs/interfaces/base-job-options.js +3 -0
- package/dist/cjs/interfaces/base-job-options.js.map +1 -0
- package/dist/cjs/interfaces/child-command.js +10 -0
- package/dist/cjs/interfaces/child-command.js.map +1 -0
- package/dist/{interfaces/backoff-opts.js → cjs/interfaces/child-message.js} +1 -1
- package/dist/cjs/interfaces/child-message.js.map +1 -0
- package/dist/{interfaces/redis-opts.js → cjs/interfaces/connection.js} +1 -1
- package/dist/cjs/interfaces/connection.js.map +1 -0
- package/dist/{interfaces/jobs-opts.js → cjs/interfaces/flow-job.js} +1 -1
- package/dist/cjs/interfaces/flow-job.js.map +1 -0
- package/dist/cjs/interfaces/index.js +28 -0
- package/dist/cjs/interfaces/index.js.map +1 -0
- package/dist/cjs/interfaces/ioredis-events.js +3 -0
- package/dist/cjs/interfaces/ioredis-events.js.map +1 -0
- package/dist/{interfaces/repeat-opts.js → cjs/interfaces/job-json.js} +1 -1
- package/dist/cjs/interfaces/job-json.js.map +1 -0
- package/dist/{interfaces/worker-opts.js → cjs/interfaces/keep-jobs.js} +1 -1
- package/dist/cjs/interfaces/keep-jobs.js.map +1 -0
- package/dist/cjs/interfaces/metrics-options.js +3 -0
- package/dist/cjs/interfaces/metrics-options.js.map +1 -0
- package/dist/cjs/interfaces/metrics.js +3 -0
- package/dist/cjs/interfaces/metrics.js.map +1 -0
- package/dist/cjs/interfaces/minimal-job.js +3 -0
- package/dist/cjs/interfaces/minimal-job.js.map +1 -0
- package/dist/cjs/interfaces/parent-command.js +15 -0
- package/dist/cjs/interfaces/parent-command.js.map +1 -0
- package/dist/cjs/interfaces/parent-message.js +3 -0
- package/dist/cjs/interfaces/parent-message.js.map +1 -0
- package/dist/cjs/interfaces/parent.js +3 -0
- package/dist/cjs/interfaces/parent.js.map +1 -0
- package/dist/{interfaces → cjs/interfaces}/queue-options.js +1 -0
- package/dist/cjs/interfaces/queue-options.js.map +1 -0
- package/dist/cjs/interfaces/rate-limiter-options.js.map +1 -0
- package/dist/cjs/interfaces/redis-options.js.map +1 -0
- package/dist/{interfaces/jobs-options.js → cjs/interfaces/redis-streams.js} +1 -1
- package/dist/cjs/interfaces/redis-streams.js.map +1 -0
- package/dist/cjs/interfaces/repeat-options.js.map +1 -0
- package/dist/cjs/interfaces/sandboxed-job-processor.js +3 -0
- package/dist/cjs/interfaces/sandboxed-job-processor.js.map +1 -0
- package/dist/cjs/interfaces/sandboxed-job.js +3 -0
- package/dist/cjs/interfaces/sandboxed-job.js.map +1 -0
- package/dist/cjs/interfaces/worker-options.js.map +1 -0
- package/dist/cjs/scripts/addJob-9.js +252 -0
- package/dist/cjs/scripts/addJob-9.js.map +1 -0
- package/dist/cjs/scripts/changeDelay-3.js +41 -0
- package/dist/cjs/scripts/changeDelay-3.js.map +1 -0
- package/dist/cjs/scripts/changePriority-5.js +87 -0
- package/dist/cjs/scripts/changePriority-5.js.map +1 -0
- package/dist/cjs/scripts/cleanJobsInSet-2.js +259 -0
- package/dist/cjs/scripts/cleanJobsInSet-2.js.map +1 -0
- package/dist/cjs/scripts/drain-4.js +178 -0
- package/dist/cjs/scripts/drain-4.js.map +1 -0
- package/dist/cjs/scripts/extendLock-2.js +30 -0
- package/dist/cjs/scripts/extendLock-2.js.map +1 -0
- package/dist/cjs/scripts/getCounts-1.js +41 -0
- package/dist/cjs/scripts/getCounts-1.js.map +1 -0
- package/dist/cjs/scripts/getRanges-1.js +72 -0
- package/dist/cjs/scripts/getRanges-1.js.map +1 -0
- package/dist/cjs/scripts/getState-8.js +74 -0
- package/dist/cjs/scripts/getState-8.js.map +1 -0
- package/dist/cjs/scripts/getStateV2-8.js +58 -0
- package/dist/cjs/scripts/getStateV2-8.js.map +1 -0
- package/dist/cjs/scripts/index.js +34 -0
- package/dist/cjs/scripts/index.js.map +1 -0
- package/dist/cjs/scripts/isFinished-3.js +49 -0
- package/dist/cjs/scripts/isFinished-3.js.map +1 -0
- package/dist/cjs/scripts/isJobInList-1.js +32 -0
- package/dist/cjs/scripts/isJobInList-1.js.map +1 -0
- package/dist/cjs/scripts/moveJobFromActiveToWait-9.js +70 -0
- package/dist/cjs/scripts/moveJobFromActiveToWait-9.js.map +1 -0
- package/dist/cjs/scripts/moveStalledJobsToWait-8.js +289 -0
- package/dist/cjs/scripts/moveStalledJobsToWait-8.js.map +1 -0
- package/dist/cjs/scripts/moveToActive-10.js +269 -0
- package/dist/cjs/scripts/moveToActive-10.js.map +1 -0
- package/dist/cjs/scripts/moveToDelayed-8.js +152 -0
- package/dist/cjs/scripts/moveToDelayed-8.js.map +1 -0
- package/dist/cjs/scripts/moveToFinished-13.js +624 -0
- package/dist/cjs/scripts/moveToFinished-13.js.map +1 -0
- package/dist/cjs/scripts/moveToWaitingChildren-4.js +59 -0
- package/dist/cjs/scripts/moveToWaitingChildren-4.js.map +1 -0
- package/dist/cjs/scripts/obliterate-2.js +244 -0
- package/dist/cjs/scripts/obliterate-2.js.map +1 -0
- package/dist/cjs/scripts/pause-5.js +48 -0
- package/dist/cjs/scripts/pause-5.js.map +1 -0
- package/dist/cjs/scripts/promote-7.js +87 -0
- package/dist/cjs/scripts/promote-7.js.map +1 -0
- package/dist/cjs/scripts/releaseLock-1.js +25 -0
- package/dist/cjs/scripts/releaseLock-1.js.map +1 -0
- package/dist/cjs/scripts/removeJob-1.js +210 -0
- package/dist/cjs/scripts/removeJob-1.js.map +1 -0
- package/dist/cjs/scripts/removeRepeatable-2.js +38 -0
- package/dist/cjs/scripts/removeRepeatable-2.js.map +1 -0
- package/dist/cjs/scripts/reprocessJob-6.js +56 -0
- package/dist/cjs/scripts/reprocessJob-6.js.map +1 -0
- package/dist/cjs/scripts/retryJob-9.js +128 -0
- package/dist/cjs/scripts/retryJob-9.js.map +1 -0
- package/dist/cjs/scripts/retryJobs-6.js +76 -0
- package/dist/cjs/scripts/retryJobs-6.js.map +1 -0
- package/dist/cjs/scripts/saveStacktrace-1.js +27 -0
- package/dist/cjs/scripts/saveStacktrace-1.js.map +1 -0
- package/dist/cjs/scripts/updateData-1.js +26 -0
- package/dist/cjs/scripts/updateData-1.js.map +1 -0
- package/dist/cjs/scripts/updateProgress-2.js +31 -0
- package/dist/cjs/scripts/updateProgress-2.js.map +1 -0
- package/dist/cjs/tsconfig-cjs.tsbuildinfo +1 -0
- package/dist/cjs/types/backoff-strategy.js +3 -0
- package/dist/cjs/types/backoff-strategy.js.map +1 -0
- package/dist/cjs/types/finished-status.js +3 -0
- package/dist/cjs/types/finished-status.js.map +1 -0
- package/dist/cjs/types/index.js +11 -0
- package/dist/cjs/types/index.js.map +1 -0
- package/dist/cjs/types/job-json-sandbox.js +3 -0
- package/dist/cjs/types/job-json-sandbox.js.map +1 -0
- package/dist/cjs/types/job-options.js +3 -0
- package/dist/cjs/types/job-options.js.map +1 -0
- package/dist/cjs/types/job-type.js +3 -0
- package/dist/cjs/types/job-type.js.map +1 -0
- package/dist/cjs/types/minimal-queue.js +3 -0
- package/dist/cjs/types/minimal-queue.js.map +1 -0
- package/dist/cjs/types/repeat-strategy.js +3 -0
- package/dist/cjs/types/repeat-strategy.js.map +1 -0
- package/dist/cjs/utils.js +152 -0
- package/dist/cjs/utils.js.map +1 -0
- package/dist/esm/classes/async-fifo-queue.d.ts +31 -0
- package/dist/esm/classes/async-fifo-queue.js +86 -0
- package/dist/esm/classes/async-fifo-queue.js.map +1 -0
- package/dist/esm/classes/backoffs.d.ts +10 -0
- package/dist/esm/classes/backoffs.js +44 -0
- package/dist/esm/classes/backoffs.js.map +1 -0
- package/dist/esm/classes/child-pool.d.ts +23 -0
- package/dist/esm/classes/child-pool.js +60 -0
- package/dist/esm/classes/child-pool.js.map +1 -0
- package/dist/esm/classes/child-processor.d.ts +26 -0
- package/dist/esm/classes/child-processor.js +146 -0
- package/dist/esm/classes/child-processor.js.map +1 -0
- package/dist/esm/classes/child.d.ts +36 -0
- package/dist/esm/classes/child.js +212 -0
- package/dist/esm/classes/child.js.map +1 -0
- package/dist/esm/classes/delayed-error.d.ts +10 -0
- package/dist/esm/classes/delayed-error.js +15 -0
- package/dist/esm/classes/delayed-error.js.map +1 -0
- package/dist/esm/classes/flow-producer.d.ts +163 -0
- package/dist/esm/classes/flow-producer.js +279 -0
- package/dist/esm/classes/flow-producer.js.map +1 -0
- package/dist/{classes → esm/classes}/index.d.ts +9 -3
- package/dist/esm/classes/index.js +22 -0
- package/dist/esm/classes/index.js.map +1 -0
- package/dist/esm/classes/job.d.ts +355 -0
- package/dist/esm/classes/job.js +764 -0
- package/dist/esm/classes/job.js.map +1 -0
- package/dist/esm/classes/main-base.d.ts +4 -0
- package/dist/esm/classes/main-base.js +43 -0
- package/dist/esm/classes/main-base.js.map +1 -0
- package/dist/esm/classes/main-worker.js +8 -0
- package/dist/esm/classes/main-worker.js.map +1 -0
- package/dist/esm/classes/main.js +8 -0
- package/dist/esm/classes/main.js.map +1 -0
- package/dist/esm/classes/queue-base.d.ts +67 -0
- package/dist/esm/classes/queue-base.js +131 -0
- package/dist/esm/classes/queue-base.js.map +1 -0
- package/dist/esm/classes/queue-events.d.ts +179 -0
- package/dist/esm/classes/queue-events.js +116 -0
- package/dist/esm/classes/queue-events.js.map +1 -0
- package/dist/esm/classes/queue-getters.d.ts +164 -0
- package/dist/esm/classes/queue-getters.js +344 -0
- package/dist/esm/classes/queue-getters.js.map +1 -0
- package/dist/esm/classes/queue-keys.d.ts +10 -0
- package/dist/esm/classes/queue-keys.js +41 -0
- package/dist/esm/classes/queue-keys.js.map +1 -0
- package/dist/esm/classes/queue.d.ts +236 -0
- package/dist/esm/classes/queue.js +271 -0
- package/dist/esm/classes/queue.js.map +1 -0
- package/dist/esm/classes/redis-connection.d.ts +37 -0
- package/dist/esm/classes/redis-connection.js +203 -0
- package/dist/esm/classes/redis-connection.js.map +1 -0
- package/dist/esm/classes/repeat.d.ts +25 -0
- package/dist/esm/classes/repeat.js +144 -0
- package/dist/esm/classes/repeat.js.map +1 -0
- package/dist/esm/classes/sandbox.d.ts +4 -0
- package/dist/esm/classes/sandbox.js +58 -0
- package/dist/esm/classes/sandbox.js.map +1 -0
- package/dist/esm/classes/scripts.d.ts +106 -0
- package/dist/esm/classes/scripts.js +654 -0
- package/dist/esm/classes/scripts.js.map +1 -0
- package/dist/esm/classes/unrecoverable-error.d.ts +10 -0
- package/dist/esm/classes/unrecoverable-error.js +15 -0
- package/dist/esm/classes/unrecoverable-error.js.map +1 -0
- package/dist/esm/classes/waiting-children-error.d.ts +10 -0
- package/dist/esm/classes/waiting-children-error.js +15 -0
- package/dist/esm/classes/waiting-children-error.js.map +1 -0
- package/dist/esm/classes/worker.d.ts +215 -0
- package/dist/esm/classes/worker.js +573 -0
- package/dist/esm/classes/worker.js.map +1 -0
- package/dist/esm/commands/addJob-9.lua +170 -0
- package/dist/esm/commands/changeDelay-3.lua +40 -0
- package/dist/esm/commands/changePriority-5.lua +52 -0
- package/dist/esm/commands/cleanJobsInSet-2.lua +48 -0
- package/dist/esm/commands/drain-4.lua +26 -0
- package/{src → dist/esm}/commands/extendLock-2.lua +1 -0
- package/dist/esm/commands/getCounts-1.lua +35 -0
- package/dist/esm/commands/getRanges-1.lua +69 -0
- package/dist/esm/commands/getState-8.lua +66 -0
- package/dist/esm/commands/getStateV2-8.lua +59 -0
- package/dist/esm/commands/includes/addDelayMarkerIfNeeded.lua +15 -0
- package/dist/esm/commands/includes/addJobWithPriority.lua +15 -0
- package/dist/esm/commands/includes/addPriorityMarkerIfNeeded.lua +12 -0
- package/dist/esm/commands/includes/batches.lua +18 -0
- package/dist/esm/commands/includes/checkItemInList.lua +12 -0
- package/dist/esm/commands/includes/checkStalledJobs.lua +139 -0
- package/dist/esm/commands/includes/cleanList.lua +47 -0
- package/dist/esm/commands/includes/cleanSet.lua +39 -0
- package/dist/esm/commands/includes/collectMetrics.lua +46 -0
- package/dist/esm/commands/includes/destructureJobKey.lua +12 -0
- package/dist/esm/commands/includes/getJobsInZset.lua +12 -0
- package/dist/esm/commands/includes/getNextDelayedTimestamp.lua +13 -0
- package/dist/esm/commands/includes/getRateLimitTTL.lua +17 -0
- package/dist/esm/commands/includes/getTargetQueueList.lua +12 -0
- package/dist/esm/commands/includes/getTimestamp.lua +19 -0
- package/dist/esm/commands/includes/getZSetItems.lua +7 -0
- package/dist/esm/commands/includes/isLocked.lua +31 -0
- package/dist/esm/commands/includes/moveJobFromPriorityToActive.lua +14 -0
- package/dist/esm/commands/includes/moveParentFromWaitingChildrenToFailed.lua +28 -0
- package/dist/esm/commands/includes/prepareJobForProcessing.lua +74 -0
- package/dist/esm/commands/includes/promoteDelayedJobs.lua +39 -0
- package/dist/esm/commands/includes/pushBackJobWithPriority.lua +9 -0
- package/dist/esm/commands/includes/removeJob.lua +13 -0
- package/dist/esm/commands/includes/removeJobFromAnyState.lua +35 -0
- package/dist/esm/commands/includes/removeJobs.lua +25 -0
- package/dist/esm/commands/includes/removeJobsByMaxAge.lua +15 -0
- package/dist/esm/commands/includes/removeJobsByMaxCount.lua +15 -0
- package/dist/esm/commands/includes/removeParentDependencyKey.lua +77 -0
- package/dist/esm/commands/includes/removeZSetJobs.lua +15 -0
- package/dist/esm/commands/includes/trimEvents.lua +12 -0
- package/dist/esm/commands/includes/updateParentDepsIfNeeded.lua +40 -0
- package/dist/esm/commands/index.d.ts +4 -0
- package/dist/esm/commands/index.js +5 -0
- package/dist/esm/commands/index.js.map +1 -0
- package/dist/esm/commands/isFinished-3.lua +48 -0
- package/dist/esm/commands/isJobInList-1.lua +16 -0
- package/dist/esm/commands/moveJobFromActiveToWait-9.lua +53 -0
- package/dist/esm/commands/moveStalledJobsToWait-8.lua +24 -0
- package/dist/esm/commands/moveToActive-10.lua +116 -0
- package/dist/esm/commands/moveToDelayed-8.lua +66 -0
- package/dist/esm/commands/moveToFinished-13.lua +250 -0
- package/dist/esm/commands/moveToWaitingChildren-4.lua +62 -0
- package/dist/esm/commands/obliterate-2.lua +102 -0
- package/dist/esm/commands/pause-5.lua +36 -0
- package/dist/esm/commands/promote-7.lua +57 -0
- package/dist/esm/commands/releaseLock-1.lua +19 -0
- package/dist/esm/commands/removeJob-1.lua +71 -0
- package/dist/{commands → esm/commands}/removeRepeatable-2.lua +13 -1
- package/dist/esm/commands/reprocessJob-6.lua +43 -0
- package/dist/esm/commands/retryJob-9.lua +69 -0
- package/dist/esm/commands/retryJobs-6.lua +53 -0
- package/dist/esm/commands/saveStacktrace-1.lua +22 -0
- package/dist/esm/commands/script-loader.d.ts +119 -0
- package/dist/esm/commands/script-loader.js +403 -0
- package/dist/esm/commands/script-loader.js.map +1 -0
- package/dist/esm/commands/updateData-1.lua +20 -0
- package/dist/esm/commands/updateProgress-2.lua +26 -0
- package/dist/esm/enums/error-code.enum.d.ts +8 -0
- package/dist/esm/enums/error-code.enum.js +10 -0
- package/dist/esm/enums/error-code.enum.js.map +1 -0
- package/dist/esm/enums/index.d.ts +2 -0
- package/dist/esm/enums/index.js +3 -0
- package/dist/esm/enums/index.js.map +1 -0
- package/dist/esm/enums/metrics-time.d.ts +10 -0
- package/dist/esm/enums/metrics-time.js +12 -0
- package/dist/esm/enums/metrics-time.js.map +1 -0
- package/dist/{index.d.ts → esm/index.d.ts} +2 -0
- package/{src/index.ts → dist/esm/index.js} +7 -4
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/interfaces/advanced-options.d.ts +13 -0
- package/dist/esm/interfaces/advanced-options.js +2 -0
- package/dist/esm/interfaces/advanced-options.js.map +1 -0
- package/dist/esm/interfaces/backoff-options.d.ts +15 -0
- package/dist/esm/interfaces/backoff-options.js +2 -0
- package/dist/esm/interfaces/backoff-options.js.map +1 -0
- package/dist/esm/interfaces/base-job-options.d.ts +97 -0
- package/dist/esm/interfaces/base-job-options.js +2 -0
- package/dist/esm/interfaces/base-job-options.js.map +1 -0
- package/dist/esm/interfaces/child-command.d.ts +5 -0
- package/dist/esm/interfaces/child-command.js +7 -0
- package/dist/esm/interfaces/child-command.js.map +1 -0
- package/dist/esm/interfaces/child-message.d.ts +6 -0
- package/dist/esm/interfaces/child-message.js +2 -0
- package/dist/esm/interfaces/child-message.js.map +1 -0
- package/dist/esm/interfaces/connection.d.ts +8 -0
- package/dist/esm/interfaces/connection.js +2 -0
- package/dist/esm/interfaces/connection.js.map +1 -0
- package/dist/esm/interfaces/flow-job.d.ts +19 -0
- package/dist/esm/interfaces/flow-job.js +2 -0
- package/dist/esm/interfaces/flow-job.js.map +1 -0
- package/dist/esm/interfaces/index.d.ts +24 -0
- package/dist/esm/interfaces/index.js +25 -0
- package/dist/esm/interfaces/index.js.map +1 -0
- package/dist/esm/interfaces/ioredis-events.d.ts +8 -0
- package/dist/esm/interfaces/ioredis-events.js +2 -0
- package/dist/esm/interfaces/ioredis-events.js.map +1 -0
- package/dist/esm/interfaces/job-json.d.ts +37 -0
- package/dist/esm/interfaces/job-json.js +2 -0
- package/dist/esm/interfaces/job-json.js.map +1 -0
- package/dist/esm/interfaces/keep-jobs.d.ts +17 -0
- package/dist/esm/interfaces/keep-jobs.js +2 -0
- package/dist/esm/interfaces/keep-jobs.js.map +1 -0
- package/dist/esm/interfaces/metrics-options.d.ts +12 -0
- package/dist/esm/interfaces/metrics-options.js +2 -0
- package/dist/esm/interfaces/metrics-options.js.map +1 -0
- package/dist/esm/interfaces/metrics.d.ts +9 -0
- package/dist/esm/interfaces/metrics.js +2 -0
- package/dist/esm/interfaces/metrics.js.map +1 -0
- package/dist/esm/interfaces/minimal-job.d.ts +129 -0
- package/dist/esm/interfaces/minimal-job.js +2 -0
- package/dist/esm/interfaces/minimal-job.js.map +1 -0
- package/dist/esm/interfaces/parent-command.d.ts +10 -0
- package/dist/esm/interfaces/parent-command.js +12 -0
- package/dist/esm/interfaces/parent-command.js.map +1 -0
- package/dist/esm/interfaces/parent-message.d.ts +8 -0
- package/dist/esm/interfaces/parent-message.js +2 -0
- package/dist/esm/interfaces/parent-message.js.map +1 -0
- package/dist/esm/interfaces/parent.d.ts +20 -0
- package/dist/esm/interfaces/parent.js +2 -0
- package/dist/esm/interfaces/parent.js.map +1 -0
- package/dist/esm/interfaces/queue-options.d.ts +74 -0
- package/dist/esm/interfaces/queue-options.js +6 -0
- package/dist/esm/interfaces/queue-options.js.map +1 -0
- package/dist/esm/interfaces/rate-limiter-options.d.ts +12 -0
- package/dist/esm/interfaces/rate-limiter-options.js +2 -0
- package/dist/esm/interfaces/rate-limiter-options.js.map +1 -0
- package/dist/esm/interfaces/redis-options.d.ts +7 -0
- package/dist/esm/interfaces/redis-options.js +2 -0
- package/dist/esm/interfaces/redis-options.js.map +1 -0
- package/dist/esm/interfaces/redis-streams.d.ts +4 -0
- package/dist/esm/interfaces/redis-streams.js +2 -0
- package/dist/esm/interfaces/redis-streams.js.map +1 -0
- package/dist/esm/interfaces/repeat-options.d.ts +33 -0
- package/dist/esm/interfaces/repeat-options.js +2 -0
- package/dist/esm/interfaces/repeat-options.js.map +1 -0
- package/dist/esm/interfaces/sandboxed-job-processor.d.ts +5 -0
- package/dist/esm/interfaces/sandboxed-job-processor.js +2 -0
- package/dist/esm/interfaces/sandboxed-job-processor.js.map +1 -0
- package/dist/esm/interfaces/sandboxed-job.d.ts +13 -0
- package/dist/esm/interfaces/sandboxed-job.js +2 -0
- package/dist/esm/interfaces/sandboxed-job.js.map +1 -0
- package/dist/esm/interfaces/worker-options.d.ts +123 -0
- package/dist/esm/interfaces/worker-options.js +2 -0
- package/dist/esm/interfaces/worker-options.js.map +1 -0
- package/dist/esm/scripts/addJob-9.d.ts +5 -0
- package/dist/esm/scripts/addJob-9.js +249 -0
- package/dist/esm/scripts/addJob-9.js.map +1 -0
- package/dist/esm/scripts/changeDelay-3.d.ts +5 -0
- package/dist/esm/scripts/changeDelay-3.js +38 -0
- package/dist/esm/scripts/changeDelay-3.js.map +1 -0
- package/dist/esm/scripts/changePriority-5.d.ts +5 -0
- package/dist/esm/scripts/changePriority-5.js +84 -0
- package/dist/esm/scripts/changePriority-5.js.map +1 -0
- package/dist/esm/scripts/cleanJobsInSet-2.d.ts +5 -0
- package/dist/esm/scripts/cleanJobsInSet-2.js +256 -0
- package/dist/esm/scripts/cleanJobsInSet-2.js.map +1 -0
- package/dist/esm/scripts/drain-4.d.ts +5 -0
- package/dist/esm/scripts/drain-4.js +175 -0
- package/dist/esm/scripts/drain-4.js.map +1 -0
- package/dist/esm/scripts/extendLock-2.d.ts +5 -0
- package/dist/esm/scripts/extendLock-2.js +27 -0
- package/dist/esm/scripts/extendLock-2.js.map +1 -0
- package/dist/esm/scripts/getCounts-1.d.ts +5 -0
- package/dist/esm/scripts/getCounts-1.js +38 -0
- package/dist/esm/scripts/getCounts-1.js.map +1 -0
- package/dist/esm/scripts/getRanges-1.d.ts +5 -0
- package/dist/esm/scripts/getRanges-1.js +69 -0
- package/dist/esm/scripts/getRanges-1.js.map +1 -0
- package/dist/esm/scripts/getState-8.d.ts +5 -0
- package/dist/esm/scripts/getState-8.js +71 -0
- package/dist/esm/scripts/getState-8.js.map +1 -0
- package/dist/esm/scripts/getStateV2-8.d.ts +5 -0
- package/dist/esm/scripts/getStateV2-8.js +55 -0
- package/dist/esm/scripts/getStateV2-8.js.map +1 -0
- package/dist/esm/scripts/index.d.ts +30 -0
- package/dist/esm/scripts/index.js +31 -0
- package/dist/esm/scripts/index.js.map +1 -0
- package/dist/esm/scripts/isFinished-3.d.ts +5 -0
- package/dist/esm/scripts/isFinished-3.js +46 -0
- package/dist/esm/scripts/isFinished-3.js.map +1 -0
- package/dist/esm/scripts/isJobInList-1.d.ts +5 -0
- package/dist/esm/scripts/isJobInList-1.js +29 -0
- package/dist/esm/scripts/isJobInList-1.js.map +1 -0
- package/dist/esm/scripts/moveJobFromActiveToWait-9.d.ts +5 -0
- package/dist/esm/scripts/moveJobFromActiveToWait-9.js +67 -0
- package/dist/esm/scripts/moveJobFromActiveToWait-9.js.map +1 -0
- package/dist/esm/scripts/moveStalledJobsToWait-8.d.ts +5 -0
- package/dist/esm/scripts/moveStalledJobsToWait-8.js +286 -0
- package/dist/esm/scripts/moveStalledJobsToWait-8.js.map +1 -0
- package/dist/esm/scripts/moveToActive-10.d.ts +5 -0
- package/dist/esm/scripts/moveToActive-10.js +266 -0
- package/dist/esm/scripts/moveToActive-10.js.map +1 -0
- package/dist/esm/scripts/moveToDelayed-8.d.ts +5 -0
- package/dist/esm/scripts/moveToDelayed-8.js +149 -0
- package/dist/esm/scripts/moveToDelayed-8.js.map +1 -0
- package/dist/esm/scripts/moveToFinished-13.d.ts +5 -0
- package/dist/esm/scripts/moveToFinished-13.js +621 -0
- package/dist/esm/scripts/moveToFinished-13.js.map +1 -0
- package/dist/esm/scripts/moveToWaitingChildren-4.d.ts +5 -0
- package/dist/esm/scripts/moveToWaitingChildren-4.js +56 -0
- package/dist/esm/scripts/moveToWaitingChildren-4.js.map +1 -0
- package/dist/esm/scripts/obliterate-2.d.ts +5 -0
- package/dist/esm/scripts/obliterate-2.js +241 -0
- package/dist/esm/scripts/obliterate-2.js.map +1 -0
- package/dist/esm/scripts/pause-5.d.ts +5 -0
- package/dist/esm/scripts/pause-5.js +45 -0
- package/dist/esm/scripts/pause-5.js.map +1 -0
- package/dist/esm/scripts/promote-7.d.ts +5 -0
- package/dist/esm/scripts/promote-7.js +84 -0
- package/dist/esm/scripts/promote-7.js.map +1 -0
- package/dist/esm/scripts/releaseLock-1.d.ts +5 -0
- package/dist/esm/scripts/releaseLock-1.js +22 -0
- package/dist/esm/scripts/releaseLock-1.js.map +1 -0
- package/dist/esm/scripts/removeJob-1.d.ts +5 -0
- package/dist/esm/scripts/removeJob-1.js +207 -0
- package/dist/esm/scripts/removeJob-1.js.map +1 -0
- package/dist/esm/scripts/removeRepeatable-2.d.ts +5 -0
- package/dist/esm/scripts/removeRepeatable-2.js +35 -0
- package/dist/esm/scripts/removeRepeatable-2.js.map +1 -0
- package/dist/esm/scripts/reprocessJob-6.d.ts +5 -0
- package/dist/esm/scripts/reprocessJob-6.js +53 -0
- package/dist/esm/scripts/reprocessJob-6.js.map +1 -0
- package/dist/esm/scripts/retryJob-9.d.ts +5 -0
- package/dist/esm/scripts/retryJob-9.js +125 -0
- package/dist/esm/scripts/retryJob-9.js.map +1 -0
- package/dist/esm/scripts/retryJobs-6.d.ts +5 -0
- package/dist/esm/scripts/retryJobs-6.js +73 -0
- package/dist/esm/scripts/retryJobs-6.js.map +1 -0
- package/dist/esm/scripts/saveStacktrace-1.d.ts +5 -0
- package/dist/esm/scripts/saveStacktrace-1.js +24 -0
- package/dist/esm/scripts/saveStacktrace-1.js.map +1 -0
- package/dist/esm/scripts/updateData-1.d.ts +5 -0
- package/dist/esm/scripts/updateData-1.js +23 -0
- package/dist/esm/scripts/updateData-1.js.map +1 -0
- package/dist/esm/scripts/updateProgress-2.d.ts +5 -0
- package/dist/esm/scripts/updateProgress-2.js +28 -0
- package/dist/esm/scripts/updateProgress-2.js.map +1 -0
- package/dist/esm/tsconfig.tsbuildinfo +1 -0
- package/dist/esm/types/backoff-strategy.d.ts +2 -0
- package/dist/esm/types/backoff-strategy.js +2 -0
- package/dist/esm/types/backoff-strategy.js.map +1 -0
- package/dist/esm/types/finished-status.d.ts +2 -0
- package/dist/esm/types/finished-status.js +2 -0
- package/dist/esm/types/finished-status.js.map +1 -0
- package/dist/esm/types/index.d.ts +7 -0
- package/dist/esm/types/index.js +8 -0
- package/dist/esm/types/index.js.map +1 -0
- package/dist/esm/types/job-json-sandbox.d.ts +5 -0
- package/dist/esm/types/job-json-sandbox.js +2 -0
- package/dist/esm/types/job-json-sandbox.js.map +1 -0
- package/dist/esm/types/job-options.d.ts +20 -0
- package/dist/esm/types/job-options.js +2 -0
- package/dist/esm/types/job-options.js.map +1 -0
- package/dist/esm/types/job-type.d.ts +3 -0
- package/dist/esm/types/job-type.js +2 -0
- package/dist/esm/types/job-type.js.map +1 -0
- package/dist/esm/types/minimal-queue.d.ts +2 -0
- package/dist/esm/types/minimal-queue.js +2 -0
- package/dist/esm/types/minimal-queue.js.map +1 -0
- package/dist/esm/types/repeat-strategy.d.ts +2 -0
- package/dist/esm/types/repeat-strategy.js +2 -0
- package/dist/esm/types/repeat-strategy.js.map +1 -0
- package/dist/esm/utils.d.ts +42 -0
- package/dist/esm/utils.js +134 -0
- package/dist/esm/utils.js.map +1 -0
- package/package.json +181 -60
- package/.travis.yml +0 -32
- package/SUMMARY.md +0 -4
- package/commitlint.config.js +0 -1
- package/dist/classes/backoffs.d.ts +0 -14
- package/dist/classes/backoffs.js.map +0 -1
- package/dist/classes/child-pool.d.ts +0 -22
- package/dist/classes/child-pool.js +0 -98
- package/dist/classes/child-pool.js.map +0 -1
- package/dist/classes/compat.d.ts +0 -316
- package/dist/classes/compat.js +0 -667
- package/dist/classes/compat.js.map +0 -1
- package/dist/classes/index.js.map +0 -1
- package/dist/classes/job.d.ts +0 -93
- package/dist/classes/job.js +0 -351
- package/dist/classes/job.js.map +0 -1
- package/dist/classes/master.js +0 -112
- package/dist/classes/master.js.map +0 -1
- package/dist/classes/queue-base.d.ts +0 -23
- package/dist/classes/queue-base.js +0 -68
- package/dist/classes/queue-base.js.map +0 -1
- package/dist/classes/queue-events.d.ts +0 -8
- package/dist/classes/queue-events.js +0 -59
- package/dist/classes/queue-events.js.map +0 -1
- package/dist/classes/queue-getters.d.ts +0 -38
- package/dist/classes/queue-getters.js +0 -182
- package/dist/classes/queue-getters.js.map +0 -1
- package/dist/classes/queue-keeper.js +0 -103
- package/dist/classes/queue-keeper.js.map +0 -1
- package/dist/classes/queue-scheduler.d.ts +0 -25
- package/dist/classes/queue-scheduler.js +0 -96
- package/dist/classes/queue-scheduler.js.map +0 -1
- package/dist/classes/queue.d.ts +0 -46
- package/dist/classes/queue.js +0 -122
- package/dist/classes/queue.js.map +0 -1
- package/dist/classes/redis-connection.d.ts +0 -17
- package/dist/classes/redis-connection.js +0 -97
- package/dist/classes/redis-connection.js.map +0 -1
- package/dist/classes/repeat.d.ts +0 -26
- package/dist/classes/repeat.js +0 -128
- package/dist/classes/repeat.js.map +0 -1
- package/dist/classes/sandbox.d.ts +0 -2
- package/dist/classes/sandbox.js.map +0 -1
- package/dist/classes/scripts.d.ts +0 -43
- package/dist/classes/scripts.js +0 -296
- package/dist/classes/scripts.js.map +0 -1
- package/dist/classes/worker.d.ts +0 -38
- package/dist/classes/worker.js +0 -231
- package/dist/classes/worker.js.map +0 -1
- package/dist/commands/addJob-8.lua +0 -106
- package/dist/commands/cleanJobsInSet-1.lua +0 -48
- package/dist/commands/index.d.ts +0 -2
- package/dist/commands/index.js +0 -42
- package/dist/commands/index.js.map +0 -1
- package/dist/commands/isFinished-2.lua +0 -22
- package/dist/commands/isJobInList-1.lua +0 -20
- package/dist/commands/moveStalledJobsToWait-8.lua +0 -91
- package/dist/commands/moveToActive-8.lua +0 -79
- package/dist/commands/moveToDelayed-5.lua +0 -39
- package/dist/commands/moveToFinished-6.lua +0 -87
- package/dist/commands/moveToFinished-7.lua +0 -92
- package/dist/commands/pause-4.lua +0 -27
- package/dist/commands/promote-4.lua +0 -49
- package/dist/commands/releaseLock-1.lua +0 -19
- package/dist/commands/removeJob-10.lua +0 -37
- package/dist/commands/reprocessJob-4.lua +0 -36
- package/dist/commands/retryJob-4.lua +0 -34
- package/dist/commands/takeLock-1.lua +0 -17
- package/dist/commands/updateDelaySet-7.lua +0 -71
- package/dist/commands/updateProgress-2.lua +0 -15
- package/dist/enums/index.d.ts +0 -1
- package/dist/enums/index.js +0 -5
- package/dist/enums/index.js.map +0 -1
- package/dist/enums/retry-errors.enum.d.ts +0 -5
- package/dist/enums/retry-errors.enum.js +0 -9
- package/dist/enums/retry-errors.enum.js.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/interfaces/advance-opts.js +0 -12
- package/dist/interfaces/advance-opts.js.map +0 -1
- package/dist/interfaces/advanced-options.d.ts +0 -9
- package/dist/interfaces/advanced-options.js +0 -11
- package/dist/interfaces/advanced-options.js.map +0 -1
- package/dist/interfaces/advanced-opts.js +0 -11
- package/dist/interfaces/advanced-opts.js.map +0 -1
- package/dist/interfaces/backoff-options.d.ts +0 -4
- package/dist/interfaces/backoff-options.js.map +0 -1
- package/dist/interfaces/backoff-opts.js.map +0 -1
- package/dist/interfaces/index.d.ts +0 -9
- package/dist/interfaces/index.js +0 -6
- package/dist/interfaces/index.js.map +0 -1
- package/dist/interfaces/jobs-options.d.ts +0 -16
- package/dist/interfaces/jobs-options.js.map +0 -1
- package/dist/interfaces/jobs-opts.js.map +0 -1
- package/dist/interfaces/queue-keeper-opts.js +0 -3
- package/dist/interfaces/queue-keeper-opts.js.map +0 -1
- package/dist/interfaces/queue-options.d.ts +0 -24
- package/dist/interfaces/queue-options.js.map +0 -1
- package/dist/interfaces/queue-opts.js +0 -8
- package/dist/interfaces/queue-opts.js.map +0 -1
- package/dist/interfaces/queue-scheduler-options.d.ts +0 -5
- package/dist/interfaces/queue-scheduler-options.js +0 -3
- package/dist/interfaces/queue-scheduler-options.js.map +0 -1
- package/dist/interfaces/queue-scheduler-opts.js +0 -3
- package/dist/interfaces/queue-scheduler-opts.js.map +0 -1
- package/dist/interfaces/rate-limiter-options.d.ts +0 -4
- package/dist/interfaces/rate-limiter-options.js.map +0 -1
- package/dist/interfaces/rate-limiter-opts.js +0 -3
- package/dist/interfaces/rate-limiter-opts.js.map +0 -1
- package/dist/interfaces/redis-options.d.ts +0 -7
- package/dist/interfaces/redis-options.js.map +0 -1
- package/dist/interfaces/redis-opts.js.map +0 -1
- package/dist/interfaces/repeat-options.d.ts +0 -11
- package/dist/interfaces/repeat-options.js.map +0 -1
- package/dist/interfaces/repeat-opts.js.map +0 -1
- package/dist/interfaces/worker-options.d.ts +0 -11
- package/dist/interfaces/worker-options.js.map +0 -1
- package/dist/interfaces/worker-opts.js.map +0 -1
- package/dist/test/test_bulk.js +0 -55
- package/dist/test/test_bulk.js.map +0 -1
- package/dist/test/test_child-pool.js +0 -81
- package/dist/test/test_child-pool.js.map +0 -1
- package/dist/test/test_clean.js +0 -124
- package/dist/test/test_clean.js.map +0 -1
- package/dist/test/test_compat.d.ts +0 -1
- package/dist/test/test_compat.js +0 -533
- package/dist/test/test_compat.js.map +0 -1
- package/dist/test/test_connection.d.ts +0 -1
- package/dist/test/test_connection.js +0 -140
- package/dist/test/test_connection.js.map +0 -1
- package/dist/test/test_delay.d.ts +0 -1
- package/dist/test/test_delay.js +0 -186
- package/dist/test/test_delay.js.map +0 -1
- package/dist/test/test_events.d.ts +0 -1
- package/dist/test/test_events.js +0 -147
- package/dist/test/test_events.js.map +0 -1
- package/dist/test/test_getters.d.ts +0 -1
- package/dist/test/test_getters.js +0 -293
- package/dist/test/test_getters.js.map +0 -1
- package/dist/test/test_job.d.ts +0 -1
- package/dist/test/test_job.js +0 -419
- package/dist/test/test_job.js.map +0 -1
- package/dist/test/test_pause.d.ts +0 -1
- package/dist/test/test_pause.js +0 -255
- package/dist/test/test_pause.js.map +0 -1
- package/dist/test/test_queue.d.ts +0 -0
- package/dist/test/test_queue.js +0 -72
- package/dist/test/test_queue.js.map +0 -1
- package/dist/test/test_rate_limiter.d.ts +0 -1
- package/dist/test/test_rate_limiter.js +0 -98
- package/dist/test/test_rate_limiter.js.map +0 -1
- package/dist/test/test_repeat.d.ts +0 -1
- package/dist/test/test_repeat.js +0 -602
- package/dist/test/test_repeat.js.map +0 -1
- package/dist/test/test_sandboxed_process.d.ts +0 -1
- package/dist/test/test_sandboxed_process.js +0 -319
- package/dist/test/test_sandboxed_process.js.map +0 -1
- package/dist/test/test_stalled_jobs.d.ts +0 -1
- package/dist/test/test_stalled_jobs.js +0 -107
- package/dist/test/test_stalled_jobs.js.map +0 -1
- package/dist/test/test_worker.d.ts +0 -1
- package/dist/test/test_worker.js +0 -1182
- package/dist/test/test_worker.js.map +0 -1
- package/dist/utils.d.ts +0 -8
- package/dist/utils.js +0 -31
- package/dist/utils.js.map +0 -1
- package/release.txt +0 -21
- package/src/classes/backoffs.ts +0 -67
- package/src/classes/child-pool.ts +0 -119
- package/src/classes/compat.ts +0 -890
- package/src/classes/index.ts +0 -13
- package/src/classes/job.ts +0 -495
- package/src/classes/master.ts +0 -113
- package/src/classes/queue-base.ts +0 -87
- package/src/classes/queue-events.ts +0 -78
- package/src/classes/queue-getters.ts +0 -213
- package/src/classes/queue-scheduler.ts +0 -125
- package/src/classes/queue.ts +0 -180
- package/src/classes/redis-connection.ts +0 -111
- package/src/classes/repeat.ts +0 -217
- package/src/classes/sandbox.ts +0 -60
- package/src/classes/scripts.ts +0 -468
- package/src/classes/worker.ts +0 -288
- package/src/commands/addJob-8.lua +0 -106
- package/src/commands/cleanJobsInSet-1.lua +0 -48
- package/src/commands/index.ts +0 -62
- package/src/commands/isFinished-2.lua +0 -22
- package/src/commands/isJobInList-1.lua +0 -20
- package/src/commands/moveStalledJobsToWait-8.lua +0 -91
- package/src/commands/moveToActive-8.lua +0 -79
- package/src/commands/moveToDelayed-5.lua +0 -39
- package/src/commands/moveToFinished-7.lua +0 -92
- package/src/commands/pause-4.lua +0 -27
- package/src/commands/promote-4.lua +0 -49
- package/src/commands/releaseLock-1.lua +0 -19
- package/src/commands/removeJob-10.lua +0 -37
- package/src/commands/reprocessJob-4.lua +0 -36
- package/src/commands/retryJob-4.lua +0 -34
- package/src/commands/takeLock-1.lua +0 -17
- package/src/commands/updateDelaySet-7.lua +0 -71
- package/src/commands/updateProgress-2.lua +0 -15
- package/src/enums/index.ts +0 -1
- package/src/enums/retry-errors.enum.ts +0 -5
- package/src/interfaces/advanced-options.ts +0 -28
- package/src/interfaces/backoff-options.ts +0 -4
- package/src/interfaces/index.ts +0 -9
- package/src/interfaces/jobs-options.ts +0 -53
- package/src/interfaces/queue-options.ts +0 -30
- package/src/interfaces/queue-scheduler-options.ts +0 -6
- package/src/interfaces/rate-limiter-options.ts +0 -7
- package/src/interfaces/redis-options.ts +0 -9
- package/src/interfaces/repeat-options.ts +0 -19
- package/src/interfaces/worker-options.ts +0 -13
- package/src/test/fixtures/fixture_processor.js +0 -13
- package/src/test/fixtures/fixture_processor_bar.js +0 -13
- package/src/test/fixtures/fixture_processor_crash.js +0 -16
- package/src/test/fixtures/fixture_processor_exit.js +0 -15
- package/src/test/fixtures/fixture_processor_fail.js +0 -13
- package/src/test/fixtures/fixture_processor_foo.js +0 -13
- package/src/test/fixtures/fixture_processor_progress.js +0 -29
- package/src/test/fixtures/fixture_processor_slow.js +0 -13
- package/src/test/test_bulk.ts +0 -59
- package/src/test/test_child-pool.ts +0 -88
- package/src/test/test_clean.ts +0 -148
- package/src/test/test_compat.ts +0 -640
- package/src/test/test_connection.ts +0 -159
- package/src/test/test_delay.ts +0 -220
- package/src/test/test_events.ts +0 -198
- package/src/test/test_getters.ts +0 -348
- package/src/test/test_job.ts +0 -524
- package/src/test/test_pause.ts +0 -313
- package/src/test/test_queue.ts +0 -70
- package/src/test/test_rate_limiter.ts +0 -113
- package/src/test/test_repeat.ts +0 -783
- package/src/test/test_sandboxed_process.ts +0 -380
- package/src/test/test_stalled_jobs.ts +0 -146
- package/src/test/test_worker.ts +0 -1503
- package/src/utils.ts +0 -28
- package/tsconfig.json +0 -25
- package/tslint.json +0 -23
- /package/dist/{classes/master.d.ts → cjs/classes/main-worker.d.ts} +0 -0
- /package/dist/{test/test_bulk.d.ts → cjs/classes/main.d.ts} +0 -0
- /package/dist/{interfaces → cjs/interfaces}/backoff-options.js +0 -0
- /package/dist/{interfaces → cjs/interfaces}/rate-limiter-options.js +0 -0
- /package/dist/{interfaces → cjs/interfaces}/redis-options.js +0 -0
- /package/dist/{interfaces → cjs/interfaces}/repeat-options.js +0 -0
- /package/dist/{interfaces → cjs/interfaces}/worker-options.js +0 -0
- /package/dist/{test/test_child-pool.d.ts → esm/classes/main-worker.d.ts} +0 -0
- /package/dist/{test/test_clean.d.ts → esm/classes/main.d.ts} +0 -0
@@ -0,0 +1,624 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.moveToFinished = void 0;
|
4
|
+
const content = `--[[
|
5
|
+
Move job from active to a finished status (completed o failed)
|
6
|
+
A job can only be moved to completed if it was active.
|
7
|
+
The job must be locked before it can be moved to a finished status,
|
8
|
+
and the lock must be released in this script.
|
9
|
+
Input:
|
10
|
+
KEYS[1] wait key
|
11
|
+
KEYS[2] active key
|
12
|
+
KEYS[3] prioritized key
|
13
|
+
KEYS[4] event stream key
|
14
|
+
KEYS[5] stalled key
|
15
|
+
-- Rate limiting
|
16
|
+
KEYS[6] rate limiter key
|
17
|
+
KEYS[7] delayed key
|
18
|
+
KEYS[8] paused key
|
19
|
+
KEYS[9] meta key
|
20
|
+
KEYS[10] pc priority counter
|
21
|
+
KEYS[11] completed/failed key
|
22
|
+
KEYS[12] jobId key
|
23
|
+
KEYS[13] metrics key
|
24
|
+
ARGV[1] jobId
|
25
|
+
ARGV[2] timestamp
|
26
|
+
ARGV[3] msg property returnvalue / failedReason
|
27
|
+
ARGV[4] return value / failed reason
|
28
|
+
ARGV[5] target (completed/failed)
|
29
|
+
ARGV[6] event data (? maybe just send jobid).
|
30
|
+
ARGV[7] fetch next?
|
31
|
+
ARGV[8] keys prefix
|
32
|
+
ARGV[9] opts
|
33
|
+
opts - token - lock token
|
34
|
+
opts - keepJobs
|
35
|
+
opts - lockDuration - lock duration in milliseconds
|
36
|
+
opts - attempts max attempts
|
37
|
+
opts - attemptsMade
|
38
|
+
opts - maxMetricsSize
|
39
|
+
opts - fpof - fail parent on fail
|
40
|
+
Output:
|
41
|
+
0 OK
|
42
|
+
-1 Missing key.
|
43
|
+
-2 Missing lock.
|
44
|
+
-3 Job not in active set
|
45
|
+
-4 Job has pending dependencies
|
46
|
+
-6 Lock is not owned by this client
|
47
|
+
Events:
|
48
|
+
'completed/failed'
|
49
|
+
]]
|
50
|
+
local rcall = redis.call
|
51
|
+
--- Includes
|
52
|
+
--[[
|
53
|
+
Functions to collect metrics based on a current and previous count of jobs.
|
54
|
+
Granualarity is fixed at 1 minute.
|
55
|
+
]]
|
56
|
+
--[[
|
57
|
+
Function to loop in batches.
|
58
|
+
Just a bit of warning, some commands as ZREM
|
59
|
+
could receive a maximum of 7000 parameters per call.
|
60
|
+
]]
|
61
|
+
local function batches(n, batchSize)
|
62
|
+
local i = 0
|
63
|
+
return function()
|
64
|
+
local from = i * batchSize + 1
|
65
|
+
i = i + 1
|
66
|
+
if (from <= n) then
|
67
|
+
local to = math.min(from + batchSize - 1, n)
|
68
|
+
return from, to
|
69
|
+
end
|
70
|
+
end
|
71
|
+
end
|
72
|
+
local function collectMetrics(metaKey, dataPointsList, maxDataPoints,
|
73
|
+
timestamp)
|
74
|
+
-- Increment current count
|
75
|
+
local count = rcall("HINCRBY", metaKey, "count", 1) - 1
|
76
|
+
-- Compute how many data points we need to add to the list, N.
|
77
|
+
local prevTS = rcall("HGET", metaKey, "prevTS")
|
78
|
+
if not prevTS then
|
79
|
+
-- If prevTS is nil, set it to the current timestamp
|
80
|
+
rcall("HSET", metaKey, "prevTS", timestamp, "prevCount", 0)
|
81
|
+
return
|
82
|
+
end
|
83
|
+
local N = math.floor((timestamp - prevTS) / 60000)
|
84
|
+
if N > 0 then
|
85
|
+
local delta = count - rcall("HGET", metaKey, "prevCount")
|
86
|
+
-- If N > 1, add N-1 zeros to the list
|
87
|
+
if N > 1 then
|
88
|
+
local points = {}
|
89
|
+
points[1] = delta
|
90
|
+
for i = 2, N do
|
91
|
+
points[i] = 0
|
92
|
+
end
|
93
|
+
for from, to in batches(#points, 7000) do
|
94
|
+
rcall("LPUSH", dataPointsList, unpack(points, from, to))
|
95
|
+
end
|
96
|
+
else
|
97
|
+
-- LPUSH delta to the list
|
98
|
+
rcall("LPUSH", dataPointsList, delta)
|
99
|
+
end
|
100
|
+
-- LTRIM to keep list to its max size
|
101
|
+
rcall("LTRIM", dataPointsList, 0, maxDataPoints - 1)
|
102
|
+
-- update prev count with current count
|
103
|
+
rcall("HSET", metaKey, "prevCount", count, "prevTS", timestamp)
|
104
|
+
end
|
105
|
+
end
|
106
|
+
--[[
|
107
|
+
Function to return the next delayed job timestamp.
|
108
|
+
]]
|
109
|
+
local function getNextDelayedTimestamp(delayedKey)
|
110
|
+
local result = rcall("ZRANGE", delayedKey, 0, 0, "WITHSCORES")
|
111
|
+
if #result then
|
112
|
+
local nextTimestamp = tonumber(result[2])
|
113
|
+
if (nextTimestamp ~= nil) then
|
114
|
+
nextTimestamp = nextTimestamp / 0x1000
|
115
|
+
end
|
116
|
+
return nextTimestamp
|
117
|
+
end
|
118
|
+
end
|
119
|
+
--[[
|
120
|
+
Function to move job from prioritized state to active.
|
121
|
+
]]
|
122
|
+
local function moveJobFromPriorityToActive(priorityKey, activeKey, priorityCounterKey)
|
123
|
+
local prioritizedJob = rcall("ZPOPMIN", priorityKey)
|
124
|
+
if #prioritizedJob > 0 then
|
125
|
+
rcall("LPUSH", activeKey, prioritizedJob[1])
|
126
|
+
return prioritizedJob[1]
|
127
|
+
else
|
128
|
+
rcall("DEL", priorityCounterKey)
|
129
|
+
end
|
130
|
+
end
|
131
|
+
--[[
|
132
|
+
Function to move job from wait state to active.
|
133
|
+
Input:
|
134
|
+
keys[1] wait key
|
135
|
+
keys[2] active key
|
136
|
+
keys[3] prioritized key
|
137
|
+
keys[4] stream events key
|
138
|
+
keys[5] stalled key
|
139
|
+
-- Rate limiting
|
140
|
+
keys[6] rate limiter key
|
141
|
+
keys[7] delayed key
|
142
|
+
keys[8] paused key
|
143
|
+
keys[9] meta key
|
144
|
+
keys[10] pc priority counter
|
145
|
+
opts - token - lock token
|
146
|
+
opts - lockDuration
|
147
|
+
opts - limiter
|
148
|
+
]]
|
149
|
+
-- Includes
|
150
|
+
--[[
|
151
|
+
Function to add job considering priority.
|
152
|
+
]]
|
153
|
+
-- Includes
|
154
|
+
--[[
|
155
|
+
Function priority marker to wait if needed
|
156
|
+
in order to wake up our workers and to respect priority
|
157
|
+
order as much as possible
|
158
|
+
]]
|
159
|
+
local function addPriorityMarkerIfNeeded(waitKey)
|
160
|
+
local waitLen = rcall("LLEN", waitKey)
|
161
|
+
if waitLen == 0 then
|
162
|
+
rcall("LPUSH", waitKey, "0:0")
|
163
|
+
end
|
164
|
+
end
|
165
|
+
local function addJobWithPriority(waitKey, prioritizedKey, priority, paused, jobId, priorityCounterKey)
|
166
|
+
local prioCounter = rcall("INCR", priorityCounterKey)
|
167
|
+
local score = priority * 0x100000000 + bit.band(prioCounter, 0xffffffffffff)
|
168
|
+
rcall("ZADD", prioritizedKey, score, jobId)
|
169
|
+
if not paused then
|
170
|
+
addPriorityMarkerIfNeeded(waitKey)
|
171
|
+
end
|
172
|
+
end
|
173
|
+
--[[
|
174
|
+
Function to push back job considering priority in front of same prioritized jobs.
|
175
|
+
]]
|
176
|
+
local function pushBackJobWithPriority(prioritizedKey, priority, jobId)
|
177
|
+
-- in order to put it at front of same prioritized jobs
|
178
|
+
-- we consider prioritized counter as 0
|
179
|
+
local score = priority * 0x100000000
|
180
|
+
rcall("ZADD", prioritizedKey, score, jobId)
|
181
|
+
end
|
182
|
+
local function prepareJobForProcessing(keys, keyPrefix, targetKey, jobId, processedOn,
|
183
|
+
maxJobs, expireTime, paused, opts)
|
184
|
+
local jobKey = keyPrefix .. jobId
|
185
|
+
-- Check if we need to perform rate limiting.
|
186
|
+
if maxJobs then
|
187
|
+
local rateLimiterKey = keys[6];
|
188
|
+
-- check if we exceeded rate limit, we need to remove the job and return expireTime
|
189
|
+
if expireTime > 0 then
|
190
|
+
-- remove from active queue and add back to the wait list
|
191
|
+
rcall("LREM", keys[2], 1, jobId)
|
192
|
+
local priority = tonumber(rcall("HGET", jobKey, "priority")) or 0
|
193
|
+
if priority == 0 then
|
194
|
+
rcall("RPUSH", targetKey, jobId)
|
195
|
+
else
|
196
|
+
pushBackJobWithPriority(keys[3], priority, jobId)
|
197
|
+
end
|
198
|
+
-- Return when we can process more jobs
|
199
|
+
return {0, 0, expireTime, 0}
|
200
|
+
end
|
201
|
+
local jobCounter = tonumber(rcall("INCR", rateLimiterKey))
|
202
|
+
if jobCounter == 1 then
|
203
|
+
local limiterDuration = opts['limiter'] and opts['limiter']['duration']
|
204
|
+
local integerDuration = math.floor(math.abs(limiterDuration))
|
205
|
+
rcall("PEXPIRE", rateLimiterKey, integerDuration)
|
206
|
+
end
|
207
|
+
end
|
208
|
+
local lockKey = jobKey .. ':lock'
|
209
|
+
-- get a lock
|
210
|
+
if opts['token'] ~= "0" then
|
211
|
+
rcall("SET", lockKey, opts['token'], "PX", opts['lockDuration'])
|
212
|
+
end
|
213
|
+
rcall("XADD", keys[4], "*", "event", "active", "jobId", jobId, "prev", "waiting")
|
214
|
+
rcall("HSET", jobKey, "processedOn", processedOn)
|
215
|
+
rcall("HINCRBY", jobKey, "attemptsMade", 1)
|
216
|
+
return {rcall("HGETALL", jobKey), jobId, 0, 0} -- get job data
|
217
|
+
end
|
218
|
+
--[[
|
219
|
+
Function to recursively move from waitingChildren to failed.
|
220
|
+
]]
|
221
|
+
local function moveParentFromWaitingChildrenToFailed( parentQueueKey, parentKey, parentId, jobIdKey, timestamp)
|
222
|
+
if rcall("ZREM", parentQueueKey .. ":waiting-children", parentId) == 1 then
|
223
|
+
rcall("ZADD", parentQueueKey .. ":failed", timestamp, parentId)
|
224
|
+
local failedReason = "child " .. jobIdKey .. " failed"
|
225
|
+
rcall("HMSET", parentKey, "failedReason", failedReason, "finishedOn", timestamp)
|
226
|
+
rcall("XADD", parentQueueKey .. ":events", "*", "event", "failed", "jobId", parentId, "failedReason",
|
227
|
+
failedReason, "prev", "waiting-children")
|
228
|
+
local rawParentData = rcall("HGET", parentKey, "parent")
|
229
|
+
if rawParentData ~= false then
|
230
|
+
local parentData = cjson.decode(rawParentData)
|
231
|
+
if parentData['fpof'] then
|
232
|
+
moveParentFromWaitingChildrenToFailed(
|
233
|
+
parentData['queueKey'],
|
234
|
+
parentData['queueKey'] .. ':' .. parentData['id'],
|
235
|
+
parentData['id'],
|
236
|
+
parentKey,
|
237
|
+
timestamp
|
238
|
+
)
|
239
|
+
end
|
240
|
+
end
|
241
|
+
end
|
242
|
+
end
|
243
|
+
--[[
|
244
|
+
Updates the delay set, by moving delayed jobs that should
|
245
|
+
be processed now to "wait".
|
246
|
+
Events:
|
247
|
+
'waiting'
|
248
|
+
]]
|
249
|
+
-- Includes
|
250
|
+
-- Try to get as much as 1000 jobs at once
|
251
|
+
local function promoteDelayedJobs(delayedKey, waitKey, targetKey, prioritizedKey,
|
252
|
+
eventStreamKey, prefix, timestamp, paused, priorityCounterKey)
|
253
|
+
local jobs = rcall("ZRANGEBYSCORE", delayedKey, 0, (timestamp + 1) * 0x1000, "LIMIT", 0, 1000)
|
254
|
+
if (#jobs > 0) then
|
255
|
+
rcall("ZREM", delayedKey, unpack(jobs))
|
256
|
+
for _, jobId in ipairs(jobs) do
|
257
|
+
local jobKey = prefix .. jobId
|
258
|
+
local priority =
|
259
|
+
tonumber(rcall("HGET", jobKey, "priority")) or 0
|
260
|
+
if priority == 0 then
|
261
|
+
-- LIFO or FIFO
|
262
|
+
rcall("LPUSH", targetKey, jobId)
|
263
|
+
else
|
264
|
+
addJobWithPriority(waitKey, prioritizedKey, priority, paused,
|
265
|
+
jobId, priorityCounterKey)
|
266
|
+
end
|
267
|
+
-- Emit waiting event
|
268
|
+
rcall("XADD", eventStreamKey, "*", "event", "waiting", "jobId",
|
269
|
+
jobId, "prev", "delayed")
|
270
|
+
rcall("HSET", jobKey, "delay", 0)
|
271
|
+
end
|
272
|
+
end
|
273
|
+
end
|
274
|
+
--[[
|
275
|
+
Functions to remove jobs by max age.
|
276
|
+
]]
|
277
|
+
-- Includes
|
278
|
+
--[[
|
279
|
+
Function to remove job.
|
280
|
+
]]
|
281
|
+
-- Includes
|
282
|
+
--[[
|
283
|
+
Check if this job has a parent. If so we will just remove it from
|
284
|
+
the parent child list, but if it is the last child we should move the parent to "wait/paused"
|
285
|
+
which requires code from "moveToFinished"
|
286
|
+
]]
|
287
|
+
--[[
|
288
|
+
Functions to destructure job key.
|
289
|
+
Just a bit of warning, these functions may be a bit slow and affect performance significantly.
|
290
|
+
]]
|
291
|
+
local getJobIdFromKey = function (jobKey)
|
292
|
+
return string.match(jobKey, ".*:(.*)")
|
293
|
+
end
|
294
|
+
local getJobKeyPrefix = function (jobKey, jobId)
|
295
|
+
return string.sub(jobKey, 0, #jobKey - #jobId)
|
296
|
+
end
|
297
|
+
--[[
|
298
|
+
Function to check for the meta.paused key to decide if we are paused or not
|
299
|
+
(since an empty list and !EXISTS are not really the same).
|
300
|
+
]]
|
301
|
+
local function getTargetQueueList(queueMetaKey, waitKey, pausedKey)
|
302
|
+
if rcall("HEXISTS", queueMetaKey, "paused") ~= 1 then
|
303
|
+
return waitKey, false
|
304
|
+
else
|
305
|
+
return pausedKey, true
|
306
|
+
end
|
307
|
+
end
|
308
|
+
local function moveParentToWait(parentPrefix, parentId, emitEvent)
|
309
|
+
local parentTarget = getTargetQueueList(parentPrefix .. "meta", parentPrefix .. "wait", parentPrefix .. "paused")
|
310
|
+
rcall("RPUSH", parentTarget, parentId)
|
311
|
+
if emitEvent then
|
312
|
+
local parentEventStream = parentPrefix .. "events"
|
313
|
+
rcall("XADD", parentEventStream, "*", "event", "waiting", "jobId", parentId, "prev", "waiting-children")
|
314
|
+
end
|
315
|
+
end
|
316
|
+
local function removeParentDependencyKey(jobKey, hard, parentKey, baseKey)
|
317
|
+
if parentKey then
|
318
|
+
local parentDependenciesKey = parentKey .. ":dependencies"
|
319
|
+
local result = rcall("SREM", parentDependenciesKey, jobKey)
|
320
|
+
if result > 0 then
|
321
|
+
local pendingDependencies = rcall("SCARD", parentDependenciesKey)
|
322
|
+
if pendingDependencies == 0 then
|
323
|
+
local parentId = getJobIdFromKey(parentKey)
|
324
|
+
local parentPrefix = getJobKeyPrefix(parentKey, parentId)
|
325
|
+
local numRemovedElements = rcall("ZREM", parentPrefix .. "waiting-children", parentId)
|
326
|
+
if numRemovedElements == 1 then
|
327
|
+
if hard then
|
328
|
+
if parentPrefix == baseKey then
|
329
|
+
removeParentDependencyKey(parentKey, hard, nil, baseKey)
|
330
|
+
rcall("DEL", parentKey, parentKey .. ':logs',
|
331
|
+
parentKey .. ':dependencies', parentKey .. ':processed')
|
332
|
+
else
|
333
|
+
moveParentToWait(parentPrefix, parentId)
|
334
|
+
end
|
335
|
+
else
|
336
|
+
moveParentToWait(parentPrefix, parentId, true)
|
337
|
+
end
|
338
|
+
end
|
339
|
+
end
|
340
|
+
end
|
341
|
+
else
|
342
|
+
local missedParentKey = rcall("HGET", jobKey, "parentKey")
|
343
|
+
if( (type(missedParentKey) == "string") and missedParentKey ~= "" and (rcall("EXISTS", missedParentKey) == 1)) then
|
344
|
+
local parentDependenciesKey = missedParentKey .. ":dependencies"
|
345
|
+
local result = rcall("SREM", parentDependenciesKey, jobKey)
|
346
|
+
if result > 0 then
|
347
|
+
local pendingDependencies = rcall("SCARD", parentDependenciesKey)
|
348
|
+
if pendingDependencies == 0 then
|
349
|
+
local parentId = getJobIdFromKey(missedParentKey)
|
350
|
+
local parentPrefix = getJobKeyPrefix(missedParentKey, parentId)
|
351
|
+
local numRemovedElements = rcall("ZREM", parentPrefix .. "waiting-children", parentId)
|
352
|
+
if numRemovedElements == 1 then
|
353
|
+
if hard then
|
354
|
+
if parentPrefix == baseKey then
|
355
|
+
removeParentDependencyKey(missedParentKey, hard, nil, baseKey)
|
356
|
+
rcall("DEL", missedParentKey, missedParentKey .. ':logs',
|
357
|
+
missedParentKey .. ':dependencies', missedParentKey .. ':processed')
|
358
|
+
else
|
359
|
+
moveParentToWait(parentPrefix, parentId)
|
360
|
+
end
|
361
|
+
else
|
362
|
+
moveParentToWait(parentPrefix, parentId, true)
|
363
|
+
end
|
364
|
+
end
|
365
|
+
end
|
366
|
+
end
|
367
|
+
end
|
368
|
+
end
|
369
|
+
end
|
370
|
+
local function removeJob(jobId, hard, baseKey)
|
371
|
+
local jobKey = baseKey .. jobId
|
372
|
+
removeParentDependencyKey(jobKey, hard, nil, baseKey)
|
373
|
+
rcall("DEL", jobKey, jobKey .. ':logs',
|
374
|
+
jobKey .. ':dependencies', jobKey .. ':processed')
|
375
|
+
end
|
376
|
+
local function removeJobsByMaxAge(timestamp, maxAge, targetSet, prefix)
|
377
|
+
local start = timestamp - maxAge * 1000
|
378
|
+
local jobIds = rcall("ZREVRANGEBYSCORE", targetSet, start, "-inf")
|
379
|
+
for i, jobId in ipairs(jobIds) do
|
380
|
+
removeJob(jobId, false, prefix)
|
381
|
+
end
|
382
|
+
rcall("ZREMRANGEBYSCORE", targetSet, "-inf", start)
|
383
|
+
end
|
384
|
+
--[[
|
385
|
+
Functions to remove jobs by max count.
|
386
|
+
]]
|
387
|
+
-- Includes
|
388
|
+
local function removeJobsByMaxCount(maxCount, targetSet, prefix)
|
389
|
+
local start = maxCount
|
390
|
+
local jobIds = rcall("ZREVRANGE", targetSet, start, -1)
|
391
|
+
for i, jobId in ipairs(jobIds) do
|
392
|
+
removeJob(jobId, false, prefix)
|
393
|
+
end
|
394
|
+
rcall("ZREMRANGEBYRANK", targetSet, 0, -(maxCount + 1))
|
395
|
+
end
|
396
|
+
--[[
|
397
|
+
Function to trim events, default 10000.
|
398
|
+
]]
|
399
|
+
local function trimEvents(metaKey, eventStreamKey)
|
400
|
+
local maxEvents = rcall("HGET", metaKey, "opts.maxLenEvents")
|
401
|
+
if maxEvents ~= false then
|
402
|
+
rcall("XTRIM", eventStreamKey, "MAXLEN", "~", maxEvents)
|
403
|
+
else
|
404
|
+
rcall("XTRIM", eventStreamKey, "MAXLEN", "~", 10000)
|
405
|
+
end
|
406
|
+
end
|
407
|
+
--[[
|
408
|
+
Validate and move or add dependencies to parent.
|
409
|
+
]]
|
410
|
+
-- Includes
|
411
|
+
--[[
|
412
|
+
Add delay marker if needed.
|
413
|
+
]]
|
414
|
+
-- Includes
|
415
|
+
local function addDelayMarkerIfNeeded(targetKey, delayedKey)
|
416
|
+
if rcall("LLEN", targetKey) == 0 then
|
417
|
+
local nextTimestamp = getNextDelayedTimestamp(delayedKey)
|
418
|
+
if nextTimestamp ~= nil then
|
419
|
+
rcall("LPUSH", targetKey, "0:" .. nextTimestamp)
|
420
|
+
end
|
421
|
+
end
|
422
|
+
end
|
423
|
+
local function updateParentDepsIfNeeded(parentKey, parentQueueKey, parentDependenciesKey,
|
424
|
+
parentId, jobIdKey, returnvalue, timestamp )
|
425
|
+
local processedSet = parentKey .. ":processed"
|
426
|
+
rcall("HSET", processedSet, jobIdKey, returnvalue)
|
427
|
+
local activeParent = rcall("ZSCORE", parentQueueKey .. ":waiting-children", parentId)
|
428
|
+
if rcall("SCARD", parentDependenciesKey) == 0 and activeParent then
|
429
|
+
rcall("ZREM", parentQueueKey .. ":waiting-children", parentId)
|
430
|
+
local parentWaitKey = parentQueueKey .. ":wait"
|
431
|
+
local parentTarget, paused = getTargetQueueList(parentQueueKey .. ":meta", parentWaitKey,
|
432
|
+
parentQueueKey .. ":paused")
|
433
|
+
local jobAttributes = rcall("HMGET", parentKey, "priority", "delay")
|
434
|
+
local priority = tonumber(jobAttributes[1]) or 0
|
435
|
+
local delay = tonumber(jobAttributes[2]) or 0
|
436
|
+
if delay > 0 then
|
437
|
+
local delayedTimestamp = tonumber(timestamp) + delay
|
438
|
+
local score = delayedTimestamp * 0x1000
|
439
|
+
local parentDelayedKey = parentQueueKey .. ":delayed"
|
440
|
+
rcall("ZADD", parentDelayedKey, score, parentId)
|
441
|
+
addDelayMarkerIfNeeded(parentTarget, parentDelayedKey)
|
442
|
+
-- Standard or priority add
|
443
|
+
elseif priority == 0 then
|
444
|
+
rcall("RPUSH", parentTarget, parentId)
|
445
|
+
else
|
446
|
+
addJobWithPriority(parentWaitKey, parentQueueKey .. ":prioritized", priority, paused,
|
447
|
+
parentId, parentQueueKey .. ":pc")
|
448
|
+
end
|
449
|
+
rcall("XADD", parentQueueKey .. ":events", "*", "event", "waiting", "jobId", parentId, "prev", "waiting-children")
|
450
|
+
end
|
451
|
+
end
|
452
|
+
local function getRateLimitTTL(maxJobs, rateLimiterKey)
|
453
|
+
if maxJobs then
|
454
|
+
local pttl = rcall("PTTL", rateLimiterKey)
|
455
|
+
if pttl == 0 then
|
456
|
+
rcall("DEL", rateLimiterKey)
|
457
|
+
end
|
458
|
+
local jobCounter = tonumber(rcall("GET", rateLimiterKey) or 0)
|
459
|
+
if jobCounter >= maxJobs then
|
460
|
+
if pttl > 0 then
|
461
|
+
return pttl
|
462
|
+
end
|
463
|
+
end
|
464
|
+
end
|
465
|
+
return 0
|
466
|
+
end
|
467
|
+
local jobIdKey = KEYS[12]
|
468
|
+
if rcall("EXISTS", jobIdKey) == 1 then -- // Make sure job exists
|
469
|
+
local opts = cmsgpack.unpack(ARGV[9])
|
470
|
+
local token = opts['token']
|
471
|
+
local attempts = opts['attempts']
|
472
|
+
local attemptsMade = opts['attemptsMade']
|
473
|
+
local maxMetricsSize = opts['maxMetricsSize']
|
474
|
+
local maxCount = opts['keepJobs']['count']
|
475
|
+
local maxAge = opts['keepJobs']['age']
|
476
|
+
if token ~= "0" then
|
477
|
+
local lockKey = jobIdKey .. ':lock'
|
478
|
+
local lockToken = rcall("GET", lockKey)
|
479
|
+
if lockToken == token then
|
480
|
+
rcall("DEL", lockKey)
|
481
|
+
rcall("SREM", KEYS[5], ARGV[1])
|
482
|
+
else
|
483
|
+
if lockToken then
|
484
|
+
-- Lock exists but token does not match
|
485
|
+
return -6
|
486
|
+
else
|
487
|
+
-- Lock is missing completely
|
488
|
+
return -2
|
489
|
+
end
|
490
|
+
end
|
491
|
+
end
|
492
|
+
if rcall("SCARD", jobIdKey .. ":dependencies") ~= 0 then -- // Make sure it does not have pending dependencies
|
493
|
+
return -4
|
494
|
+
end
|
495
|
+
local parentReferences = rcall("HMGET", jobIdKey, "parentKey", "parent")
|
496
|
+
local parentKey = parentReferences[1] or ""
|
497
|
+
local parentId = ""
|
498
|
+
local parentQueueKey = ""
|
499
|
+
if parentReferences[2] ~= false then
|
500
|
+
local jsonDecodedParent = cjson.decode(parentReferences[2])
|
501
|
+
parentId = jsonDecodedParent['id']
|
502
|
+
parentQueueKey = jsonDecodedParent['queueKey']
|
503
|
+
end
|
504
|
+
local jobId = ARGV[1]
|
505
|
+
local timestamp = ARGV[2]
|
506
|
+
-- Remove from active list (if not active we shall return error)
|
507
|
+
local numRemovedElements = rcall("LREM", KEYS[2], -1, jobId)
|
508
|
+
if (numRemovedElements < 1) then return -3 end
|
509
|
+
-- Trim events before emiting them to avoid trimming events emitted in this script
|
510
|
+
trimEvents(KEYS[9], KEYS[4])
|
511
|
+
-- If job has a parent we need to
|
512
|
+
-- 1) remove this job id from parents dependencies
|
513
|
+
-- 2) move the job Id to parent "processed" set
|
514
|
+
-- 3) push the results into parent "results" list
|
515
|
+
-- 4) if parent's dependencies is empty, then move parent to "wait/paused". Note it may be a different queue!.
|
516
|
+
if parentId == "" and parentKey ~= "" then
|
517
|
+
parentId = getJobIdFromKey(parentKey)
|
518
|
+
parentQueueKey = getJobKeyPrefix(parentKey, ":" .. parentId)
|
519
|
+
end
|
520
|
+
if parentId ~= "" then
|
521
|
+
if ARGV[5] == "completed" then
|
522
|
+
local dependenciesSet = parentKey .. ":dependencies"
|
523
|
+
if rcall("SREM", dependenciesSet, jobIdKey) == 1 then
|
524
|
+
updateParentDepsIfNeeded(parentKey, parentQueueKey,
|
525
|
+
dependenciesSet, parentId, jobIdKey,
|
526
|
+
ARGV[4], timestamp)
|
527
|
+
end
|
528
|
+
elseif opts['fpof'] then
|
529
|
+
moveParentFromWaitingChildrenToFailed(parentQueueKey, parentKey,
|
530
|
+
parentId, jobIdKey, timestamp)
|
531
|
+
end
|
532
|
+
end
|
533
|
+
-- Remove job?
|
534
|
+
if maxCount ~= 0 then
|
535
|
+
local targetSet = KEYS[11]
|
536
|
+
-- Add to complete/failed set
|
537
|
+
rcall("ZADD", targetSet, timestamp, jobId)
|
538
|
+
rcall("HMSET", jobIdKey, ARGV[3], ARGV[4], "finishedOn", timestamp)
|
539
|
+
-- "returnvalue" / "failedReason" and "finishedOn"
|
540
|
+
-- Remove old jobs?
|
541
|
+
local prefix = ARGV[8]
|
542
|
+
if maxAge ~= nil then
|
543
|
+
removeJobsByMaxAge(timestamp, maxAge, targetSet, prefix)
|
544
|
+
end
|
545
|
+
if maxCount ~= nil and maxCount > 0 then
|
546
|
+
removeJobsByMaxCount(maxCount, targetSet, prefix)
|
547
|
+
end
|
548
|
+
else
|
549
|
+
rcall("DEL", jobIdKey, jobIdKey .. ':logs', jobIdKey .. ':processed')
|
550
|
+
if parentKey ~= "" then
|
551
|
+
removeParentDependencyKey(jobIdKey, false, parentKey)
|
552
|
+
end
|
553
|
+
end
|
554
|
+
rcall("XADD", KEYS[4], "*", "event", ARGV[5], "jobId", jobId, ARGV[3],
|
555
|
+
ARGV[4])
|
556
|
+
if ARGV[5] == "failed" then
|
557
|
+
if tonumber(attemptsMade) >= tonumber(attempts) then
|
558
|
+
rcall("XADD", KEYS[4], "*", "event", "retries-exhausted", "jobId",
|
559
|
+
jobId, "attemptsMade", attemptsMade)
|
560
|
+
end
|
561
|
+
end
|
562
|
+
-- Collect metrics
|
563
|
+
if maxMetricsSize ~= "" then
|
564
|
+
collectMetrics(KEYS[13], KEYS[13] .. ':data', maxMetricsSize, timestamp)
|
565
|
+
end
|
566
|
+
-- Try to get next job to avoid an extra roundtrip if the queue is not closing,
|
567
|
+
-- and not rate limited.
|
568
|
+
if (ARGV[7] == "1") then
|
569
|
+
local target, paused = getTargetQueueList(KEYS[9], KEYS[1], KEYS[8])
|
570
|
+
-- Check if there are delayed jobs that can be promoted
|
571
|
+
promoteDelayedJobs(KEYS[7], KEYS[1], target, KEYS[3],
|
572
|
+
KEYS[4], ARGV[8], timestamp, paused, KEYS[10])
|
573
|
+
local maxJobs = tonumber(opts['limiter'] and opts['limiter']['max'])
|
574
|
+
-- Check if we are rate limited first.
|
575
|
+
local expireTime = getRateLimitTTL(maxJobs, KEYS[6])
|
576
|
+
if expireTime > 0 then return {0, 0, expireTime, 0} end
|
577
|
+
-- paused queue
|
578
|
+
if paused then return {0, 0, 0, 0} end
|
579
|
+
jobId = rcall("RPOPLPUSH", KEYS[1], KEYS[2])
|
580
|
+
-- If jobId is special ID 0:delay, then there is no job to process
|
581
|
+
if jobId then
|
582
|
+
if string.sub(jobId, 1, 2) == "0:" then
|
583
|
+
rcall("LREM", KEYS[2], 1, jobId)
|
584
|
+
else
|
585
|
+
-- this script is not really moving, it is preparing the job for processing
|
586
|
+
return prepareJobForProcessing(KEYS, ARGV[8], target, jobId, timestamp, maxJobs,
|
587
|
+
expireTime, paused, opts)
|
588
|
+
end
|
589
|
+
else
|
590
|
+
jobId = moveJobFromPriorityToActive(KEYS[3], KEYS[2], KEYS[10])
|
591
|
+
if jobId then
|
592
|
+
return prepareJobForProcessing(KEYS, ARGV[8], target, jobId, timestamp, maxJobs,
|
593
|
+
expireTime, paused, opts)
|
594
|
+
end
|
595
|
+
end
|
596
|
+
-- Return the timestamp for the next delayed job if any.
|
597
|
+
local nextTimestamp = getNextDelayedTimestamp(KEYS[7])
|
598
|
+
if nextTimestamp ~= nil then
|
599
|
+
-- The result is guaranteed to be positive, since the
|
600
|
+
-- ZRANGEBYSCORE command would have return a job otherwise.
|
601
|
+
return {0, 0, 0, nextTimestamp}
|
602
|
+
end
|
603
|
+
end
|
604
|
+
local waitLen = rcall("LLEN", KEYS[1])
|
605
|
+
if waitLen == 0 then
|
606
|
+
local activeLen = rcall("LLEN", KEYS[2])
|
607
|
+
if activeLen == 0 then
|
608
|
+
local prioritizedLen = rcall("ZCARD", KEYS[3])
|
609
|
+
if prioritizedLen == 0 then
|
610
|
+
rcall("XADD", KEYS[4], "*", "event", "drained")
|
611
|
+
end
|
612
|
+
end
|
613
|
+
end
|
614
|
+
return 0
|
615
|
+
else
|
616
|
+
return -1
|
617
|
+
end
|
618
|
+
`;
|
619
|
+
exports.moveToFinished = {
|
620
|
+
name: 'moveToFinished',
|
621
|
+
content,
|
622
|
+
keys: 13,
|
623
|
+
};
|
624
|
+
//# sourceMappingURL=moveToFinished-13.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"moveToFinished-13.js","sourceRoot":"","sources":["../../../src/scripts/moveToFinished-13.ts"],"names":[],"mappings":";;;AAAA,MAAM,OAAO,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsmBf,CAAC;AACW,QAAA,cAAc,GAAG;IAC5B,IAAI,EAAE,gBAAgB;IACtB,OAAO;IACP,IAAI,EAAE,EAAE;CACT,CAAC"}
|
@@ -0,0 +1,59 @@
|
|
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
|
+
ARGV[1] token
|
12
|
+
ARGV[2] child key
|
13
|
+
ARGV[3] timestamp
|
14
|
+
ARGV[4] the id of the job
|
15
|
+
Output:
|
16
|
+
0 - OK
|
17
|
+
1 - There are not pending dependencies.
|
18
|
+
-1 - Missing job.
|
19
|
+
-2 - Missing lock
|
20
|
+
-3 - Job not in active set
|
21
|
+
]]
|
22
|
+
local rcall = redis.call
|
23
|
+
local function moveToWaitingChildren (activeKey, waitingChildrenKey, jobId, timestamp, lockKey, token)
|
24
|
+
if token ~= "0" then
|
25
|
+
if rcall("GET", lockKey) == token then
|
26
|
+
rcall("DEL", lockKey)
|
27
|
+
else
|
28
|
+
return -2
|
29
|
+
end
|
30
|
+
end
|
31
|
+
local score = tonumber(timestamp)
|
32
|
+
local numRemovedElements = rcall("LREM", activeKey, -1, jobId)
|
33
|
+
if(numRemovedElements < 1) then
|
34
|
+
return -3
|
35
|
+
end
|
36
|
+
rcall("ZADD", waitingChildrenKey, score, jobId)
|
37
|
+
return 0
|
38
|
+
end
|
39
|
+
if rcall("EXISTS", KEYS[4]) == 1 then
|
40
|
+
if ARGV[2] ~= "" then
|
41
|
+
if rcall("SISMEMBER", KEYS[4] .. ":dependencies", ARGV[2]) ~= 0 then
|
42
|
+
return moveToWaitingChildren(KEYS[2], KEYS[3], ARGV[4], ARGV[3], KEYS[1], ARGV[1])
|
43
|
+
end
|
44
|
+
return 1
|
45
|
+
else
|
46
|
+
if rcall("SCARD", KEYS[4] .. ":dependencies") ~= 0 then
|
47
|
+
return moveToWaitingChildren(KEYS[2], KEYS[3], ARGV[4], ARGV[3], KEYS[1], ARGV[1])
|
48
|
+
end
|
49
|
+
return 1
|
50
|
+
end
|
51
|
+
end
|
52
|
+
return -1
|
53
|
+
`;
|
54
|
+
exports.moveToWaitingChildren = {
|
55
|
+
name: 'moveToWaitingChildren',
|
56
|
+
content,
|
57
|
+
keys: 4,
|
58
|
+
};
|
59
|
+
//# sourceMappingURL=moveToWaitingChildren-4.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"moveToWaitingChildren-4.js","sourceRoot":"","sources":["../../../src/scripts/moveToWaitingChildren-4.ts"],"names":[],"mappings":";;;AAAA,MAAM,OAAO,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiDf,CAAC;AACW,QAAA,qBAAqB,GAAG;IACnC,IAAI,EAAE,uBAAuB;IAC7B,OAAO;IACP,IAAI,EAAE,CAAC;CACR,CAAC"}
|