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,249 @@
|
|
1
|
+
const content = `--[[
|
2
|
+
Adds a job to the queue by doing the following:
|
3
|
+
- Increases the job counter if needed.
|
4
|
+
- Creates a new job key with the job data.
|
5
|
+
- if delayed:
|
6
|
+
- computes timestamp.
|
7
|
+
- adds to delayed zset.
|
8
|
+
- Emits a global event 'delayed' if the job is delayed.
|
9
|
+
- if not delayed
|
10
|
+
- Adds the jobId to the wait/paused list in one of three ways:
|
11
|
+
- LIFO
|
12
|
+
- FIFO
|
13
|
+
- prioritized.
|
14
|
+
- Adds the job to the "added" list so that workers gets notified.
|
15
|
+
Input:
|
16
|
+
KEYS[1] 'wait',
|
17
|
+
KEYS[2] 'paused'
|
18
|
+
KEYS[3] 'meta'
|
19
|
+
KEYS[4] 'id'
|
20
|
+
KEYS[5] 'delayed'
|
21
|
+
KEYS[6] 'prioritized'
|
22
|
+
KEYS[7] 'completed'
|
23
|
+
KEYS[8] events stream key
|
24
|
+
KEYS[9] 'pc' priority counter
|
25
|
+
ARGV[1] msgpacked arguments array
|
26
|
+
[1] key prefix,
|
27
|
+
[2] custom id (will not generate one automatically)
|
28
|
+
[3] name
|
29
|
+
[4] timestamp
|
30
|
+
[5] parentKey?
|
31
|
+
[6] waitChildrenKey key.
|
32
|
+
[7] parent dependencies key.
|
33
|
+
[8] parent? {id, queueKey}
|
34
|
+
[9] repeat job key
|
35
|
+
ARGV[2] Json stringified job data
|
36
|
+
ARGV[3] msgpacked options
|
37
|
+
Output:
|
38
|
+
jobId - OK
|
39
|
+
-5 - Missing parent key
|
40
|
+
]]
|
41
|
+
local jobId
|
42
|
+
local jobIdKey
|
43
|
+
local rcall = redis.call
|
44
|
+
local args = cmsgpack.unpack(ARGV[1])
|
45
|
+
local data = ARGV[2]
|
46
|
+
local opts = cmsgpack.unpack(ARGV[3])
|
47
|
+
local parentKey = args[5]
|
48
|
+
local repeatJobKey = args[9]
|
49
|
+
local parent = args[8]
|
50
|
+
local parentData
|
51
|
+
-- Includes
|
52
|
+
--[[
|
53
|
+
Add delay marker if needed.
|
54
|
+
]]
|
55
|
+
-- Includes
|
56
|
+
--[[
|
57
|
+
Function to return the next delayed job timestamp.
|
58
|
+
]]
|
59
|
+
local function getNextDelayedTimestamp(delayedKey)
|
60
|
+
local result = rcall("ZRANGE", delayedKey, 0, 0, "WITHSCORES")
|
61
|
+
if #result then
|
62
|
+
local nextTimestamp = tonumber(result[2])
|
63
|
+
if (nextTimestamp ~= nil) then
|
64
|
+
nextTimestamp = nextTimestamp / 0x1000
|
65
|
+
end
|
66
|
+
return nextTimestamp
|
67
|
+
end
|
68
|
+
end
|
69
|
+
local function addDelayMarkerIfNeeded(targetKey, delayedKey)
|
70
|
+
if rcall("LLEN", targetKey) == 0 then
|
71
|
+
local nextTimestamp = getNextDelayedTimestamp(delayedKey)
|
72
|
+
if nextTimestamp ~= nil then
|
73
|
+
rcall("LPUSH", targetKey, "0:" .. nextTimestamp)
|
74
|
+
end
|
75
|
+
end
|
76
|
+
end
|
77
|
+
--[[
|
78
|
+
Function to add job considering priority.
|
79
|
+
]]
|
80
|
+
-- Includes
|
81
|
+
--[[
|
82
|
+
Function priority marker to wait if needed
|
83
|
+
in order to wake up our workers and to respect priority
|
84
|
+
order as much as possible
|
85
|
+
]]
|
86
|
+
local function addPriorityMarkerIfNeeded(waitKey)
|
87
|
+
local waitLen = rcall("LLEN", waitKey)
|
88
|
+
if waitLen == 0 then
|
89
|
+
rcall("LPUSH", waitKey, "0:0")
|
90
|
+
end
|
91
|
+
end
|
92
|
+
local function addJobWithPriority(waitKey, prioritizedKey, priority, paused, jobId, priorityCounterKey)
|
93
|
+
local prioCounter = rcall("INCR", priorityCounterKey)
|
94
|
+
local score = priority * 0x100000000 + bit.band(prioCounter, 0xffffffffffff)
|
95
|
+
rcall("ZADD", prioritizedKey, score, jobId)
|
96
|
+
if not paused then
|
97
|
+
addPriorityMarkerIfNeeded(waitKey)
|
98
|
+
end
|
99
|
+
end
|
100
|
+
--[[
|
101
|
+
Function to check for the meta.paused key to decide if we are paused or not
|
102
|
+
(since an empty list and !EXISTS are not really the same).
|
103
|
+
]]
|
104
|
+
local function getTargetQueueList(queueMetaKey, waitKey, pausedKey)
|
105
|
+
if rcall("HEXISTS", queueMetaKey, "paused") ~= 1 then
|
106
|
+
return waitKey, false
|
107
|
+
else
|
108
|
+
return pausedKey, true
|
109
|
+
end
|
110
|
+
end
|
111
|
+
--[[
|
112
|
+
Function to trim events, default 10000.
|
113
|
+
]]
|
114
|
+
local function trimEvents(metaKey, eventStreamKey)
|
115
|
+
local maxEvents = rcall("HGET", metaKey, "opts.maxLenEvents")
|
116
|
+
if maxEvents ~= false then
|
117
|
+
rcall("XTRIM", eventStreamKey, "MAXLEN", "~", maxEvents)
|
118
|
+
else
|
119
|
+
rcall("XTRIM", eventStreamKey, "MAXLEN", "~", 10000)
|
120
|
+
end
|
121
|
+
end
|
122
|
+
--[[
|
123
|
+
Validate and move or add dependencies to parent.
|
124
|
+
]]
|
125
|
+
-- Includes
|
126
|
+
local function updateParentDepsIfNeeded(parentKey, parentQueueKey, parentDependenciesKey,
|
127
|
+
parentId, jobIdKey, returnvalue, timestamp )
|
128
|
+
local processedSet = parentKey .. ":processed"
|
129
|
+
rcall("HSET", processedSet, jobIdKey, returnvalue)
|
130
|
+
local activeParent = rcall("ZSCORE", parentQueueKey .. ":waiting-children", parentId)
|
131
|
+
if rcall("SCARD", parentDependenciesKey) == 0 and activeParent then
|
132
|
+
rcall("ZREM", parentQueueKey .. ":waiting-children", parentId)
|
133
|
+
local parentWaitKey = parentQueueKey .. ":wait"
|
134
|
+
local parentTarget, paused = getTargetQueueList(parentQueueKey .. ":meta", parentWaitKey,
|
135
|
+
parentQueueKey .. ":paused")
|
136
|
+
local jobAttributes = rcall("HMGET", parentKey, "priority", "delay")
|
137
|
+
local priority = tonumber(jobAttributes[1]) or 0
|
138
|
+
local delay = tonumber(jobAttributes[2]) or 0
|
139
|
+
if delay > 0 then
|
140
|
+
local delayedTimestamp = tonumber(timestamp) + delay
|
141
|
+
local score = delayedTimestamp * 0x1000
|
142
|
+
local parentDelayedKey = parentQueueKey .. ":delayed"
|
143
|
+
rcall("ZADD", parentDelayedKey, score, parentId)
|
144
|
+
addDelayMarkerIfNeeded(parentTarget, parentDelayedKey)
|
145
|
+
-- Standard or priority add
|
146
|
+
elseif priority == 0 then
|
147
|
+
rcall("RPUSH", parentTarget, parentId)
|
148
|
+
else
|
149
|
+
addJobWithPriority(parentWaitKey, parentQueueKey .. ":prioritized", priority, paused,
|
150
|
+
parentId, parentQueueKey .. ":pc")
|
151
|
+
end
|
152
|
+
rcall("XADD", parentQueueKey .. ":events", "*", "event", "waiting", "jobId", parentId, "prev", "waiting-children")
|
153
|
+
end
|
154
|
+
end
|
155
|
+
if parentKey ~= nil then
|
156
|
+
if rcall("EXISTS", parentKey) ~= 1 then
|
157
|
+
return -5
|
158
|
+
end
|
159
|
+
parentData = cjson.encode(parent)
|
160
|
+
end
|
161
|
+
local jobCounter = rcall("INCR", KEYS[4])
|
162
|
+
-- Trim events before emiting them to avoid trimming events emitted in this script
|
163
|
+
trimEvents(KEYS[3], KEYS[8])
|
164
|
+
local parentDependenciesKey = args[7]
|
165
|
+
local timestamp = args[4]
|
166
|
+
if args[2] == "" then
|
167
|
+
jobId = jobCounter
|
168
|
+
jobIdKey = args[1] .. jobId
|
169
|
+
else
|
170
|
+
jobId = args[2]
|
171
|
+
jobIdKey = args[1] .. jobId
|
172
|
+
if rcall("EXISTS", jobIdKey) == 1 then
|
173
|
+
if parentKey ~= nil then
|
174
|
+
if rcall("ZSCORE", KEYS[7], jobId) ~= false then
|
175
|
+
local returnvalue = rcall("HGET", jobIdKey, "returnvalue")
|
176
|
+
updateParentDepsIfNeeded(parentKey, parent['queueKey'], parentDependenciesKey,
|
177
|
+
parent['id'], jobIdKey, returnvalue, timestamp)
|
178
|
+
else
|
179
|
+
if parentDependenciesKey ~= nil then
|
180
|
+
rcall("SADD", parentDependenciesKey, jobIdKey)
|
181
|
+
end
|
182
|
+
end
|
183
|
+
rcall("HMSET", jobIdKey, "parentKey", parentKey, "parent", parentData)
|
184
|
+
end
|
185
|
+
rcall("XADD", KEYS[8], "*", "event", "duplicated", "jobId", jobId)
|
186
|
+
return jobId .. "" -- convert to string
|
187
|
+
end
|
188
|
+
end
|
189
|
+
-- Store the job.
|
190
|
+
local jsonOpts = cjson.encode(opts)
|
191
|
+
local delay = opts['delay'] or 0
|
192
|
+
local priority = opts['priority'] or 0
|
193
|
+
local optionalValues = {}
|
194
|
+
if parentKey ~= nil then
|
195
|
+
table.insert(optionalValues, "parentKey")
|
196
|
+
table.insert(optionalValues, parentKey)
|
197
|
+
table.insert(optionalValues, "parent")
|
198
|
+
table.insert(optionalValues, parentData)
|
199
|
+
end
|
200
|
+
if repeatJobKey ~= nil then
|
201
|
+
table.insert(optionalValues, "rjk")
|
202
|
+
table.insert(optionalValues, repeatJobKey)
|
203
|
+
end
|
204
|
+
rcall("HMSET", jobIdKey, "name", args[3], "data", ARGV[2], "opts", jsonOpts,
|
205
|
+
"timestamp", timestamp, "delay", delay, "priority", priority, unpack(optionalValues))
|
206
|
+
rcall("XADD", KEYS[8], "*", "event", "added", "jobId", jobId, "name", args[3])
|
207
|
+
-- Check if job is delayed
|
208
|
+
local delayedTimestamp = (delay > 0 and (timestamp + delay)) or 0
|
209
|
+
-- Check if job is a parent, if so add to the parents set
|
210
|
+
local waitChildrenKey = args[6]
|
211
|
+
if waitChildrenKey ~= nil then
|
212
|
+
rcall("ZADD", waitChildrenKey, timestamp, jobId)
|
213
|
+
rcall("XADD", KEYS[8], "*", "event", "waiting-children", "jobId", jobId)
|
214
|
+
elseif (delayedTimestamp ~= 0) then
|
215
|
+
local score = delayedTimestamp * 0x1000 + bit.band(jobCounter, 0xfff)
|
216
|
+
rcall("ZADD", KEYS[5], score, jobId)
|
217
|
+
rcall("XADD", KEYS[8], "*", "event", "delayed", "jobId", jobId, "delay",
|
218
|
+
delayedTimestamp)
|
219
|
+
-- If wait list is empty, and this delayed job is the next one to be processed,
|
220
|
+
-- then we need to signal the workers by adding a dummy job (jobId 0:delay) to the wait list.
|
221
|
+
local target = getTargetQueueList(KEYS[3], KEYS[1], KEYS[2])
|
222
|
+
addDelayMarkerIfNeeded(target, KEYS[5])
|
223
|
+
else
|
224
|
+
local target, paused = getTargetQueueList(KEYS[3], KEYS[1], KEYS[2])
|
225
|
+
-- Standard or priority add
|
226
|
+
if priority == 0 then
|
227
|
+
-- LIFO or FIFO
|
228
|
+
local pushCmd = opts['lifo'] and 'RPUSH' or 'LPUSH'
|
229
|
+
rcall(pushCmd, target, jobId)
|
230
|
+
else
|
231
|
+
addJobWithPriority(KEYS[1], KEYS[6], priority, paused, jobId, KEYS[9])
|
232
|
+
end
|
233
|
+
-- Emit waiting event
|
234
|
+
rcall("XADD", KEYS[8], "*", "event", "waiting", "jobId", jobId)
|
235
|
+
end
|
236
|
+
-- Check if this job is a child of another job, if so add it to the parents dependencies
|
237
|
+
-- TODO: Should not be possible to add a child job to a parent that is not in the "waiting-children" status.
|
238
|
+
-- fail in this case.
|
239
|
+
if parentDependenciesKey ~= nil then
|
240
|
+
rcall("SADD", parentDependenciesKey, jobIdKey)
|
241
|
+
end
|
242
|
+
return jobId .. "" -- convert to string
|
243
|
+
`;
|
244
|
+
export const addJob = {
|
245
|
+
name: 'addJob',
|
246
|
+
content,
|
247
|
+
keys: 9,
|
248
|
+
};
|
249
|
+
//# sourceMappingURL=addJob-9.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"addJob-9.js","sourceRoot":"","sources":["../../../src/scripts/addJob-9.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkPf,CAAC;AACF,MAAM,CAAC,MAAM,MAAM,GAAG;IACpB,IAAI,EAAE,QAAQ;IACd,OAAO;IACP,IAAI,EAAE,CAAC;CACR,CAAC"}
|
@@ -0,0 +1,38 @@
|
|
1
|
+
const content = `--[[
|
2
|
+
Change job delay when it is in delayed set.
|
3
|
+
Input:
|
4
|
+
KEYS[1] delayed key
|
5
|
+
KEYS[2] job key
|
6
|
+
KEYS[3] events stream
|
7
|
+
ARGV[1] delay
|
8
|
+
ARGV[2] delayedTimestamp
|
9
|
+
ARGV[3] the id of the job
|
10
|
+
Output:
|
11
|
+
0 - OK
|
12
|
+
-1 - Missing job.
|
13
|
+
-3 - Job not in delayed set.
|
14
|
+
Events:
|
15
|
+
- delayed key.
|
16
|
+
]]
|
17
|
+
local rcall = redis.call
|
18
|
+
if rcall("EXISTS", KEYS[2]) == 1 then
|
19
|
+
local jobId = ARGV[3]
|
20
|
+
local score = tonumber(ARGV[2])
|
21
|
+
local delayedTimestamp = (score / 0x1000)
|
22
|
+
local numRemovedElements = rcall("ZREM", KEYS[1], jobId)
|
23
|
+
if numRemovedElements < 1 then
|
24
|
+
return -3
|
25
|
+
end
|
26
|
+
rcall("HSET", KEYS[2], "delay", tonumber(ARGV[1]))
|
27
|
+
rcall("ZADD", KEYS[1], score, jobId)
|
28
|
+
rcall("XADD", KEYS[3], "*", "event", "delayed", "jobId", jobId, "delay", delayedTimestamp)
|
29
|
+
return 0
|
30
|
+
else
|
31
|
+
return -1
|
32
|
+
end`;
|
33
|
+
export const changeDelay = {
|
34
|
+
name: 'changeDelay',
|
35
|
+
content,
|
36
|
+
keys: 3,
|
37
|
+
};
|
38
|
+
//# sourceMappingURL=changeDelay-3.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"changeDelay-3.js","sourceRoot":"","sources":["../../../src/scripts/changeDelay-3.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IA+BZ,CAAC;AACL,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,IAAI,EAAE,aAAa;IACnB,OAAO;IACP,IAAI,EAAE,CAAC;CACR,CAAC"}
|
@@ -0,0 +1,84 @@
|
|
1
|
+
const content = `--[[
|
2
|
+
Change job priority
|
3
|
+
Input:
|
4
|
+
KEYS[1] 'wait',
|
5
|
+
KEYS[2] 'paused'
|
6
|
+
KEYS[3] 'meta'
|
7
|
+
KEYS[4] 'prioritized'
|
8
|
+
KEYS[5] 'pc' priority counter
|
9
|
+
ARGV[1] priority value
|
10
|
+
ARGV[2] job key
|
11
|
+
ARGV[3] job id
|
12
|
+
ARGV[4] lifo
|
13
|
+
Output:
|
14
|
+
0 - OK
|
15
|
+
-1 - Missing job
|
16
|
+
]]
|
17
|
+
local jobKey = ARGV[2]
|
18
|
+
local jobId = ARGV[3]
|
19
|
+
local priority = tonumber(ARGV[1])
|
20
|
+
local rcall = redis.call
|
21
|
+
-- Includes
|
22
|
+
--[[
|
23
|
+
Function to add job considering priority.
|
24
|
+
]]
|
25
|
+
-- Includes
|
26
|
+
--[[
|
27
|
+
Function priority marker to wait if needed
|
28
|
+
in order to wake up our workers and to respect priority
|
29
|
+
order as much as possible
|
30
|
+
]]
|
31
|
+
local function addPriorityMarkerIfNeeded(waitKey)
|
32
|
+
local waitLen = rcall("LLEN", waitKey)
|
33
|
+
if waitLen == 0 then
|
34
|
+
rcall("LPUSH", waitKey, "0:0")
|
35
|
+
end
|
36
|
+
end
|
37
|
+
local function addJobWithPriority(waitKey, prioritizedKey, priority, paused, jobId, priorityCounterKey)
|
38
|
+
local prioCounter = rcall("INCR", priorityCounterKey)
|
39
|
+
local score = priority * 0x100000000 + bit.band(prioCounter, 0xffffffffffff)
|
40
|
+
rcall("ZADD", prioritizedKey, score, jobId)
|
41
|
+
if not paused then
|
42
|
+
addPriorityMarkerIfNeeded(waitKey)
|
43
|
+
end
|
44
|
+
end
|
45
|
+
--[[
|
46
|
+
Function to check for the meta.paused key to decide if we are paused or not
|
47
|
+
(since an empty list and !EXISTS are not really the same).
|
48
|
+
]]
|
49
|
+
local function getTargetQueueList(queueMetaKey, waitKey, pausedKey)
|
50
|
+
if rcall("HEXISTS", queueMetaKey, "paused") ~= 1 then
|
51
|
+
return waitKey, false
|
52
|
+
else
|
53
|
+
return pausedKey, true
|
54
|
+
end
|
55
|
+
end
|
56
|
+
if rcall("EXISTS", jobKey) == 1 then
|
57
|
+
local target, paused = getTargetQueueList(KEYS[3], KEYS[1], KEYS[2])
|
58
|
+
if rcall("ZREM", KEYS[4], jobId) > 0 then
|
59
|
+
addJobWithPriority(KEYS[1], KEYS[4], priority, paused, jobId, KEYS[5])
|
60
|
+
else
|
61
|
+
local numRemovedElements = rcall("LREM", target, -1, jobId)
|
62
|
+
if numRemovedElements > 0 then
|
63
|
+
-- Standard or priority add
|
64
|
+
if priority == 0 then
|
65
|
+
-- LIFO or FIFO
|
66
|
+
local pushCmd = ARGV[4] == '1' and 'RPUSH' or 'LPUSH';
|
67
|
+
rcall(pushCmd, target, jobId)
|
68
|
+
else
|
69
|
+
addJobWithPriority(KEYS[1], KEYS[4], priority, paused, jobId, KEYS[5])
|
70
|
+
end
|
71
|
+
end
|
72
|
+
end
|
73
|
+
rcall("HSET", jobKey, "priority", priority)
|
74
|
+
return 0
|
75
|
+
else
|
76
|
+
return -1
|
77
|
+
end
|
78
|
+
`;
|
79
|
+
export const changePriority = {
|
80
|
+
name: 'changePriority',
|
81
|
+
content,
|
82
|
+
keys: 5,
|
83
|
+
};
|
84
|
+
//# sourceMappingURL=changePriority-5.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"changePriority-5.js","sourceRoot":"","sources":["../../../src/scripts/changePriority-5.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6Ef,CAAC;AACF,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,IAAI,EAAE,gBAAgB;IACtB,OAAO;IACP,IAAI,EAAE,CAAC;CACR,CAAC"}
|
@@ -0,0 +1,256 @@
|
|
1
|
+
const content = `--[[
|
2
|
+
Remove jobs from the specific set.
|
3
|
+
Input:
|
4
|
+
KEYS[1] set key,
|
5
|
+
KEYS[2] events stream key
|
6
|
+
ARGV[1] jobKey prefix
|
7
|
+
ARGV[2] timestamp
|
8
|
+
ARGV[3] limit the number of jobs to be removed. 0 is unlimited
|
9
|
+
ARGV[4] set name, can be any of 'wait', 'active', 'paused', 'delayed', 'completed', or 'failed'
|
10
|
+
]]
|
11
|
+
local rcall = redis.call
|
12
|
+
local rangeStart = 0
|
13
|
+
local rangeEnd = -1
|
14
|
+
local limit = tonumber(ARGV[3])
|
15
|
+
-- If we're only deleting _n_ items, avoid retrieving all items
|
16
|
+
-- for faster performance
|
17
|
+
--
|
18
|
+
-- Start from the tail of the list, since that's where oldest elements
|
19
|
+
-- are generally added for FIFO lists
|
20
|
+
if limit > 0 then
|
21
|
+
rangeStart = -1 - limit + 1
|
22
|
+
rangeEnd = -1
|
23
|
+
end
|
24
|
+
-- Includes
|
25
|
+
--[[
|
26
|
+
Function to clean job list.
|
27
|
+
Returns jobIds and deleted count number.
|
28
|
+
]]
|
29
|
+
-- Includes
|
30
|
+
--[[
|
31
|
+
Function to get the latest saved timestamp.
|
32
|
+
]]
|
33
|
+
local function getTimestamp(jobKey, attributes)
|
34
|
+
if #attributes == 1 then
|
35
|
+
return rcall("HGET", jobKey, attributes[1])
|
36
|
+
end
|
37
|
+
local jobTs
|
38
|
+
for _, ts in ipairs(rcall("HMGET", jobKey, unpack(attributes))) do
|
39
|
+
if (ts) then
|
40
|
+
jobTs = ts
|
41
|
+
break
|
42
|
+
end
|
43
|
+
end
|
44
|
+
return jobTs
|
45
|
+
end
|
46
|
+
--[[
|
47
|
+
Function to remove job.
|
48
|
+
]]
|
49
|
+
-- Includes
|
50
|
+
--[[
|
51
|
+
Check if this job has a parent. If so we will just remove it from
|
52
|
+
the parent child list, but if it is the last child we should move the parent to "wait/paused"
|
53
|
+
which requires code from "moveToFinished"
|
54
|
+
]]
|
55
|
+
--[[
|
56
|
+
Functions to destructure job key.
|
57
|
+
Just a bit of warning, these functions may be a bit slow and affect performance significantly.
|
58
|
+
]]
|
59
|
+
local getJobIdFromKey = function (jobKey)
|
60
|
+
return string.match(jobKey, ".*:(.*)")
|
61
|
+
end
|
62
|
+
local getJobKeyPrefix = function (jobKey, jobId)
|
63
|
+
return string.sub(jobKey, 0, #jobKey - #jobId)
|
64
|
+
end
|
65
|
+
--[[
|
66
|
+
Function to check for the meta.paused key to decide if we are paused or not
|
67
|
+
(since an empty list and !EXISTS are not really the same).
|
68
|
+
]]
|
69
|
+
local function getTargetQueueList(queueMetaKey, waitKey, pausedKey)
|
70
|
+
if rcall("HEXISTS", queueMetaKey, "paused") ~= 1 then
|
71
|
+
return waitKey, false
|
72
|
+
else
|
73
|
+
return pausedKey, true
|
74
|
+
end
|
75
|
+
end
|
76
|
+
local function moveParentToWait(parentPrefix, parentId, emitEvent)
|
77
|
+
local parentTarget = getTargetQueueList(parentPrefix .. "meta", parentPrefix .. "wait", parentPrefix .. "paused")
|
78
|
+
rcall("RPUSH", parentTarget, parentId)
|
79
|
+
if emitEvent then
|
80
|
+
local parentEventStream = parentPrefix .. "events"
|
81
|
+
rcall("XADD", parentEventStream, "*", "event", "waiting", "jobId", parentId, "prev", "waiting-children")
|
82
|
+
end
|
83
|
+
end
|
84
|
+
local function removeParentDependencyKey(jobKey, hard, parentKey, baseKey)
|
85
|
+
if parentKey then
|
86
|
+
local parentDependenciesKey = parentKey .. ":dependencies"
|
87
|
+
local result = rcall("SREM", parentDependenciesKey, jobKey)
|
88
|
+
if result > 0 then
|
89
|
+
local pendingDependencies = rcall("SCARD", parentDependenciesKey)
|
90
|
+
if pendingDependencies == 0 then
|
91
|
+
local parentId = getJobIdFromKey(parentKey)
|
92
|
+
local parentPrefix = getJobKeyPrefix(parentKey, parentId)
|
93
|
+
local numRemovedElements = rcall("ZREM", parentPrefix .. "waiting-children", parentId)
|
94
|
+
if numRemovedElements == 1 then
|
95
|
+
if hard then
|
96
|
+
if parentPrefix == baseKey then
|
97
|
+
removeParentDependencyKey(parentKey, hard, nil, baseKey)
|
98
|
+
rcall("DEL", parentKey, parentKey .. ':logs',
|
99
|
+
parentKey .. ':dependencies', parentKey .. ':processed')
|
100
|
+
else
|
101
|
+
moveParentToWait(parentPrefix, parentId)
|
102
|
+
end
|
103
|
+
else
|
104
|
+
moveParentToWait(parentPrefix, parentId, true)
|
105
|
+
end
|
106
|
+
end
|
107
|
+
end
|
108
|
+
end
|
109
|
+
else
|
110
|
+
local missedParentKey = rcall("HGET", jobKey, "parentKey")
|
111
|
+
if( (type(missedParentKey) == "string") and missedParentKey ~= "" and (rcall("EXISTS", missedParentKey) == 1)) then
|
112
|
+
local parentDependenciesKey = missedParentKey .. ":dependencies"
|
113
|
+
local result = rcall("SREM", parentDependenciesKey, jobKey)
|
114
|
+
if result > 0 then
|
115
|
+
local pendingDependencies = rcall("SCARD", parentDependenciesKey)
|
116
|
+
if pendingDependencies == 0 then
|
117
|
+
local parentId = getJobIdFromKey(missedParentKey)
|
118
|
+
local parentPrefix = getJobKeyPrefix(missedParentKey, parentId)
|
119
|
+
local numRemovedElements = rcall("ZREM", parentPrefix .. "waiting-children", parentId)
|
120
|
+
if numRemovedElements == 1 then
|
121
|
+
if hard then
|
122
|
+
if parentPrefix == baseKey then
|
123
|
+
removeParentDependencyKey(missedParentKey, hard, nil, baseKey)
|
124
|
+
rcall("DEL", missedParentKey, missedParentKey .. ':logs',
|
125
|
+
missedParentKey .. ':dependencies', missedParentKey .. ':processed')
|
126
|
+
else
|
127
|
+
moveParentToWait(parentPrefix, parentId)
|
128
|
+
end
|
129
|
+
else
|
130
|
+
moveParentToWait(parentPrefix, parentId, true)
|
131
|
+
end
|
132
|
+
end
|
133
|
+
end
|
134
|
+
end
|
135
|
+
end
|
136
|
+
end
|
137
|
+
end
|
138
|
+
local function removeJob(jobId, hard, baseKey)
|
139
|
+
local jobKey = baseKey .. jobId
|
140
|
+
removeParentDependencyKey(jobKey, hard, nil, baseKey)
|
141
|
+
rcall("DEL", jobKey, jobKey .. ':logs',
|
142
|
+
jobKey .. ':dependencies', jobKey .. ':processed')
|
143
|
+
end
|
144
|
+
local function cleanList(listKey, jobKeyPrefix, rangeStart, rangeEnd,
|
145
|
+
timestamp, isWaiting)
|
146
|
+
local jobs = rcall("LRANGE", listKey, rangeStart, rangeEnd)
|
147
|
+
local deleted = {}
|
148
|
+
local deletedCount = 0
|
149
|
+
local jobTS
|
150
|
+
local deletionMarker = ''
|
151
|
+
local jobIdsLen = #jobs
|
152
|
+
for i, job in ipairs(jobs) do
|
153
|
+
if limit > 0 and deletedCount >= limit then
|
154
|
+
break
|
155
|
+
end
|
156
|
+
local jobKey = jobKeyPrefix .. job
|
157
|
+
if (isWaiting or rcall("EXISTS", jobKey .. ":lock") == 0) then
|
158
|
+
-- Find the right timestamp of the job to compare to maxTimestamp:
|
159
|
+
-- * finishedOn says when the job was completed, but it isn't set unless the job has actually completed
|
160
|
+
-- * processedOn represents when the job was last attempted, but it doesn't get populated until
|
161
|
+
-- the job is first tried
|
162
|
+
-- * timestamp is the original job submission time
|
163
|
+
-- Fetch all three of these (in that order) and use the first one that is set so that we'll leave jobs
|
164
|
+
-- that have been active within the grace period:
|
165
|
+
jobTS = getTimestamp(jobKey, {"finishedOn", "processedOn", "timestamp"})
|
166
|
+
if (not jobTS or jobTS < timestamp) then
|
167
|
+
-- replace the entry with a deletion marker; the actual deletion will
|
168
|
+
-- occur at the end of the script
|
169
|
+
rcall("LSET", listKey, rangeEnd - jobIdsLen + i, deletionMarker)
|
170
|
+
removeJob(job, true, jobKeyPrefix)
|
171
|
+
deletedCount = deletedCount + 1
|
172
|
+
table.insert(deleted, job)
|
173
|
+
end
|
174
|
+
end
|
175
|
+
end
|
176
|
+
rcall("LREM", listKey, 0, deletionMarker)
|
177
|
+
return {deleted, deletedCount}
|
178
|
+
end
|
179
|
+
--[[
|
180
|
+
Function to clean job set.
|
181
|
+
Returns jobIds and deleted count number.
|
182
|
+
]]
|
183
|
+
-- Includes
|
184
|
+
--[[
|
185
|
+
Function to loop in batches.
|
186
|
+
Just a bit of warning, some commands as ZREM
|
187
|
+
could receive a maximum of 7000 parameters per call.
|
188
|
+
]]
|
189
|
+
local function batches(n, batchSize)
|
190
|
+
local i = 0
|
191
|
+
return function()
|
192
|
+
local from = i * batchSize + 1
|
193
|
+
i = i + 1
|
194
|
+
if (from <= n) then
|
195
|
+
local to = math.min(from + batchSize - 1, n)
|
196
|
+
return from, to
|
197
|
+
end
|
198
|
+
end
|
199
|
+
end
|
200
|
+
-- We use ZRANGEBYSCORE to make the case where we're deleting a limited number
|
201
|
+
-- of items in a sorted set only run a single iteration. If we simply used
|
202
|
+
-- ZRANGE, we may take a long time traversing through jobs that are within the
|
203
|
+
-- grace period.
|
204
|
+
local function getJobsInZset(zsetKey, rangeStart, rangeEnd, maxTimestamp, limit)
|
205
|
+
if limit > 0 then
|
206
|
+
return rcall("ZRANGEBYSCORE", zsetKey, 0, maxTimestamp, "LIMIT", 0, limit)
|
207
|
+
else
|
208
|
+
return rcall("ZRANGE", zsetKey, rangeStart, rangeEnd)
|
209
|
+
end
|
210
|
+
end
|
211
|
+
local function cleanSet(setKey, jobKeyPrefix, rangeStart, rangeEnd, timestamp, limit, attributes)
|
212
|
+
local jobs = getJobsInZset(setKey, rangeStart, rangeEnd, timestamp, limit)
|
213
|
+
local deleted = {}
|
214
|
+
local deletedCount = 0
|
215
|
+
local jobTS
|
216
|
+
for i, job in ipairs(jobs) do
|
217
|
+
if limit > 0 and deletedCount >= limit then
|
218
|
+
break
|
219
|
+
end
|
220
|
+
local jobKey = jobKeyPrefix .. job
|
221
|
+
-- * finishedOn says when the job was completed, but it isn't set unless the job has actually completed
|
222
|
+
jobTS = getTimestamp(jobKey, attributes)
|
223
|
+
if (not jobTS or jobTS < timestamp) then
|
224
|
+
removeJob(job, true, jobKeyPrefix)
|
225
|
+
deletedCount = deletedCount + 1
|
226
|
+
table.insert(deleted, job)
|
227
|
+
end
|
228
|
+
end
|
229
|
+
if(#deleted > 0) then
|
230
|
+
for from, to in batches(#deleted, 7000) do
|
231
|
+
rcall("ZREM", setKey, unpack(deleted, from, to))
|
232
|
+
end
|
233
|
+
end
|
234
|
+
return {deleted, deletedCount}
|
235
|
+
end
|
236
|
+
local result
|
237
|
+
if ARGV[4] == "active" then
|
238
|
+
result = cleanList(KEYS[1], ARGV[1], rangeStart, rangeEnd, ARGV[2], false)
|
239
|
+
elseif ARGV[4] == "delayed" then
|
240
|
+
result = cleanSet(KEYS[1], ARGV[1], rangeStart, rangeEnd, ARGV[2], limit, {"processedOn", "timestamp"})
|
241
|
+
elseif ARGV[4] == "prioritized" then
|
242
|
+
result = cleanSet(KEYS[1], ARGV[1], rangeStart, rangeEnd, ARGV[2], limit, {"timestamp"})
|
243
|
+
elseif ARGV[4] == "wait" or ARGV[4] == "paused" then
|
244
|
+
result = cleanList(KEYS[1], ARGV[1], rangeStart, rangeEnd, ARGV[2], true)
|
245
|
+
else
|
246
|
+
result = cleanSet(KEYS[1], ARGV[1], rangeStart, rangeEnd, ARGV[2], limit, {"finishedOn"} )
|
247
|
+
end
|
248
|
+
rcall("XADD", KEYS[2], "*", "event", "cleaned", "count", result[2])
|
249
|
+
return result[1]
|
250
|
+
`;
|
251
|
+
export const cleanJobsInSet = {
|
252
|
+
name: 'cleanJobsInSet',
|
253
|
+
content,
|
254
|
+
keys: 2,
|
255
|
+
};
|
256
|
+
//# sourceMappingURL=cleanJobsInSet-2.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"cleanJobsInSet-2.js","sourceRoot":"","sources":["../../../src/scripts/cleanJobsInSet-2.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyPf,CAAC;AACF,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,IAAI,EAAE,gBAAgB;IACtB,OAAO;IACP,IAAI,EAAE,CAAC;CACR,CAAC"}
|