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.
Files changed (841) hide show
  1. package/README.md +156 -22
  2. package/dist/cjs/classes/async-fifo-queue.js +90 -0
  3. package/dist/cjs/classes/async-fifo-queue.js.map +1 -0
  4. package/dist/{classes → cjs/classes}/backoffs.js +10 -9
  5. package/dist/cjs/classes/backoffs.js.map +1 -0
  6. package/dist/cjs/classes/child-pool.js +64 -0
  7. package/dist/cjs/classes/child-pool.js.map +1 -0
  8. package/dist/cjs/classes/child-processor.js +150 -0
  9. package/dist/cjs/classes/child-processor.js.map +1 -0
  10. package/dist/cjs/classes/child.js +216 -0
  11. package/dist/cjs/classes/child.js.map +1 -0
  12. package/dist/cjs/classes/delayed-error.js +19 -0
  13. package/dist/cjs/classes/delayed-error.js.map +1 -0
  14. package/dist/cjs/classes/flow-producer.js +283 -0
  15. package/dist/cjs/classes/flow-producer.js.map +1 -0
  16. package/dist/{classes → cjs/classes}/index.js +11 -3
  17. package/dist/cjs/classes/index.js.map +1 -0
  18. package/dist/cjs/classes/job.js +768 -0
  19. package/dist/cjs/classes/job.js.map +1 -0
  20. package/dist/cjs/classes/main-base.js +45 -0
  21. package/dist/cjs/classes/main-base.js.map +1 -0
  22. package/dist/cjs/classes/main-worker.js +10 -0
  23. package/dist/cjs/classes/main-worker.js.map +1 -0
  24. package/dist/cjs/classes/main.js +10 -0
  25. package/dist/cjs/classes/main.js.map +1 -0
  26. package/dist/cjs/classes/queue-base.js +135 -0
  27. package/dist/cjs/classes/queue-base.js.map +1 -0
  28. package/dist/cjs/classes/queue-events.js +120 -0
  29. package/dist/cjs/classes/queue-events.js.map +1 -0
  30. package/dist/cjs/classes/queue-getters.js +347 -0
  31. package/dist/cjs/classes/queue-getters.js.map +1 -0
  32. package/dist/cjs/classes/queue-keys.js +45 -0
  33. package/dist/cjs/classes/queue-keys.js.map +1 -0
  34. package/dist/cjs/classes/queue.js +275 -0
  35. package/dist/cjs/classes/queue.js.map +1 -0
  36. package/dist/cjs/classes/redis-connection.js +207 -0
  37. package/dist/cjs/classes/redis-connection.js.map +1 -0
  38. package/dist/cjs/classes/repeat.js +149 -0
  39. package/dist/cjs/classes/repeat.js.map +1 -0
  40. package/dist/{classes → cjs/classes}/sandbox.js +18 -14
  41. package/dist/cjs/classes/sandbox.js.map +1 -0
  42. package/dist/cjs/classes/scripts.js +658 -0
  43. package/dist/cjs/classes/scripts.js.map +1 -0
  44. package/dist/cjs/classes/unrecoverable-error.js +19 -0
  45. package/dist/cjs/classes/unrecoverable-error.js.map +1 -0
  46. package/dist/cjs/classes/waiting-children-error.js +19 -0
  47. package/dist/cjs/classes/waiting-children-error.js.map +1 -0
  48. package/dist/cjs/classes/worker.js +577 -0
  49. package/dist/cjs/classes/worker.js.map +1 -0
  50. package/dist/cjs/commands/addJob-9.lua +170 -0
  51. package/dist/cjs/commands/changeDelay-3.lua +40 -0
  52. package/dist/cjs/commands/changePriority-5.lua +52 -0
  53. package/dist/cjs/commands/cleanJobsInSet-2.lua +48 -0
  54. package/dist/cjs/commands/drain-4.lua +26 -0
  55. package/dist/{commands → cjs/commands}/extendLock-2.lua +1 -0
  56. package/dist/cjs/commands/getCounts-1.lua +35 -0
  57. package/dist/cjs/commands/getRanges-1.lua +69 -0
  58. package/dist/cjs/commands/getState-8.lua +66 -0
  59. package/dist/cjs/commands/getStateV2-8.lua +59 -0
  60. package/dist/cjs/commands/includes/addDelayMarkerIfNeeded.lua +15 -0
  61. package/dist/cjs/commands/includes/addJobWithPriority.lua +15 -0
  62. package/dist/cjs/commands/includes/addPriorityMarkerIfNeeded.lua +12 -0
  63. package/dist/cjs/commands/includes/batches.lua +18 -0
  64. package/dist/cjs/commands/includes/checkItemInList.lua +12 -0
  65. package/dist/cjs/commands/includes/checkStalledJobs.lua +139 -0
  66. package/dist/cjs/commands/includes/cleanList.lua +47 -0
  67. package/dist/cjs/commands/includes/cleanSet.lua +39 -0
  68. package/dist/cjs/commands/includes/collectMetrics.lua +46 -0
  69. package/dist/cjs/commands/includes/destructureJobKey.lua +12 -0
  70. package/dist/cjs/commands/includes/getJobsInZset.lua +12 -0
  71. package/dist/cjs/commands/includes/getNextDelayedTimestamp.lua +13 -0
  72. package/dist/cjs/commands/includes/getRateLimitTTL.lua +17 -0
  73. package/dist/cjs/commands/includes/getTargetQueueList.lua +12 -0
  74. package/dist/cjs/commands/includes/getTimestamp.lua +19 -0
  75. package/dist/cjs/commands/includes/getZSetItems.lua +7 -0
  76. package/dist/cjs/commands/includes/isLocked.lua +31 -0
  77. package/dist/cjs/commands/includes/moveJobFromPriorityToActive.lua +14 -0
  78. package/dist/cjs/commands/includes/moveParentFromWaitingChildrenToFailed.lua +28 -0
  79. package/dist/cjs/commands/includes/prepareJobForProcessing.lua +74 -0
  80. package/dist/cjs/commands/includes/promoteDelayedJobs.lua +39 -0
  81. package/dist/cjs/commands/includes/pushBackJobWithPriority.lua +9 -0
  82. package/dist/cjs/commands/includes/removeJob.lua +13 -0
  83. package/dist/cjs/commands/includes/removeJobFromAnyState.lua +35 -0
  84. package/dist/cjs/commands/includes/removeJobs.lua +25 -0
  85. package/dist/cjs/commands/includes/removeJobsByMaxAge.lua +15 -0
  86. package/dist/cjs/commands/includes/removeJobsByMaxCount.lua +15 -0
  87. package/dist/cjs/commands/includes/removeParentDependencyKey.lua +77 -0
  88. package/dist/cjs/commands/includes/removeZSetJobs.lua +15 -0
  89. package/dist/cjs/commands/includes/trimEvents.lua +12 -0
  90. package/dist/cjs/commands/includes/updateParentDepsIfNeeded.lua +40 -0
  91. package/dist/cjs/commands/index.js +10 -0
  92. package/dist/cjs/commands/index.js.map +1 -0
  93. package/dist/cjs/commands/isFinished-3.lua +48 -0
  94. package/dist/cjs/commands/isJobInList-1.lua +16 -0
  95. package/dist/cjs/commands/moveJobFromActiveToWait-9.lua +53 -0
  96. package/dist/cjs/commands/moveStalledJobsToWait-8.lua +24 -0
  97. package/dist/cjs/commands/moveToActive-10.lua +116 -0
  98. package/dist/cjs/commands/moveToDelayed-8.lua +66 -0
  99. package/dist/cjs/commands/moveToFinished-13.lua +250 -0
  100. package/dist/cjs/commands/moveToWaitingChildren-4.lua +62 -0
  101. package/dist/cjs/commands/obliterate-2.lua +102 -0
  102. package/dist/cjs/commands/pause-5.lua +36 -0
  103. package/dist/cjs/commands/promote-7.lua +57 -0
  104. package/dist/cjs/commands/releaseLock-1.lua +19 -0
  105. package/dist/cjs/commands/removeJob-1.lua +71 -0
  106. package/{src → dist/cjs}/commands/removeRepeatable-2.lua +13 -1
  107. package/dist/cjs/commands/reprocessJob-6.lua +43 -0
  108. package/dist/cjs/commands/retryJob-9.lua +69 -0
  109. package/dist/cjs/commands/retryJobs-6.lua +53 -0
  110. package/dist/cjs/commands/saveStacktrace-1.lua +22 -0
  111. package/dist/cjs/commands/script-loader.js +408 -0
  112. package/dist/cjs/commands/script-loader.js.map +1 -0
  113. package/dist/cjs/commands/updateData-1.lua +20 -0
  114. package/dist/cjs/commands/updateProgress-2.lua +26 -0
  115. package/dist/cjs/enums/error-code.enum.js +13 -0
  116. package/dist/cjs/enums/error-code.enum.js.map +1 -0
  117. package/dist/cjs/enums/index.js +6 -0
  118. package/dist/cjs/enums/index.js.map +1 -0
  119. package/dist/cjs/enums/metrics-time.js +15 -0
  120. package/dist/cjs/enums/metrics-time.js.map +1 -0
  121. package/dist/{index.js → cjs/index.js} +2 -0
  122. package/dist/cjs/index.js.map +1 -0
  123. package/dist/cjs/interfaces/advanced-options.js +3 -0
  124. package/dist/cjs/interfaces/advanced-options.js.map +1 -0
  125. package/dist/cjs/interfaces/backoff-options.js.map +1 -0
  126. package/dist/cjs/interfaces/base-job-options.js +3 -0
  127. package/dist/cjs/interfaces/base-job-options.js.map +1 -0
  128. package/dist/cjs/interfaces/child-command.js +10 -0
  129. package/dist/cjs/interfaces/child-command.js.map +1 -0
  130. package/dist/{interfaces/backoff-opts.js → cjs/interfaces/child-message.js} +1 -1
  131. package/dist/cjs/interfaces/child-message.js.map +1 -0
  132. package/dist/{interfaces/redis-opts.js → cjs/interfaces/connection.js} +1 -1
  133. package/dist/cjs/interfaces/connection.js.map +1 -0
  134. package/dist/{interfaces/jobs-opts.js → cjs/interfaces/flow-job.js} +1 -1
  135. package/dist/cjs/interfaces/flow-job.js.map +1 -0
  136. package/dist/cjs/interfaces/index.js +28 -0
  137. package/dist/cjs/interfaces/index.js.map +1 -0
  138. package/dist/cjs/interfaces/ioredis-events.js +3 -0
  139. package/dist/cjs/interfaces/ioredis-events.js.map +1 -0
  140. package/dist/{interfaces/repeat-opts.js → cjs/interfaces/job-json.js} +1 -1
  141. package/dist/cjs/interfaces/job-json.js.map +1 -0
  142. package/dist/{interfaces/worker-opts.js → cjs/interfaces/keep-jobs.js} +1 -1
  143. package/dist/cjs/interfaces/keep-jobs.js.map +1 -0
  144. package/dist/cjs/interfaces/metrics-options.js +3 -0
  145. package/dist/cjs/interfaces/metrics-options.js.map +1 -0
  146. package/dist/cjs/interfaces/metrics.js +3 -0
  147. package/dist/cjs/interfaces/metrics.js.map +1 -0
  148. package/dist/cjs/interfaces/minimal-job.js +3 -0
  149. package/dist/cjs/interfaces/minimal-job.js.map +1 -0
  150. package/dist/cjs/interfaces/parent-command.js +15 -0
  151. package/dist/cjs/interfaces/parent-command.js.map +1 -0
  152. package/dist/cjs/interfaces/parent-message.js +3 -0
  153. package/dist/cjs/interfaces/parent-message.js.map +1 -0
  154. package/dist/cjs/interfaces/parent.js +3 -0
  155. package/dist/cjs/interfaces/parent.js.map +1 -0
  156. package/dist/{interfaces → cjs/interfaces}/queue-options.js +1 -0
  157. package/dist/cjs/interfaces/queue-options.js.map +1 -0
  158. package/dist/cjs/interfaces/rate-limiter-options.js.map +1 -0
  159. package/dist/cjs/interfaces/redis-options.js.map +1 -0
  160. package/dist/{interfaces/jobs-options.js → cjs/interfaces/redis-streams.js} +1 -1
  161. package/dist/cjs/interfaces/redis-streams.js.map +1 -0
  162. package/dist/cjs/interfaces/repeat-options.js.map +1 -0
  163. package/dist/cjs/interfaces/sandboxed-job-processor.js +3 -0
  164. package/dist/cjs/interfaces/sandboxed-job-processor.js.map +1 -0
  165. package/dist/cjs/interfaces/sandboxed-job.js +3 -0
  166. package/dist/cjs/interfaces/sandboxed-job.js.map +1 -0
  167. package/dist/cjs/interfaces/worker-options.js.map +1 -0
  168. package/dist/cjs/scripts/addJob-9.js +252 -0
  169. package/dist/cjs/scripts/addJob-9.js.map +1 -0
  170. package/dist/cjs/scripts/changeDelay-3.js +41 -0
  171. package/dist/cjs/scripts/changeDelay-3.js.map +1 -0
  172. package/dist/cjs/scripts/changePriority-5.js +87 -0
  173. package/dist/cjs/scripts/changePriority-5.js.map +1 -0
  174. package/dist/cjs/scripts/cleanJobsInSet-2.js +259 -0
  175. package/dist/cjs/scripts/cleanJobsInSet-2.js.map +1 -0
  176. package/dist/cjs/scripts/drain-4.js +178 -0
  177. package/dist/cjs/scripts/drain-4.js.map +1 -0
  178. package/dist/cjs/scripts/extendLock-2.js +30 -0
  179. package/dist/cjs/scripts/extendLock-2.js.map +1 -0
  180. package/dist/cjs/scripts/getCounts-1.js +41 -0
  181. package/dist/cjs/scripts/getCounts-1.js.map +1 -0
  182. package/dist/cjs/scripts/getRanges-1.js +72 -0
  183. package/dist/cjs/scripts/getRanges-1.js.map +1 -0
  184. package/dist/cjs/scripts/getState-8.js +74 -0
  185. package/dist/cjs/scripts/getState-8.js.map +1 -0
  186. package/dist/cjs/scripts/getStateV2-8.js +58 -0
  187. package/dist/cjs/scripts/getStateV2-8.js.map +1 -0
  188. package/dist/cjs/scripts/index.js +34 -0
  189. package/dist/cjs/scripts/index.js.map +1 -0
  190. package/dist/cjs/scripts/isFinished-3.js +49 -0
  191. package/dist/cjs/scripts/isFinished-3.js.map +1 -0
  192. package/dist/cjs/scripts/isJobInList-1.js +32 -0
  193. package/dist/cjs/scripts/isJobInList-1.js.map +1 -0
  194. package/dist/cjs/scripts/moveJobFromActiveToWait-9.js +70 -0
  195. package/dist/cjs/scripts/moveJobFromActiveToWait-9.js.map +1 -0
  196. package/dist/cjs/scripts/moveStalledJobsToWait-8.js +289 -0
  197. package/dist/cjs/scripts/moveStalledJobsToWait-8.js.map +1 -0
  198. package/dist/cjs/scripts/moveToActive-10.js +269 -0
  199. package/dist/cjs/scripts/moveToActive-10.js.map +1 -0
  200. package/dist/cjs/scripts/moveToDelayed-8.js +152 -0
  201. package/dist/cjs/scripts/moveToDelayed-8.js.map +1 -0
  202. package/dist/cjs/scripts/moveToFinished-13.js +624 -0
  203. package/dist/cjs/scripts/moveToFinished-13.js.map +1 -0
  204. package/dist/cjs/scripts/moveToWaitingChildren-4.js +59 -0
  205. package/dist/cjs/scripts/moveToWaitingChildren-4.js.map +1 -0
  206. package/dist/cjs/scripts/obliterate-2.js +244 -0
  207. package/dist/cjs/scripts/obliterate-2.js.map +1 -0
  208. package/dist/cjs/scripts/pause-5.js +48 -0
  209. package/dist/cjs/scripts/pause-5.js.map +1 -0
  210. package/dist/cjs/scripts/promote-7.js +87 -0
  211. package/dist/cjs/scripts/promote-7.js.map +1 -0
  212. package/dist/cjs/scripts/releaseLock-1.js +25 -0
  213. package/dist/cjs/scripts/releaseLock-1.js.map +1 -0
  214. package/dist/cjs/scripts/removeJob-1.js +210 -0
  215. package/dist/cjs/scripts/removeJob-1.js.map +1 -0
  216. package/dist/cjs/scripts/removeRepeatable-2.js +38 -0
  217. package/dist/cjs/scripts/removeRepeatable-2.js.map +1 -0
  218. package/dist/cjs/scripts/reprocessJob-6.js +56 -0
  219. package/dist/cjs/scripts/reprocessJob-6.js.map +1 -0
  220. package/dist/cjs/scripts/retryJob-9.js +128 -0
  221. package/dist/cjs/scripts/retryJob-9.js.map +1 -0
  222. package/dist/cjs/scripts/retryJobs-6.js +76 -0
  223. package/dist/cjs/scripts/retryJobs-6.js.map +1 -0
  224. package/dist/cjs/scripts/saveStacktrace-1.js +27 -0
  225. package/dist/cjs/scripts/saveStacktrace-1.js.map +1 -0
  226. package/dist/cjs/scripts/updateData-1.js +26 -0
  227. package/dist/cjs/scripts/updateData-1.js.map +1 -0
  228. package/dist/cjs/scripts/updateProgress-2.js +31 -0
  229. package/dist/cjs/scripts/updateProgress-2.js.map +1 -0
  230. package/dist/cjs/tsconfig-cjs.tsbuildinfo +1 -0
  231. package/dist/cjs/types/backoff-strategy.js +3 -0
  232. package/dist/cjs/types/backoff-strategy.js.map +1 -0
  233. package/dist/cjs/types/finished-status.js +3 -0
  234. package/dist/cjs/types/finished-status.js.map +1 -0
  235. package/dist/cjs/types/index.js +11 -0
  236. package/dist/cjs/types/index.js.map +1 -0
  237. package/dist/cjs/types/job-json-sandbox.js +3 -0
  238. package/dist/cjs/types/job-json-sandbox.js.map +1 -0
  239. package/dist/cjs/types/job-options.js +3 -0
  240. package/dist/cjs/types/job-options.js.map +1 -0
  241. package/dist/cjs/types/job-type.js +3 -0
  242. package/dist/cjs/types/job-type.js.map +1 -0
  243. package/dist/cjs/types/minimal-queue.js +3 -0
  244. package/dist/cjs/types/minimal-queue.js.map +1 -0
  245. package/dist/cjs/types/repeat-strategy.js +3 -0
  246. package/dist/cjs/types/repeat-strategy.js.map +1 -0
  247. package/dist/cjs/utils.js +152 -0
  248. package/dist/cjs/utils.js.map +1 -0
  249. package/dist/esm/classes/async-fifo-queue.d.ts +31 -0
  250. package/dist/esm/classes/async-fifo-queue.js +86 -0
  251. package/dist/esm/classes/async-fifo-queue.js.map +1 -0
  252. package/dist/esm/classes/backoffs.d.ts +10 -0
  253. package/dist/esm/classes/backoffs.js +44 -0
  254. package/dist/esm/classes/backoffs.js.map +1 -0
  255. package/dist/esm/classes/child-pool.d.ts +23 -0
  256. package/dist/esm/classes/child-pool.js +60 -0
  257. package/dist/esm/classes/child-pool.js.map +1 -0
  258. package/dist/esm/classes/child-processor.d.ts +26 -0
  259. package/dist/esm/classes/child-processor.js +146 -0
  260. package/dist/esm/classes/child-processor.js.map +1 -0
  261. package/dist/esm/classes/child.d.ts +36 -0
  262. package/dist/esm/classes/child.js +212 -0
  263. package/dist/esm/classes/child.js.map +1 -0
  264. package/dist/esm/classes/delayed-error.d.ts +10 -0
  265. package/dist/esm/classes/delayed-error.js +15 -0
  266. package/dist/esm/classes/delayed-error.js.map +1 -0
  267. package/dist/esm/classes/flow-producer.d.ts +163 -0
  268. package/dist/esm/classes/flow-producer.js +279 -0
  269. package/dist/esm/classes/flow-producer.js.map +1 -0
  270. package/dist/{classes → esm/classes}/index.d.ts +9 -3
  271. package/dist/esm/classes/index.js +22 -0
  272. package/dist/esm/classes/index.js.map +1 -0
  273. package/dist/esm/classes/job.d.ts +355 -0
  274. package/dist/esm/classes/job.js +764 -0
  275. package/dist/esm/classes/job.js.map +1 -0
  276. package/dist/esm/classes/main-base.d.ts +4 -0
  277. package/dist/esm/classes/main-base.js +43 -0
  278. package/dist/esm/classes/main-base.js.map +1 -0
  279. package/dist/esm/classes/main-worker.js +8 -0
  280. package/dist/esm/classes/main-worker.js.map +1 -0
  281. package/dist/esm/classes/main.js +8 -0
  282. package/dist/esm/classes/main.js.map +1 -0
  283. package/dist/esm/classes/queue-base.d.ts +67 -0
  284. package/dist/esm/classes/queue-base.js +131 -0
  285. package/dist/esm/classes/queue-base.js.map +1 -0
  286. package/dist/esm/classes/queue-events.d.ts +179 -0
  287. package/dist/esm/classes/queue-events.js +116 -0
  288. package/dist/esm/classes/queue-events.js.map +1 -0
  289. package/dist/esm/classes/queue-getters.d.ts +164 -0
  290. package/dist/esm/classes/queue-getters.js +344 -0
  291. package/dist/esm/classes/queue-getters.js.map +1 -0
  292. package/dist/esm/classes/queue-keys.d.ts +10 -0
  293. package/dist/esm/classes/queue-keys.js +41 -0
  294. package/dist/esm/classes/queue-keys.js.map +1 -0
  295. package/dist/esm/classes/queue.d.ts +236 -0
  296. package/dist/esm/classes/queue.js +271 -0
  297. package/dist/esm/classes/queue.js.map +1 -0
  298. package/dist/esm/classes/redis-connection.d.ts +37 -0
  299. package/dist/esm/classes/redis-connection.js +203 -0
  300. package/dist/esm/classes/redis-connection.js.map +1 -0
  301. package/dist/esm/classes/repeat.d.ts +25 -0
  302. package/dist/esm/classes/repeat.js +144 -0
  303. package/dist/esm/classes/repeat.js.map +1 -0
  304. package/dist/esm/classes/sandbox.d.ts +4 -0
  305. package/dist/esm/classes/sandbox.js +58 -0
  306. package/dist/esm/classes/sandbox.js.map +1 -0
  307. package/dist/esm/classes/scripts.d.ts +106 -0
  308. package/dist/esm/classes/scripts.js +654 -0
  309. package/dist/esm/classes/scripts.js.map +1 -0
  310. package/dist/esm/classes/unrecoverable-error.d.ts +10 -0
  311. package/dist/esm/classes/unrecoverable-error.js +15 -0
  312. package/dist/esm/classes/unrecoverable-error.js.map +1 -0
  313. package/dist/esm/classes/waiting-children-error.d.ts +10 -0
  314. package/dist/esm/classes/waiting-children-error.js +15 -0
  315. package/dist/esm/classes/waiting-children-error.js.map +1 -0
  316. package/dist/esm/classes/worker.d.ts +215 -0
  317. package/dist/esm/classes/worker.js +573 -0
  318. package/dist/esm/classes/worker.js.map +1 -0
  319. package/dist/esm/commands/addJob-9.lua +170 -0
  320. package/dist/esm/commands/changeDelay-3.lua +40 -0
  321. package/dist/esm/commands/changePriority-5.lua +52 -0
  322. package/dist/esm/commands/cleanJobsInSet-2.lua +48 -0
  323. package/dist/esm/commands/drain-4.lua +26 -0
  324. package/{src → dist/esm}/commands/extendLock-2.lua +1 -0
  325. package/dist/esm/commands/getCounts-1.lua +35 -0
  326. package/dist/esm/commands/getRanges-1.lua +69 -0
  327. package/dist/esm/commands/getState-8.lua +66 -0
  328. package/dist/esm/commands/getStateV2-8.lua +59 -0
  329. package/dist/esm/commands/includes/addDelayMarkerIfNeeded.lua +15 -0
  330. package/dist/esm/commands/includes/addJobWithPriority.lua +15 -0
  331. package/dist/esm/commands/includes/addPriorityMarkerIfNeeded.lua +12 -0
  332. package/dist/esm/commands/includes/batches.lua +18 -0
  333. package/dist/esm/commands/includes/checkItemInList.lua +12 -0
  334. package/dist/esm/commands/includes/checkStalledJobs.lua +139 -0
  335. package/dist/esm/commands/includes/cleanList.lua +47 -0
  336. package/dist/esm/commands/includes/cleanSet.lua +39 -0
  337. package/dist/esm/commands/includes/collectMetrics.lua +46 -0
  338. package/dist/esm/commands/includes/destructureJobKey.lua +12 -0
  339. package/dist/esm/commands/includes/getJobsInZset.lua +12 -0
  340. package/dist/esm/commands/includes/getNextDelayedTimestamp.lua +13 -0
  341. package/dist/esm/commands/includes/getRateLimitTTL.lua +17 -0
  342. package/dist/esm/commands/includes/getTargetQueueList.lua +12 -0
  343. package/dist/esm/commands/includes/getTimestamp.lua +19 -0
  344. package/dist/esm/commands/includes/getZSetItems.lua +7 -0
  345. package/dist/esm/commands/includes/isLocked.lua +31 -0
  346. package/dist/esm/commands/includes/moveJobFromPriorityToActive.lua +14 -0
  347. package/dist/esm/commands/includes/moveParentFromWaitingChildrenToFailed.lua +28 -0
  348. package/dist/esm/commands/includes/prepareJobForProcessing.lua +74 -0
  349. package/dist/esm/commands/includes/promoteDelayedJobs.lua +39 -0
  350. package/dist/esm/commands/includes/pushBackJobWithPriority.lua +9 -0
  351. package/dist/esm/commands/includes/removeJob.lua +13 -0
  352. package/dist/esm/commands/includes/removeJobFromAnyState.lua +35 -0
  353. package/dist/esm/commands/includes/removeJobs.lua +25 -0
  354. package/dist/esm/commands/includes/removeJobsByMaxAge.lua +15 -0
  355. package/dist/esm/commands/includes/removeJobsByMaxCount.lua +15 -0
  356. package/dist/esm/commands/includes/removeParentDependencyKey.lua +77 -0
  357. package/dist/esm/commands/includes/removeZSetJobs.lua +15 -0
  358. package/dist/esm/commands/includes/trimEvents.lua +12 -0
  359. package/dist/esm/commands/includes/updateParentDepsIfNeeded.lua +40 -0
  360. package/dist/esm/commands/index.d.ts +4 -0
  361. package/dist/esm/commands/index.js +5 -0
  362. package/dist/esm/commands/index.js.map +1 -0
  363. package/dist/esm/commands/isFinished-3.lua +48 -0
  364. package/dist/esm/commands/isJobInList-1.lua +16 -0
  365. package/dist/esm/commands/moveJobFromActiveToWait-9.lua +53 -0
  366. package/dist/esm/commands/moveStalledJobsToWait-8.lua +24 -0
  367. package/dist/esm/commands/moveToActive-10.lua +116 -0
  368. package/dist/esm/commands/moveToDelayed-8.lua +66 -0
  369. package/dist/esm/commands/moveToFinished-13.lua +250 -0
  370. package/dist/esm/commands/moveToWaitingChildren-4.lua +62 -0
  371. package/dist/esm/commands/obliterate-2.lua +102 -0
  372. package/dist/esm/commands/pause-5.lua +36 -0
  373. package/dist/esm/commands/promote-7.lua +57 -0
  374. package/dist/esm/commands/releaseLock-1.lua +19 -0
  375. package/dist/esm/commands/removeJob-1.lua +71 -0
  376. package/dist/{commands → esm/commands}/removeRepeatable-2.lua +13 -1
  377. package/dist/esm/commands/reprocessJob-6.lua +43 -0
  378. package/dist/esm/commands/retryJob-9.lua +69 -0
  379. package/dist/esm/commands/retryJobs-6.lua +53 -0
  380. package/dist/esm/commands/saveStacktrace-1.lua +22 -0
  381. package/dist/esm/commands/script-loader.d.ts +119 -0
  382. package/dist/esm/commands/script-loader.js +403 -0
  383. package/dist/esm/commands/script-loader.js.map +1 -0
  384. package/dist/esm/commands/updateData-1.lua +20 -0
  385. package/dist/esm/commands/updateProgress-2.lua +26 -0
  386. package/dist/esm/enums/error-code.enum.d.ts +8 -0
  387. package/dist/esm/enums/error-code.enum.js +10 -0
  388. package/dist/esm/enums/error-code.enum.js.map +1 -0
  389. package/dist/esm/enums/index.d.ts +2 -0
  390. package/dist/esm/enums/index.js +3 -0
  391. package/dist/esm/enums/index.js.map +1 -0
  392. package/dist/esm/enums/metrics-time.d.ts +10 -0
  393. package/dist/esm/enums/metrics-time.js +12 -0
  394. package/dist/esm/enums/metrics-time.js.map +1 -0
  395. package/dist/{index.d.ts → esm/index.d.ts} +2 -0
  396. package/{src/index.ts → dist/esm/index.js} +7 -4
  397. package/dist/esm/index.js.map +1 -0
  398. package/dist/esm/interfaces/advanced-options.d.ts +13 -0
  399. package/dist/esm/interfaces/advanced-options.js +2 -0
  400. package/dist/esm/interfaces/advanced-options.js.map +1 -0
  401. package/dist/esm/interfaces/backoff-options.d.ts +15 -0
  402. package/dist/esm/interfaces/backoff-options.js +2 -0
  403. package/dist/esm/interfaces/backoff-options.js.map +1 -0
  404. package/dist/esm/interfaces/base-job-options.d.ts +97 -0
  405. package/dist/esm/interfaces/base-job-options.js +2 -0
  406. package/dist/esm/interfaces/base-job-options.js.map +1 -0
  407. package/dist/esm/interfaces/child-command.d.ts +5 -0
  408. package/dist/esm/interfaces/child-command.js +7 -0
  409. package/dist/esm/interfaces/child-command.js.map +1 -0
  410. package/dist/esm/interfaces/child-message.d.ts +6 -0
  411. package/dist/esm/interfaces/child-message.js +2 -0
  412. package/dist/esm/interfaces/child-message.js.map +1 -0
  413. package/dist/esm/interfaces/connection.d.ts +8 -0
  414. package/dist/esm/interfaces/connection.js +2 -0
  415. package/dist/esm/interfaces/connection.js.map +1 -0
  416. package/dist/esm/interfaces/flow-job.d.ts +19 -0
  417. package/dist/esm/interfaces/flow-job.js +2 -0
  418. package/dist/esm/interfaces/flow-job.js.map +1 -0
  419. package/dist/esm/interfaces/index.d.ts +24 -0
  420. package/dist/esm/interfaces/index.js +25 -0
  421. package/dist/esm/interfaces/index.js.map +1 -0
  422. package/dist/esm/interfaces/ioredis-events.d.ts +8 -0
  423. package/dist/esm/interfaces/ioredis-events.js +2 -0
  424. package/dist/esm/interfaces/ioredis-events.js.map +1 -0
  425. package/dist/esm/interfaces/job-json.d.ts +37 -0
  426. package/dist/esm/interfaces/job-json.js +2 -0
  427. package/dist/esm/interfaces/job-json.js.map +1 -0
  428. package/dist/esm/interfaces/keep-jobs.d.ts +17 -0
  429. package/dist/esm/interfaces/keep-jobs.js +2 -0
  430. package/dist/esm/interfaces/keep-jobs.js.map +1 -0
  431. package/dist/esm/interfaces/metrics-options.d.ts +12 -0
  432. package/dist/esm/interfaces/metrics-options.js +2 -0
  433. package/dist/esm/interfaces/metrics-options.js.map +1 -0
  434. package/dist/esm/interfaces/metrics.d.ts +9 -0
  435. package/dist/esm/interfaces/metrics.js +2 -0
  436. package/dist/esm/interfaces/metrics.js.map +1 -0
  437. package/dist/esm/interfaces/minimal-job.d.ts +129 -0
  438. package/dist/esm/interfaces/minimal-job.js +2 -0
  439. package/dist/esm/interfaces/minimal-job.js.map +1 -0
  440. package/dist/esm/interfaces/parent-command.d.ts +10 -0
  441. package/dist/esm/interfaces/parent-command.js +12 -0
  442. package/dist/esm/interfaces/parent-command.js.map +1 -0
  443. package/dist/esm/interfaces/parent-message.d.ts +8 -0
  444. package/dist/esm/interfaces/parent-message.js +2 -0
  445. package/dist/esm/interfaces/parent-message.js.map +1 -0
  446. package/dist/esm/interfaces/parent.d.ts +20 -0
  447. package/dist/esm/interfaces/parent.js +2 -0
  448. package/dist/esm/interfaces/parent.js.map +1 -0
  449. package/dist/esm/interfaces/queue-options.d.ts +74 -0
  450. package/dist/esm/interfaces/queue-options.js +6 -0
  451. package/dist/esm/interfaces/queue-options.js.map +1 -0
  452. package/dist/esm/interfaces/rate-limiter-options.d.ts +12 -0
  453. package/dist/esm/interfaces/rate-limiter-options.js +2 -0
  454. package/dist/esm/interfaces/rate-limiter-options.js.map +1 -0
  455. package/dist/esm/interfaces/redis-options.d.ts +7 -0
  456. package/dist/esm/interfaces/redis-options.js +2 -0
  457. package/dist/esm/interfaces/redis-options.js.map +1 -0
  458. package/dist/esm/interfaces/redis-streams.d.ts +4 -0
  459. package/dist/esm/interfaces/redis-streams.js +2 -0
  460. package/dist/esm/interfaces/redis-streams.js.map +1 -0
  461. package/dist/esm/interfaces/repeat-options.d.ts +33 -0
  462. package/dist/esm/interfaces/repeat-options.js +2 -0
  463. package/dist/esm/interfaces/repeat-options.js.map +1 -0
  464. package/dist/esm/interfaces/sandboxed-job-processor.d.ts +5 -0
  465. package/dist/esm/interfaces/sandboxed-job-processor.js +2 -0
  466. package/dist/esm/interfaces/sandboxed-job-processor.js.map +1 -0
  467. package/dist/esm/interfaces/sandboxed-job.d.ts +13 -0
  468. package/dist/esm/interfaces/sandboxed-job.js +2 -0
  469. package/dist/esm/interfaces/sandboxed-job.js.map +1 -0
  470. package/dist/esm/interfaces/worker-options.d.ts +123 -0
  471. package/dist/esm/interfaces/worker-options.js +2 -0
  472. package/dist/esm/interfaces/worker-options.js.map +1 -0
  473. package/dist/esm/scripts/addJob-9.d.ts +5 -0
  474. package/dist/esm/scripts/addJob-9.js +249 -0
  475. package/dist/esm/scripts/addJob-9.js.map +1 -0
  476. package/dist/esm/scripts/changeDelay-3.d.ts +5 -0
  477. package/dist/esm/scripts/changeDelay-3.js +38 -0
  478. package/dist/esm/scripts/changeDelay-3.js.map +1 -0
  479. package/dist/esm/scripts/changePriority-5.d.ts +5 -0
  480. package/dist/esm/scripts/changePriority-5.js +84 -0
  481. package/dist/esm/scripts/changePriority-5.js.map +1 -0
  482. package/dist/esm/scripts/cleanJobsInSet-2.d.ts +5 -0
  483. package/dist/esm/scripts/cleanJobsInSet-2.js +256 -0
  484. package/dist/esm/scripts/cleanJobsInSet-2.js.map +1 -0
  485. package/dist/esm/scripts/drain-4.d.ts +5 -0
  486. package/dist/esm/scripts/drain-4.js +175 -0
  487. package/dist/esm/scripts/drain-4.js.map +1 -0
  488. package/dist/esm/scripts/extendLock-2.d.ts +5 -0
  489. package/dist/esm/scripts/extendLock-2.js +27 -0
  490. package/dist/esm/scripts/extendLock-2.js.map +1 -0
  491. package/dist/esm/scripts/getCounts-1.d.ts +5 -0
  492. package/dist/esm/scripts/getCounts-1.js +38 -0
  493. package/dist/esm/scripts/getCounts-1.js.map +1 -0
  494. package/dist/esm/scripts/getRanges-1.d.ts +5 -0
  495. package/dist/esm/scripts/getRanges-1.js +69 -0
  496. package/dist/esm/scripts/getRanges-1.js.map +1 -0
  497. package/dist/esm/scripts/getState-8.d.ts +5 -0
  498. package/dist/esm/scripts/getState-8.js +71 -0
  499. package/dist/esm/scripts/getState-8.js.map +1 -0
  500. package/dist/esm/scripts/getStateV2-8.d.ts +5 -0
  501. package/dist/esm/scripts/getStateV2-8.js +55 -0
  502. package/dist/esm/scripts/getStateV2-8.js.map +1 -0
  503. package/dist/esm/scripts/index.d.ts +30 -0
  504. package/dist/esm/scripts/index.js +31 -0
  505. package/dist/esm/scripts/index.js.map +1 -0
  506. package/dist/esm/scripts/isFinished-3.d.ts +5 -0
  507. package/dist/esm/scripts/isFinished-3.js +46 -0
  508. package/dist/esm/scripts/isFinished-3.js.map +1 -0
  509. package/dist/esm/scripts/isJobInList-1.d.ts +5 -0
  510. package/dist/esm/scripts/isJobInList-1.js +29 -0
  511. package/dist/esm/scripts/isJobInList-1.js.map +1 -0
  512. package/dist/esm/scripts/moveJobFromActiveToWait-9.d.ts +5 -0
  513. package/dist/esm/scripts/moveJobFromActiveToWait-9.js +67 -0
  514. package/dist/esm/scripts/moveJobFromActiveToWait-9.js.map +1 -0
  515. package/dist/esm/scripts/moveStalledJobsToWait-8.d.ts +5 -0
  516. package/dist/esm/scripts/moveStalledJobsToWait-8.js +286 -0
  517. package/dist/esm/scripts/moveStalledJobsToWait-8.js.map +1 -0
  518. package/dist/esm/scripts/moveToActive-10.d.ts +5 -0
  519. package/dist/esm/scripts/moveToActive-10.js +266 -0
  520. package/dist/esm/scripts/moveToActive-10.js.map +1 -0
  521. package/dist/esm/scripts/moveToDelayed-8.d.ts +5 -0
  522. package/dist/esm/scripts/moveToDelayed-8.js +149 -0
  523. package/dist/esm/scripts/moveToDelayed-8.js.map +1 -0
  524. package/dist/esm/scripts/moveToFinished-13.d.ts +5 -0
  525. package/dist/esm/scripts/moveToFinished-13.js +621 -0
  526. package/dist/esm/scripts/moveToFinished-13.js.map +1 -0
  527. package/dist/esm/scripts/moveToWaitingChildren-4.d.ts +5 -0
  528. package/dist/esm/scripts/moveToWaitingChildren-4.js +56 -0
  529. package/dist/esm/scripts/moveToWaitingChildren-4.js.map +1 -0
  530. package/dist/esm/scripts/obliterate-2.d.ts +5 -0
  531. package/dist/esm/scripts/obliterate-2.js +241 -0
  532. package/dist/esm/scripts/obliterate-2.js.map +1 -0
  533. package/dist/esm/scripts/pause-5.d.ts +5 -0
  534. package/dist/esm/scripts/pause-5.js +45 -0
  535. package/dist/esm/scripts/pause-5.js.map +1 -0
  536. package/dist/esm/scripts/promote-7.d.ts +5 -0
  537. package/dist/esm/scripts/promote-7.js +84 -0
  538. package/dist/esm/scripts/promote-7.js.map +1 -0
  539. package/dist/esm/scripts/releaseLock-1.d.ts +5 -0
  540. package/dist/esm/scripts/releaseLock-1.js +22 -0
  541. package/dist/esm/scripts/releaseLock-1.js.map +1 -0
  542. package/dist/esm/scripts/removeJob-1.d.ts +5 -0
  543. package/dist/esm/scripts/removeJob-1.js +207 -0
  544. package/dist/esm/scripts/removeJob-1.js.map +1 -0
  545. package/dist/esm/scripts/removeRepeatable-2.d.ts +5 -0
  546. package/dist/esm/scripts/removeRepeatable-2.js +35 -0
  547. package/dist/esm/scripts/removeRepeatable-2.js.map +1 -0
  548. package/dist/esm/scripts/reprocessJob-6.d.ts +5 -0
  549. package/dist/esm/scripts/reprocessJob-6.js +53 -0
  550. package/dist/esm/scripts/reprocessJob-6.js.map +1 -0
  551. package/dist/esm/scripts/retryJob-9.d.ts +5 -0
  552. package/dist/esm/scripts/retryJob-9.js +125 -0
  553. package/dist/esm/scripts/retryJob-9.js.map +1 -0
  554. package/dist/esm/scripts/retryJobs-6.d.ts +5 -0
  555. package/dist/esm/scripts/retryJobs-6.js +73 -0
  556. package/dist/esm/scripts/retryJobs-6.js.map +1 -0
  557. package/dist/esm/scripts/saveStacktrace-1.d.ts +5 -0
  558. package/dist/esm/scripts/saveStacktrace-1.js +24 -0
  559. package/dist/esm/scripts/saveStacktrace-1.js.map +1 -0
  560. package/dist/esm/scripts/updateData-1.d.ts +5 -0
  561. package/dist/esm/scripts/updateData-1.js +23 -0
  562. package/dist/esm/scripts/updateData-1.js.map +1 -0
  563. package/dist/esm/scripts/updateProgress-2.d.ts +5 -0
  564. package/dist/esm/scripts/updateProgress-2.js +28 -0
  565. package/dist/esm/scripts/updateProgress-2.js.map +1 -0
  566. package/dist/esm/tsconfig.tsbuildinfo +1 -0
  567. package/dist/esm/types/backoff-strategy.d.ts +2 -0
  568. package/dist/esm/types/backoff-strategy.js +2 -0
  569. package/dist/esm/types/backoff-strategy.js.map +1 -0
  570. package/dist/esm/types/finished-status.d.ts +2 -0
  571. package/dist/esm/types/finished-status.js +2 -0
  572. package/dist/esm/types/finished-status.js.map +1 -0
  573. package/dist/esm/types/index.d.ts +7 -0
  574. package/dist/esm/types/index.js +8 -0
  575. package/dist/esm/types/index.js.map +1 -0
  576. package/dist/esm/types/job-json-sandbox.d.ts +5 -0
  577. package/dist/esm/types/job-json-sandbox.js +2 -0
  578. package/dist/esm/types/job-json-sandbox.js.map +1 -0
  579. package/dist/esm/types/job-options.d.ts +20 -0
  580. package/dist/esm/types/job-options.js +2 -0
  581. package/dist/esm/types/job-options.js.map +1 -0
  582. package/dist/esm/types/job-type.d.ts +3 -0
  583. package/dist/esm/types/job-type.js +2 -0
  584. package/dist/esm/types/job-type.js.map +1 -0
  585. package/dist/esm/types/minimal-queue.d.ts +2 -0
  586. package/dist/esm/types/minimal-queue.js +2 -0
  587. package/dist/esm/types/minimal-queue.js.map +1 -0
  588. package/dist/esm/types/repeat-strategy.d.ts +2 -0
  589. package/dist/esm/types/repeat-strategy.js +2 -0
  590. package/dist/esm/types/repeat-strategy.js.map +1 -0
  591. package/dist/esm/utils.d.ts +42 -0
  592. package/dist/esm/utils.js +134 -0
  593. package/dist/esm/utils.js.map +1 -0
  594. package/package.json +181 -60
  595. package/.travis.yml +0 -32
  596. package/SUMMARY.md +0 -4
  597. package/commitlint.config.js +0 -1
  598. package/dist/classes/backoffs.d.ts +0 -14
  599. package/dist/classes/backoffs.js.map +0 -1
  600. package/dist/classes/child-pool.d.ts +0 -22
  601. package/dist/classes/child-pool.js +0 -98
  602. package/dist/classes/child-pool.js.map +0 -1
  603. package/dist/classes/compat.d.ts +0 -316
  604. package/dist/classes/compat.js +0 -667
  605. package/dist/classes/compat.js.map +0 -1
  606. package/dist/classes/index.js.map +0 -1
  607. package/dist/classes/job.d.ts +0 -93
  608. package/dist/classes/job.js +0 -351
  609. package/dist/classes/job.js.map +0 -1
  610. package/dist/classes/master.js +0 -112
  611. package/dist/classes/master.js.map +0 -1
  612. package/dist/classes/queue-base.d.ts +0 -23
  613. package/dist/classes/queue-base.js +0 -68
  614. package/dist/classes/queue-base.js.map +0 -1
  615. package/dist/classes/queue-events.d.ts +0 -8
  616. package/dist/classes/queue-events.js +0 -59
  617. package/dist/classes/queue-events.js.map +0 -1
  618. package/dist/classes/queue-getters.d.ts +0 -38
  619. package/dist/classes/queue-getters.js +0 -182
  620. package/dist/classes/queue-getters.js.map +0 -1
  621. package/dist/classes/queue-keeper.js +0 -103
  622. package/dist/classes/queue-keeper.js.map +0 -1
  623. package/dist/classes/queue-scheduler.d.ts +0 -25
  624. package/dist/classes/queue-scheduler.js +0 -96
  625. package/dist/classes/queue-scheduler.js.map +0 -1
  626. package/dist/classes/queue.d.ts +0 -46
  627. package/dist/classes/queue.js +0 -122
  628. package/dist/classes/queue.js.map +0 -1
  629. package/dist/classes/redis-connection.d.ts +0 -17
  630. package/dist/classes/redis-connection.js +0 -97
  631. package/dist/classes/redis-connection.js.map +0 -1
  632. package/dist/classes/repeat.d.ts +0 -26
  633. package/dist/classes/repeat.js +0 -128
  634. package/dist/classes/repeat.js.map +0 -1
  635. package/dist/classes/sandbox.d.ts +0 -2
  636. package/dist/classes/sandbox.js.map +0 -1
  637. package/dist/classes/scripts.d.ts +0 -43
  638. package/dist/classes/scripts.js +0 -296
  639. package/dist/classes/scripts.js.map +0 -1
  640. package/dist/classes/worker.d.ts +0 -38
  641. package/dist/classes/worker.js +0 -231
  642. package/dist/classes/worker.js.map +0 -1
  643. package/dist/commands/addJob-8.lua +0 -106
  644. package/dist/commands/cleanJobsInSet-1.lua +0 -48
  645. package/dist/commands/index.d.ts +0 -2
  646. package/dist/commands/index.js +0 -42
  647. package/dist/commands/index.js.map +0 -1
  648. package/dist/commands/isFinished-2.lua +0 -22
  649. package/dist/commands/isJobInList-1.lua +0 -20
  650. package/dist/commands/moveStalledJobsToWait-8.lua +0 -91
  651. package/dist/commands/moveToActive-8.lua +0 -79
  652. package/dist/commands/moveToDelayed-5.lua +0 -39
  653. package/dist/commands/moveToFinished-6.lua +0 -87
  654. package/dist/commands/moveToFinished-7.lua +0 -92
  655. package/dist/commands/pause-4.lua +0 -27
  656. package/dist/commands/promote-4.lua +0 -49
  657. package/dist/commands/releaseLock-1.lua +0 -19
  658. package/dist/commands/removeJob-10.lua +0 -37
  659. package/dist/commands/reprocessJob-4.lua +0 -36
  660. package/dist/commands/retryJob-4.lua +0 -34
  661. package/dist/commands/takeLock-1.lua +0 -17
  662. package/dist/commands/updateDelaySet-7.lua +0 -71
  663. package/dist/commands/updateProgress-2.lua +0 -15
  664. package/dist/enums/index.d.ts +0 -1
  665. package/dist/enums/index.js +0 -5
  666. package/dist/enums/index.js.map +0 -1
  667. package/dist/enums/retry-errors.enum.d.ts +0 -5
  668. package/dist/enums/retry-errors.enum.js +0 -9
  669. package/dist/enums/retry-errors.enum.js.map +0 -1
  670. package/dist/index.js.map +0 -1
  671. package/dist/interfaces/advance-opts.js +0 -12
  672. package/dist/interfaces/advance-opts.js.map +0 -1
  673. package/dist/interfaces/advanced-options.d.ts +0 -9
  674. package/dist/interfaces/advanced-options.js +0 -11
  675. package/dist/interfaces/advanced-options.js.map +0 -1
  676. package/dist/interfaces/advanced-opts.js +0 -11
  677. package/dist/interfaces/advanced-opts.js.map +0 -1
  678. package/dist/interfaces/backoff-options.d.ts +0 -4
  679. package/dist/interfaces/backoff-options.js.map +0 -1
  680. package/dist/interfaces/backoff-opts.js.map +0 -1
  681. package/dist/interfaces/index.d.ts +0 -9
  682. package/dist/interfaces/index.js +0 -6
  683. package/dist/interfaces/index.js.map +0 -1
  684. package/dist/interfaces/jobs-options.d.ts +0 -16
  685. package/dist/interfaces/jobs-options.js.map +0 -1
  686. package/dist/interfaces/jobs-opts.js.map +0 -1
  687. package/dist/interfaces/queue-keeper-opts.js +0 -3
  688. package/dist/interfaces/queue-keeper-opts.js.map +0 -1
  689. package/dist/interfaces/queue-options.d.ts +0 -24
  690. package/dist/interfaces/queue-options.js.map +0 -1
  691. package/dist/interfaces/queue-opts.js +0 -8
  692. package/dist/interfaces/queue-opts.js.map +0 -1
  693. package/dist/interfaces/queue-scheduler-options.d.ts +0 -5
  694. package/dist/interfaces/queue-scheduler-options.js +0 -3
  695. package/dist/interfaces/queue-scheduler-options.js.map +0 -1
  696. package/dist/interfaces/queue-scheduler-opts.js +0 -3
  697. package/dist/interfaces/queue-scheduler-opts.js.map +0 -1
  698. package/dist/interfaces/rate-limiter-options.d.ts +0 -4
  699. package/dist/interfaces/rate-limiter-options.js.map +0 -1
  700. package/dist/interfaces/rate-limiter-opts.js +0 -3
  701. package/dist/interfaces/rate-limiter-opts.js.map +0 -1
  702. package/dist/interfaces/redis-options.d.ts +0 -7
  703. package/dist/interfaces/redis-options.js.map +0 -1
  704. package/dist/interfaces/redis-opts.js.map +0 -1
  705. package/dist/interfaces/repeat-options.d.ts +0 -11
  706. package/dist/interfaces/repeat-options.js.map +0 -1
  707. package/dist/interfaces/repeat-opts.js.map +0 -1
  708. package/dist/interfaces/worker-options.d.ts +0 -11
  709. package/dist/interfaces/worker-options.js.map +0 -1
  710. package/dist/interfaces/worker-opts.js.map +0 -1
  711. package/dist/test/test_bulk.js +0 -55
  712. package/dist/test/test_bulk.js.map +0 -1
  713. package/dist/test/test_child-pool.js +0 -81
  714. package/dist/test/test_child-pool.js.map +0 -1
  715. package/dist/test/test_clean.js +0 -124
  716. package/dist/test/test_clean.js.map +0 -1
  717. package/dist/test/test_compat.d.ts +0 -1
  718. package/dist/test/test_compat.js +0 -533
  719. package/dist/test/test_compat.js.map +0 -1
  720. package/dist/test/test_connection.d.ts +0 -1
  721. package/dist/test/test_connection.js +0 -140
  722. package/dist/test/test_connection.js.map +0 -1
  723. package/dist/test/test_delay.d.ts +0 -1
  724. package/dist/test/test_delay.js +0 -186
  725. package/dist/test/test_delay.js.map +0 -1
  726. package/dist/test/test_events.d.ts +0 -1
  727. package/dist/test/test_events.js +0 -147
  728. package/dist/test/test_events.js.map +0 -1
  729. package/dist/test/test_getters.d.ts +0 -1
  730. package/dist/test/test_getters.js +0 -293
  731. package/dist/test/test_getters.js.map +0 -1
  732. package/dist/test/test_job.d.ts +0 -1
  733. package/dist/test/test_job.js +0 -419
  734. package/dist/test/test_job.js.map +0 -1
  735. package/dist/test/test_pause.d.ts +0 -1
  736. package/dist/test/test_pause.js +0 -255
  737. package/dist/test/test_pause.js.map +0 -1
  738. package/dist/test/test_queue.d.ts +0 -0
  739. package/dist/test/test_queue.js +0 -72
  740. package/dist/test/test_queue.js.map +0 -1
  741. package/dist/test/test_rate_limiter.d.ts +0 -1
  742. package/dist/test/test_rate_limiter.js +0 -98
  743. package/dist/test/test_rate_limiter.js.map +0 -1
  744. package/dist/test/test_repeat.d.ts +0 -1
  745. package/dist/test/test_repeat.js +0 -602
  746. package/dist/test/test_repeat.js.map +0 -1
  747. package/dist/test/test_sandboxed_process.d.ts +0 -1
  748. package/dist/test/test_sandboxed_process.js +0 -319
  749. package/dist/test/test_sandboxed_process.js.map +0 -1
  750. package/dist/test/test_stalled_jobs.d.ts +0 -1
  751. package/dist/test/test_stalled_jobs.js +0 -107
  752. package/dist/test/test_stalled_jobs.js.map +0 -1
  753. package/dist/test/test_worker.d.ts +0 -1
  754. package/dist/test/test_worker.js +0 -1182
  755. package/dist/test/test_worker.js.map +0 -1
  756. package/dist/utils.d.ts +0 -8
  757. package/dist/utils.js +0 -31
  758. package/dist/utils.js.map +0 -1
  759. package/release.txt +0 -21
  760. package/src/classes/backoffs.ts +0 -67
  761. package/src/classes/child-pool.ts +0 -119
  762. package/src/classes/compat.ts +0 -890
  763. package/src/classes/index.ts +0 -13
  764. package/src/classes/job.ts +0 -495
  765. package/src/classes/master.ts +0 -113
  766. package/src/classes/queue-base.ts +0 -87
  767. package/src/classes/queue-events.ts +0 -78
  768. package/src/classes/queue-getters.ts +0 -213
  769. package/src/classes/queue-scheduler.ts +0 -125
  770. package/src/classes/queue.ts +0 -180
  771. package/src/classes/redis-connection.ts +0 -111
  772. package/src/classes/repeat.ts +0 -217
  773. package/src/classes/sandbox.ts +0 -60
  774. package/src/classes/scripts.ts +0 -468
  775. package/src/classes/worker.ts +0 -288
  776. package/src/commands/addJob-8.lua +0 -106
  777. package/src/commands/cleanJobsInSet-1.lua +0 -48
  778. package/src/commands/index.ts +0 -62
  779. package/src/commands/isFinished-2.lua +0 -22
  780. package/src/commands/isJobInList-1.lua +0 -20
  781. package/src/commands/moveStalledJobsToWait-8.lua +0 -91
  782. package/src/commands/moveToActive-8.lua +0 -79
  783. package/src/commands/moveToDelayed-5.lua +0 -39
  784. package/src/commands/moveToFinished-7.lua +0 -92
  785. package/src/commands/pause-4.lua +0 -27
  786. package/src/commands/promote-4.lua +0 -49
  787. package/src/commands/releaseLock-1.lua +0 -19
  788. package/src/commands/removeJob-10.lua +0 -37
  789. package/src/commands/reprocessJob-4.lua +0 -36
  790. package/src/commands/retryJob-4.lua +0 -34
  791. package/src/commands/takeLock-1.lua +0 -17
  792. package/src/commands/updateDelaySet-7.lua +0 -71
  793. package/src/commands/updateProgress-2.lua +0 -15
  794. package/src/enums/index.ts +0 -1
  795. package/src/enums/retry-errors.enum.ts +0 -5
  796. package/src/interfaces/advanced-options.ts +0 -28
  797. package/src/interfaces/backoff-options.ts +0 -4
  798. package/src/interfaces/index.ts +0 -9
  799. package/src/interfaces/jobs-options.ts +0 -53
  800. package/src/interfaces/queue-options.ts +0 -30
  801. package/src/interfaces/queue-scheduler-options.ts +0 -6
  802. package/src/interfaces/rate-limiter-options.ts +0 -7
  803. package/src/interfaces/redis-options.ts +0 -9
  804. package/src/interfaces/repeat-options.ts +0 -19
  805. package/src/interfaces/worker-options.ts +0 -13
  806. package/src/test/fixtures/fixture_processor.js +0 -13
  807. package/src/test/fixtures/fixture_processor_bar.js +0 -13
  808. package/src/test/fixtures/fixture_processor_crash.js +0 -16
  809. package/src/test/fixtures/fixture_processor_exit.js +0 -15
  810. package/src/test/fixtures/fixture_processor_fail.js +0 -13
  811. package/src/test/fixtures/fixture_processor_foo.js +0 -13
  812. package/src/test/fixtures/fixture_processor_progress.js +0 -29
  813. package/src/test/fixtures/fixture_processor_slow.js +0 -13
  814. package/src/test/test_bulk.ts +0 -59
  815. package/src/test/test_child-pool.ts +0 -88
  816. package/src/test/test_clean.ts +0 -148
  817. package/src/test/test_compat.ts +0 -640
  818. package/src/test/test_connection.ts +0 -159
  819. package/src/test/test_delay.ts +0 -220
  820. package/src/test/test_events.ts +0 -198
  821. package/src/test/test_getters.ts +0 -348
  822. package/src/test/test_job.ts +0 -524
  823. package/src/test/test_pause.ts +0 -313
  824. package/src/test/test_queue.ts +0 -70
  825. package/src/test/test_rate_limiter.ts +0 -113
  826. package/src/test/test_repeat.ts +0 -783
  827. package/src/test/test_sandboxed_process.ts +0 -380
  828. package/src/test/test_stalled_jobs.ts +0 -146
  829. package/src/test/test_worker.ts +0 -1503
  830. package/src/utils.ts +0 -28
  831. package/tsconfig.json +0 -25
  832. package/tslint.json +0 -23
  833. /package/dist/{classes/master.d.ts → cjs/classes/main-worker.d.ts} +0 -0
  834. /package/dist/{test/test_bulk.d.ts → cjs/classes/main.d.ts} +0 -0
  835. /package/dist/{interfaces → cjs/interfaces}/backoff-options.js +0 -0
  836. /package/dist/{interfaces → cjs/interfaces}/rate-limiter-options.js +0 -0
  837. /package/dist/{interfaces → cjs/interfaces}/redis-options.js +0 -0
  838. /package/dist/{interfaces → cjs/interfaces}/repeat-options.js +0 -0
  839. /package/dist/{interfaces → cjs/interfaces}/worker-options.js +0 -0
  840. /package/dist/{test/test_child-pool.d.ts → esm/classes/main-worker.d.ts} +0 -0
  841. /package/dist/{test/test_clean.d.ts → esm/classes/main.d.ts} +0 -0
@@ -0,0 +1,241 @@
1
+ const content = `--[[
2
+ Completely obliterates a queue and all of its contents
3
+ Input:
4
+ KEYS[1] meta
5
+ KEYS[2] base
6
+ ARGV[1] count
7
+ ARGV[2] force
8
+ ]]
9
+ -- This command completely destroys a queue including all of its jobs, current or past
10
+ -- leaving no trace of its existence. Since this script needs to iterate to find all the job
11
+ -- keys, consider that this call may be slow for very large queues.
12
+ -- The queue needs to be "paused" or it will return an error
13
+ -- If the queue has currently active jobs then the script by default will return error,
14
+ -- however this behaviour can be overrided using the 'force' option.
15
+ local maxCount = tonumber(ARGV[1])
16
+ local baseKey = KEYS[2]
17
+ local rcall = redis.call
18
+ -- Includes
19
+ --[[
20
+ Functions to remove jobs.
21
+ ]]
22
+ -- Includes
23
+ --[[
24
+ Function to loop in batches.
25
+ Just a bit of warning, some commands as ZREM
26
+ could receive a maximum of 7000 parameters per call.
27
+ ]]
28
+ local function batches(n, batchSize)
29
+ local i = 0
30
+ return function()
31
+ local from = i * batchSize + 1
32
+ i = i + 1
33
+ if (from <= n) then
34
+ local to = math.min(from + batchSize - 1, n)
35
+ return from, to
36
+ end
37
+ end
38
+ end
39
+ --[[
40
+ Function to remove job.
41
+ ]]
42
+ -- Includes
43
+ --[[
44
+ Check if this job has a parent. If so we will just remove it from
45
+ the parent child list, but if it is the last child we should move the parent to "wait/paused"
46
+ which requires code from "moveToFinished"
47
+ ]]
48
+ --[[
49
+ Functions to destructure job key.
50
+ Just a bit of warning, these functions may be a bit slow and affect performance significantly.
51
+ ]]
52
+ local getJobIdFromKey = function (jobKey)
53
+ return string.match(jobKey, ".*:(.*)")
54
+ end
55
+ local getJobKeyPrefix = function (jobKey, jobId)
56
+ return string.sub(jobKey, 0, #jobKey - #jobId)
57
+ end
58
+ --[[
59
+ Function to check for the meta.paused key to decide if we are paused or not
60
+ (since an empty list and !EXISTS are not really the same).
61
+ ]]
62
+ local function getTargetQueueList(queueMetaKey, waitKey, pausedKey)
63
+ if rcall("HEXISTS", queueMetaKey, "paused") ~= 1 then
64
+ return waitKey, false
65
+ else
66
+ return pausedKey, true
67
+ end
68
+ end
69
+ local function moveParentToWait(parentPrefix, parentId, emitEvent)
70
+ local parentTarget = getTargetQueueList(parentPrefix .. "meta", parentPrefix .. "wait", parentPrefix .. "paused")
71
+ rcall("RPUSH", parentTarget, parentId)
72
+ if emitEvent then
73
+ local parentEventStream = parentPrefix .. "events"
74
+ rcall("XADD", parentEventStream, "*", "event", "waiting", "jobId", parentId, "prev", "waiting-children")
75
+ end
76
+ end
77
+ local function removeParentDependencyKey(jobKey, hard, parentKey, baseKey)
78
+ if parentKey then
79
+ local parentDependenciesKey = parentKey .. ":dependencies"
80
+ local result = rcall("SREM", parentDependenciesKey, jobKey)
81
+ if result > 0 then
82
+ local pendingDependencies = rcall("SCARD", parentDependenciesKey)
83
+ if pendingDependencies == 0 then
84
+ local parentId = getJobIdFromKey(parentKey)
85
+ local parentPrefix = getJobKeyPrefix(parentKey, parentId)
86
+ local numRemovedElements = rcall("ZREM", parentPrefix .. "waiting-children", parentId)
87
+ if numRemovedElements == 1 then
88
+ if hard then
89
+ if parentPrefix == baseKey then
90
+ removeParentDependencyKey(parentKey, hard, nil, baseKey)
91
+ rcall("DEL", parentKey, parentKey .. ':logs',
92
+ parentKey .. ':dependencies', parentKey .. ':processed')
93
+ else
94
+ moveParentToWait(parentPrefix, parentId)
95
+ end
96
+ else
97
+ moveParentToWait(parentPrefix, parentId, true)
98
+ end
99
+ end
100
+ end
101
+ end
102
+ else
103
+ local missedParentKey = rcall("HGET", jobKey, "parentKey")
104
+ if( (type(missedParentKey) == "string") and missedParentKey ~= "" and (rcall("EXISTS", missedParentKey) == 1)) then
105
+ local parentDependenciesKey = missedParentKey .. ":dependencies"
106
+ local result = rcall("SREM", parentDependenciesKey, jobKey)
107
+ if result > 0 then
108
+ local pendingDependencies = rcall("SCARD", parentDependenciesKey)
109
+ if pendingDependencies == 0 then
110
+ local parentId = getJobIdFromKey(missedParentKey)
111
+ local parentPrefix = getJobKeyPrefix(missedParentKey, parentId)
112
+ local numRemovedElements = rcall("ZREM", parentPrefix .. "waiting-children", parentId)
113
+ if numRemovedElements == 1 then
114
+ if hard then
115
+ if parentPrefix == baseKey then
116
+ removeParentDependencyKey(missedParentKey, hard, nil, baseKey)
117
+ rcall("DEL", missedParentKey, missedParentKey .. ':logs',
118
+ missedParentKey .. ':dependencies', missedParentKey .. ':processed')
119
+ else
120
+ moveParentToWait(parentPrefix, parentId)
121
+ end
122
+ else
123
+ moveParentToWait(parentPrefix, parentId, true)
124
+ end
125
+ end
126
+ end
127
+ end
128
+ end
129
+ end
130
+ end
131
+ local function removeJob(jobId, hard, baseKey)
132
+ local jobKey = baseKey .. jobId
133
+ removeParentDependencyKey(jobKey, hard, nil, baseKey)
134
+ rcall("DEL", jobKey, jobKey .. ':logs',
135
+ jobKey .. ':dependencies', jobKey .. ':processed')
136
+ end
137
+ local function getListItems(keyName, max)
138
+ return rcall('LRANGE', keyName, 0, max - 1)
139
+ end
140
+ local function removeJobs(keys, hard, baseKey, max)
141
+ for i, key in ipairs(keys) do
142
+ removeJob(key, hard, baseKey)
143
+ end
144
+ return max - #keys
145
+ end
146
+ local function removeListJobs(keyName, hard, baseKey, max)
147
+ local jobs = getListItems(keyName, max)
148
+ local count = removeJobs(jobs, hard, baseKey, max)
149
+ rcall("LTRIM", keyName, #jobs, -1)
150
+ return count
151
+ end
152
+ -- Includes
153
+ --[[
154
+ Function to get ZSet items.
155
+ ]]
156
+ local function getZSetItems(keyName, max)
157
+ return rcall('ZRANGE', keyName, 0, max - 1)
158
+ end
159
+ local function removeZSetJobs(keyName, hard, baseKey, max)
160
+ local jobs = getZSetItems(keyName, max)
161
+ local count = removeJobs(jobs, hard, baseKey, max)
162
+ if(#jobs > 0) then
163
+ for from, to in batches(#jobs, 7000) do
164
+ rcall("ZREM", keyName, unpack(jobs))
165
+ end
166
+ end
167
+ return count
168
+ end
169
+ local function removeLockKeys(keys)
170
+ for i, key in ipairs(keys) do
171
+ rcall("DEL", baseKey .. key .. ':lock')
172
+ end
173
+ end
174
+ -- 1) Check if paused, if not return with error.
175
+ if rcall("HEXISTS", KEYS[1], "paused") ~= 1 then
176
+ return -1 -- Error, NotPaused
177
+ end
178
+ -- 2) Check if there are active jobs, if there are and not "force" return error.
179
+ local activeKey = baseKey .. 'active'
180
+ local activeJobs = getListItems(activeKey, maxCount)
181
+ if (#activeJobs > 0) then
182
+ if(ARGV[2] == "") then
183
+ return -2 -- Error, ExistActiveJobs
184
+ end
185
+ end
186
+ removeLockKeys(activeJobs)
187
+ maxCount = removeJobs(activeJobs, true, baseKey, maxCount)
188
+ rcall("LTRIM", activeKey, #activeJobs, -1)
189
+ if(maxCount <= 0) then
190
+ return 1
191
+ end
192
+ local delayedKey = baseKey .. 'delayed'
193
+ maxCount = removeZSetJobs(delayedKey, true, baseKey, maxCount)
194
+ if(maxCount <= 0) then
195
+ return 1
196
+ end
197
+ local completedKey = baseKey .. 'completed'
198
+ maxCount = removeZSetJobs(completedKey, true, baseKey, maxCount)
199
+ if(maxCount <= 0) then
200
+ return 1
201
+ end
202
+ local waitKey = baseKey .. 'paused'
203
+ maxCount = removeListJobs(waitKey, true, baseKey, maxCount)
204
+ if(maxCount <= 0) then
205
+ return 1
206
+ end
207
+ local prioritizedKey = baseKey .. 'prioritized'
208
+ maxCount = removeZSetJobs(prioritizedKey, true, baseKey, maxCount)
209
+ if(maxCount <= 0) then
210
+ return 1
211
+ end
212
+ local failedKey = baseKey .. 'failed'
213
+ maxCount = removeZSetJobs(failedKey, true, baseKey, maxCount)
214
+ if(maxCount <= 0) then
215
+ return 1
216
+ end
217
+ if(maxCount > 0) then
218
+ rcall("DEL",
219
+ baseKey .. 'events',
220
+ baseKey .. 'delay',
221
+ baseKey .. 'stalled-check',
222
+ baseKey .. 'stalled',
223
+ baseKey .. 'id',
224
+ baseKey .. 'pc',
225
+ baseKey .. 'meta',
226
+ baseKey .. 'repeat',
227
+ baseKey .. 'metrics:completed',
228
+ baseKey .. 'metrics:completed:data',
229
+ baseKey .. 'metrics:failed',
230
+ baseKey .. 'metrics:failed:data')
231
+ return 0
232
+ else
233
+ return 1
234
+ end
235
+ `;
236
+ export const obliterate = {
237
+ name: 'obliterate',
238
+ content,
239
+ keys: 2,
240
+ };
241
+ //# sourceMappingURL=obliterate-2.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"obliterate-2.js","sourceRoot":"","sources":["../../../src/scripts/obliterate-2.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA0Of,CAAC;AACF,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,IAAI,EAAE,YAAY;IAClB,OAAO;IACP,IAAI,EAAE,CAAC;CACR,CAAC"}
@@ -0,0 +1,5 @@
1
+ export declare const pause: {
2
+ name: string;
3
+ content: string;
4
+ keys: number;
5
+ };
@@ -0,0 +1,45 @@
1
+ const content = `--[[
2
+ Pauses or resumes a queue globably.
3
+ Input:
4
+ KEYS[1] 'wait' or 'paused''
5
+ KEYS[2] 'paused' or 'wait'
6
+ KEYS[3] 'meta'
7
+ KEYS[4] 'prioritized'
8
+ KEYS[5] events stream key
9
+ ARGV[1] 'paused' or 'resumed'
10
+ Event:
11
+ publish paused or resumed event.
12
+ ]]
13
+ local rcall = redis.call
14
+ -- Includes
15
+ --[[
16
+ Function priority marker to wait if needed
17
+ in order to wake up our workers and to respect priority
18
+ order as much as possible
19
+ ]]
20
+ local function addPriorityMarkerIfNeeded(waitKey)
21
+ local waitLen = rcall("LLEN", waitKey)
22
+ if waitLen == 0 then
23
+ rcall("LPUSH", waitKey, "0:0")
24
+ end
25
+ end
26
+ if rcall("EXISTS", KEYS[1]) == 1 then
27
+ rcall("RENAME", KEYS[1], KEYS[2])
28
+ end
29
+ if ARGV[1] == "paused" then
30
+ rcall("HSET", KEYS[3], "paused", 1)
31
+ else
32
+ rcall("HDEL", KEYS[3], "paused")
33
+ local priorityCount = rcall("ZCARD", KEYS[4])
34
+ if priorityCount > 0 then
35
+ addPriorityMarkerIfNeeded(KEYS[2])
36
+ end
37
+ end
38
+ rcall("XADD", KEYS[5], "*", "event", ARGV[1]);
39
+ `;
40
+ export const pause = {
41
+ name: 'pause',
42
+ content,
43
+ keys: 5,
44
+ };
45
+ //# sourceMappingURL=pause-5.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pause-5.js","sourceRoot":"","sources":["../../../src/scripts/pause-5.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsCf,CAAC;AACF,MAAM,CAAC,MAAM,KAAK,GAAG;IACnB,IAAI,EAAE,OAAO;IACb,OAAO;IACP,IAAI,EAAE,CAAC;CACR,CAAC"}
@@ -0,0 +1,5 @@
1
+ export declare const promote: {
2
+ name: string;
3
+ content: string;
4
+ keys: number;
5
+ };
@@ -0,0 +1,84 @@
1
+ const content = `--[[
2
+ Promotes a job that is currently "delayed" to the "waiting" state
3
+ Input:
4
+ KEYS[1] 'delayed'
5
+ KEYS[2] 'wait'
6
+ KEYS[3] 'paused'
7
+ KEYS[4] 'meta'
8
+ KEYS[5] 'prioritized'
9
+ KEYS[6] 'pc' priority counter
10
+ KEYS[7] 'event stream'
11
+ ARGV[1] queue.toKey('')
12
+ ARGV[2] jobId
13
+ Output:
14
+ 0 - OK
15
+ -3 - Job not in delayed zset.
16
+ Events:
17
+ 'waiting'
18
+ ]]
19
+ local rcall = redis.call
20
+ local jobId = ARGV[2]
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("ZREM", KEYS[1], jobId) == 1 then
57
+ local jobKey = ARGV[1] .. jobId
58
+ local priority = tonumber(rcall("HGET", jobKey, "priority")) or 0
59
+ local target, paused = getTargetQueueList(KEYS[4], KEYS[2], KEYS[3])
60
+ -- Remove delayed "marker" from the wait list if there is any.
61
+ -- Since we are adding a job we do not need the marker anymore.
62
+ local marker = rcall("LINDEX", target, 0)
63
+ if marker and string.sub(marker, 1, 2) == "0:" then
64
+ rcall("LPOP", target)
65
+ end
66
+ if priority == 0 then
67
+ -- LIFO or FIFO
68
+ rcall("LPUSH", target, jobId)
69
+ else
70
+ addJobWithPriority(KEYS[2], KEYS[5], priority, paused, jobId, KEYS[6])
71
+ end
72
+ -- Emit waiting event (wait..ing@token)
73
+ rcall("XADD", KEYS[7], "*", "event", "waiting", "jobId", jobId, "prev", "delayed");
74
+ rcall("HSET", jobKey, "delay", 0)
75
+ return 0
76
+ else
77
+ return -3
78
+ end`;
79
+ export const promote = {
80
+ name: 'promote',
81
+ content,
82
+ keys: 7,
83
+ };
84
+ //# sourceMappingURL=promote-7.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"promote-7.js","sourceRoot":"","sources":["../../../src/scripts/promote-7.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IA6EZ,CAAC;AACL,MAAM,CAAC,MAAM,OAAO,GAAG;IACrB,IAAI,EAAE,SAAS;IACf,OAAO;IACP,IAAI,EAAE,CAAC;CACR,CAAC"}
@@ -0,0 +1,5 @@
1
+ export declare const releaseLock: {
2
+ name: string;
3
+ content: string;
4
+ keys: number;
5
+ };
@@ -0,0 +1,22 @@
1
+ const content = `--[[
2
+ Release lock
3
+ Input:
4
+ KEYS[1] 'lock',
5
+ ARGV[1] token
6
+ ARGV[2] lock duration in milliseconds
7
+ Output:
8
+ "OK" if lock extented succesfully.
9
+ ]]
10
+ local rcall = redis.call
11
+ if rcall("GET", KEYS[1]) == ARGV[1] then
12
+ return rcall("DEL", KEYS[1])
13
+ else
14
+ return 0
15
+ end
16
+ `;
17
+ export const releaseLock = {
18
+ name: 'releaseLock',
19
+ content,
20
+ keys: 1,
21
+ };
22
+ //# sourceMappingURL=releaseLock-1.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"releaseLock-1.js","sourceRoot":"","sources":["../../../src/scripts/releaseLock-1.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,GAAG;;;;;;;;;;;;;;;CAef,CAAC;AACF,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,IAAI,EAAE,aAAa;IACnB,OAAO;IACP,IAAI,EAAE,CAAC;CACR,CAAC"}
@@ -0,0 +1,5 @@
1
+ export declare const removeJob: {
2
+ name: string;
3
+ content: string;
4
+ keys: number;
5
+ };
@@ -0,0 +1,207 @@
1
+ const content = `--[[
2
+ Remove a job from all the queues it may be in as well as all its data.
3
+ In order to be able to remove a job, it cannot be active.
4
+ Input:
5
+ KEYS[1] queue prefix
6
+ ARGV[1] jobId
7
+ Events:
8
+ 'removed'
9
+ ]]
10
+ local rcall = redis.call
11
+ -- Includes
12
+ --[[
13
+ Functions to destructure job key.
14
+ Just a bit of warning, these functions may be a bit slow and affect performance significantly.
15
+ ]]
16
+ local getJobIdFromKey = function (jobKey)
17
+ return string.match(jobKey, ".*:(.*)")
18
+ end
19
+ local getJobKeyPrefix = function (jobKey, jobId)
20
+ return string.sub(jobKey, 0, #jobKey - #jobId)
21
+ end
22
+ --[[
23
+ Function to recursively check if there are no locks
24
+ on the jobs to be removed.
25
+ returns:
26
+ boolean
27
+ ]]
28
+ local function isLocked( prefix, jobId)
29
+ local jobKey = prefix .. jobId;
30
+ -- Check if this job is locked
31
+ local lockKey = jobKey .. ':lock'
32
+ local lock = rcall("GET", lockKey)
33
+ if not lock then
34
+ local dependencies = rcall("SMEMBERS", jobKey .. ":dependencies")
35
+ if (#dependencies > 0) then
36
+ for i, childJobKey in ipairs(dependencies) do
37
+ -- We need to get the jobId for this job.
38
+ local childJobId = getJobIdFromKey(childJobKey)
39
+ local childJobPrefix = getJobKeyPrefix(childJobKey, childJobId)
40
+ local result = isLocked( childJobPrefix, childJobId )
41
+ if result then
42
+ return true
43
+ end
44
+ end
45
+ end
46
+ return false
47
+ end
48
+ return true
49
+ end
50
+ --[[
51
+ Function to remove from any state.
52
+ returns:
53
+ prev state
54
+ ]]
55
+ local function removeJobFromAnyState( prefix, jobId)
56
+ -- We start with the ZSCORE checks, since they have O(1) complexity
57
+ if rcall("ZSCORE", prefix .. "completed", jobId) then
58
+ rcall("ZREM", prefix .. "completed", jobId)
59
+ return "completed"
60
+ elseif rcall("ZSCORE", prefix .. "waiting-children", jobId) then
61
+ rcall("ZREM", prefix .. "waiting-children", jobId)
62
+ return "waiting-children"
63
+ elseif rcall("ZSCORE", prefix .. "delayed", jobId) then
64
+ rcall("ZREM", prefix .. "delayed", jobId)
65
+ return "delayed"
66
+ elseif rcall("ZSCORE", prefix .. "failed", jobId) then
67
+ rcall("ZREM", prefix .. "failed", jobId)
68
+ return "failed"
69
+ elseif rcall("ZSCORE", prefix .. "prioritized", jobId) then
70
+ rcall("ZREM", prefix .. "prioritized", jobId)
71
+ return "prioritized"
72
+ -- We remove only 1 element from the list, since we assume they are not added multiple times
73
+ elseif rcall("LREM", prefix .. "wait", 1, jobId) == 1 then
74
+ return "wait"
75
+ elseif rcall("LREM", prefix .. "paused", 1, jobId) == 1 then
76
+ return "paused"
77
+ elseif rcall("LREM", prefix .. "active", 1, jobId) == 1 then
78
+ return "active"
79
+ end
80
+ return "unknown"
81
+ end
82
+ --[[
83
+ Check if this job has a parent. If so we will just remove it from
84
+ the parent child list, but if it is the last child we should move the parent to "wait/paused"
85
+ which requires code from "moveToFinished"
86
+ ]]
87
+ --[[
88
+ Function to check for the meta.paused key to decide if we are paused or not
89
+ (since an empty list and !EXISTS are not really the same).
90
+ ]]
91
+ local function getTargetQueueList(queueMetaKey, waitKey, pausedKey)
92
+ if rcall("HEXISTS", queueMetaKey, "paused") ~= 1 then
93
+ return waitKey, false
94
+ else
95
+ return pausedKey, true
96
+ end
97
+ end
98
+ local function moveParentToWait(parentPrefix, parentId, emitEvent)
99
+ local parentTarget = getTargetQueueList(parentPrefix .. "meta", parentPrefix .. "wait", parentPrefix .. "paused")
100
+ rcall("RPUSH", parentTarget, parentId)
101
+ if emitEvent then
102
+ local parentEventStream = parentPrefix .. "events"
103
+ rcall("XADD", parentEventStream, "*", "event", "waiting", "jobId", parentId, "prev", "waiting-children")
104
+ end
105
+ end
106
+ local function removeParentDependencyKey(jobKey, hard, parentKey, baseKey)
107
+ if parentKey then
108
+ local parentDependenciesKey = parentKey .. ":dependencies"
109
+ local result = rcall("SREM", parentDependenciesKey, jobKey)
110
+ if result > 0 then
111
+ local pendingDependencies = rcall("SCARD", parentDependenciesKey)
112
+ if pendingDependencies == 0 then
113
+ local parentId = getJobIdFromKey(parentKey)
114
+ local parentPrefix = getJobKeyPrefix(parentKey, parentId)
115
+ local numRemovedElements = rcall("ZREM", parentPrefix .. "waiting-children", parentId)
116
+ if numRemovedElements == 1 then
117
+ if hard then
118
+ if parentPrefix == baseKey then
119
+ removeParentDependencyKey(parentKey, hard, nil, baseKey)
120
+ rcall("DEL", parentKey, parentKey .. ':logs',
121
+ parentKey .. ':dependencies', parentKey .. ':processed')
122
+ else
123
+ moveParentToWait(parentPrefix, parentId)
124
+ end
125
+ else
126
+ moveParentToWait(parentPrefix, parentId, true)
127
+ end
128
+ end
129
+ end
130
+ end
131
+ else
132
+ local missedParentKey = rcall("HGET", jobKey, "parentKey")
133
+ if( (type(missedParentKey) == "string") and missedParentKey ~= "" and (rcall("EXISTS", missedParentKey) == 1)) then
134
+ local parentDependenciesKey = missedParentKey .. ":dependencies"
135
+ local result = rcall("SREM", parentDependenciesKey, jobKey)
136
+ if result > 0 then
137
+ local pendingDependencies = rcall("SCARD", parentDependenciesKey)
138
+ if pendingDependencies == 0 then
139
+ local parentId = getJobIdFromKey(missedParentKey)
140
+ local parentPrefix = getJobKeyPrefix(missedParentKey, parentId)
141
+ local numRemovedElements = rcall("ZREM", parentPrefix .. "waiting-children", parentId)
142
+ if numRemovedElements == 1 then
143
+ if hard then
144
+ if parentPrefix == baseKey then
145
+ removeParentDependencyKey(missedParentKey, hard, nil, baseKey)
146
+ rcall("DEL", missedParentKey, missedParentKey .. ':logs',
147
+ missedParentKey .. ':dependencies', missedParentKey .. ':processed')
148
+ else
149
+ moveParentToWait(parentPrefix, parentId)
150
+ end
151
+ else
152
+ moveParentToWait(parentPrefix, parentId, true)
153
+ end
154
+ end
155
+ end
156
+ end
157
+ end
158
+ end
159
+ end
160
+ local function removeJob( prefix, jobId, parentKey)
161
+ local jobKey = prefix .. jobId;
162
+ removeParentDependencyKey(jobKey, false, parentKey)
163
+ -- Check if this job has children
164
+ -- If so, we are going to try to remove the children recursively in deep first way because
165
+ -- if some job is locked we must exit with and error.
166
+ --local countProcessed = rcall("HLEN", jobKey .. ":processed")
167
+ local processed = rcall("HGETALL", jobKey .. ":processed")
168
+ if (#processed > 0) then
169
+ for i = 1, #processed, 2 do
170
+ local childJobId = getJobIdFromKey(processed[i])
171
+ local childJobPrefix = getJobKeyPrefix(processed[i], childJobId)
172
+ removeJob( childJobPrefix, childJobId, jobKey )
173
+ end
174
+ end
175
+ local dependencies = rcall("SMEMBERS", jobKey .. ":dependencies")
176
+ if (#dependencies > 0) then
177
+ for i, childJobKey in ipairs(dependencies) do
178
+ -- We need to get the jobId for this job.
179
+ local childJobId = getJobIdFromKey(childJobKey)
180
+ local childJobPrefix = getJobKeyPrefix(childJobKey, childJobId)
181
+ removeJob( childJobPrefix, childJobId, jobKey )
182
+ end
183
+ end
184
+ local prev = removeJobFromAnyState(prefix, jobId)
185
+ rcall("DEL", jobKey, jobKey .. ":logs", jobKey .. ":dependencies", jobKey .. ":processed")
186
+ -- -- delete keys related to rate limiter
187
+ -- local limiterIndexTable = KEYS[10] .. ":index"
188
+ -- local limitedSetKey = rcall("HGET", limiterIndexTable, jobId)
189
+ -- if limitedSetKey then
190
+ -- rcall("SREM", limitedSetKey, jobId)
191
+ -- rcall("HDEL", limiterIndexTable, jobId)
192
+ -- end
193
+ rcall("XADD", prefix .. "events", "*", "event", "removed", "jobId", jobId, "prev", prev);
194
+ end
195
+ local prefix = KEYS[1]
196
+ if not isLocked(prefix, ARGV[1]) then
197
+ removeJob(prefix, ARGV[1])
198
+ return 1
199
+ end
200
+ return 0
201
+ `;
202
+ export const removeJob = {
203
+ name: 'removeJob',
204
+ content,
205
+ keys: 1,
206
+ };
207
+ //# sourceMappingURL=removeJob-1.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"removeJob-1.js","sourceRoot":"","sources":["../../../src/scripts/removeJob-1.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAwMf,CAAC;AACF,MAAM,CAAC,MAAM,SAAS,GAAG;IACvB,IAAI,EAAE,WAAW;IACjB,OAAO;IACP,IAAI,EAAE,CAAC;CACR,CAAC"}
@@ -0,0 +1,5 @@
1
+ export declare const removeRepeatable: {
2
+ name: string;
3
+ content: string;
4
+ keys: number;
5
+ };
@@ -0,0 +1,35 @@
1
+ const content = `--[[
2
+ Removes a repeatable job
3
+ Input:
4
+ KEYS[1] repeat jobs key
5
+ KEYS[2] delayed jobs key
6
+ ARGV[1] repeat job id
7
+ ARGV[2] repeat job key
8
+ ARGV[3] queue key
9
+ Output:
10
+ 0 - OK
11
+ 1 - Missing repeat job
12
+ Events:
13
+ 'removed'
14
+ ]]
15
+ local rcall = redis.call
16
+ local millis = rcall("ZSCORE", KEYS[1], ARGV[2])
17
+ if(millis) then
18
+ -- Delete next programmed job.
19
+ local repeatJobId = ARGV[1] .. millis
20
+ if(rcall("ZREM", KEYS[2], repeatJobId) == 1) then
21
+ rcall("DEL", ARGV[3] .. repeatJobId)
22
+ rcall("XADD", ARGV[3] .. "events", "*", "event", "removed", "jobId", repeatJobId, "prev", "delayed");
23
+ end
24
+ end
25
+ if(rcall("ZREM", KEYS[1], ARGV[2]) == 1) then
26
+ return 0
27
+ end
28
+ return 1
29
+ `;
30
+ export const removeRepeatable = {
31
+ name: 'removeRepeatable',
32
+ content,
33
+ keys: 2,
34
+ };
35
+ //# sourceMappingURL=removeRepeatable-2.js.map