@tachybase/plugin-adapter-bullmq 1.3.17 → 1.3.18

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (347) hide show
  1. package/dist/externalVersion.js +2 -2
  2. package/dist/node_modules/@bull-board/api/dist/src/handlers/error.d.ts +4 -2
  3. package/dist/node_modules/@bull-board/api/dist/src/handlers/error.js +2 -2
  4. package/dist/node_modules/@bull-board/api/dist/src/handlers/pauseAll.d.ts +4 -0
  5. package/dist/node_modules/@bull-board/api/dist/src/handlers/pauseAll.js +15 -0
  6. package/dist/node_modules/@bull-board/api/dist/src/handlers/queues.js +4 -0
  7. package/dist/node_modules/@bull-board/api/dist/src/handlers/resumeAll.d.ts +4 -0
  8. package/dist/node_modules/@bull-board/api/dist/src/handlers/resumeAll.js +15 -0
  9. package/dist/node_modules/@bull-board/api/dist/src/index.js +1 -1
  10. package/dist/node_modules/@bull-board/api/dist/src/queueAdapters/base.d.ts +4 -0
  11. package/dist/node_modules/@bull-board/api/dist/src/queueAdapters/base.js +6 -0
  12. package/dist/node_modules/@bull-board/api/dist/src/queueAdapters/bull.js +6 -4
  13. package/dist/node_modules/@bull-board/api/dist/src/routes.js +4 -0
  14. package/dist/node_modules/@bull-board/api/dist/typings/app.d.ts +22 -2
  15. package/dist/node_modules/@bull-board/api/package.json +1 -1
  16. package/dist/node_modules/@bull-board/koa/dist/KoaAdapter.js +1 -1
  17. package/dist/node_modules/@bull-board/koa/dist/index.js +101 -101
  18. package/dist/node_modules/@bull-board/koa/package.json +1 -1
  19. package/dist/node_modules/bullmq/dist/cjs/classes/backoffs.js +18 -5
  20. package/dist/node_modules/bullmq/dist/cjs/classes/child-pool.js +7 -2
  21. package/dist/node_modules/bullmq/dist/cjs/classes/child-processor.js +59 -5
  22. package/dist/node_modules/bullmq/dist/cjs/classes/child.js +3 -1
  23. package/dist/node_modules/bullmq/dist/cjs/classes/errors/index.js +2 -1
  24. package/dist/node_modules/bullmq/dist/cjs/classes/errors/waiting-error.js +19 -0
  25. package/dist/node_modules/bullmq/dist/cjs/classes/flow-producer.js +21 -5
  26. package/dist/node_modules/bullmq/dist/cjs/classes/index.js +1 -0
  27. package/dist/node_modules/bullmq/dist/cjs/classes/job-scheduler.js +88 -62
  28. package/dist/node_modules/bullmq/dist/cjs/classes/job.js +216 -109
  29. package/dist/node_modules/bullmq/dist/cjs/classes/main-base.js +1 -1
  30. package/dist/node_modules/bullmq/dist/cjs/classes/queue-base.js +10 -9
  31. package/dist/node_modules/bullmq/dist/cjs/classes/queue-getters.js +34 -14
  32. package/dist/node_modules/bullmq/dist/cjs/classes/queue.js +19 -13
  33. package/dist/node_modules/bullmq/dist/cjs/classes/redis-connection.js +16 -9
  34. package/dist/node_modules/bullmq/dist/cjs/classes/repeat.js +1 -1
  35. package/dist/node_modules/bullmq/dist/cjs/classes/sandbox.js +54 -28
  36. package/dist/node_modules/bullmq/dist/cjs/classes/scripts.js +141 -39
  37. package/dist/node_modules/bullmq/dist/cjs/classes/worker.js +191 -182
  38. package/dist/node_modules/bullmq/dist/cjs/commands/addDelayedJob-6.lua +6 -17
  39. package/dist/node_modules/bullmq/dist/cjs/commands/addJobScheduler-11.lua +123 -0
  40. package/dist/node_modules/bullmq/dist/{esm/commands/addParentJob-4.lua → cjs/commands/addParentJob-5.lua} +7 -6
  41. package/dist/node_modules/bullmq/dist/cjs/commands/{addPrioritizedJob-8.lua → addPrioritizedJob-9.lua} +11 -10
  42. package/dist/node_modules/bullmq/dist/cjs/commands/addRepeatableJob-2.lua +2 -2
  43. package/dist/node_modules/bullmq/dist/{esm/commands/addStandardJob-8.lua → cjs/commands/addStandardJob-9.lua} +9 -8
  44. package/dist/node_modules/bullmq/dist/cjs/commands/cleanJobsInSet-3.lua +9 -5
  45. package/dist/node_modules/bullmq/dist/cjs/commands/drain-5.lua +16 -16
  46. package/dist/node_modules/bullmq/dist/cjs/commands/getDependencyCounts-4.lua +31 -0
  47. package/dist/node_modules/bullmq/dist/cjs/commands/getState-8.lua +5 -5
  48. package/dist/node_modules/bullmq/dist/cjs/commands/getStateV2-8.lua +8 -8
  49. package/dist/node_modules/bullmq/dist/cjs/commands/includes/addDelayedJob.lua +23 -0
  50. package/dist/node_modules/bullmq/dist/cjs/commands/includes/addJobFromScheduler.lua +37 -0
  51. package/dist/node_modules/bullmq/dist/cjs/commands/includes/addJobWithPriority.lua +2 -2
  52. package/dist/node_modules/bullmq/dist/cjs/commands/includes/cleanList.lua +4 -2
  53. package/dist/node_modules/bullmq/dist/cjs/commands/includes/cleanSet.lua +3 -11
  54. package/dist/node_modules/bullmq/dist/cjs/commands/includes/collectMetrics.lua +1 -1
  55. package/dist/node_modules/bullmq/dist/cjs/commands/includes/deduplicateJob.lua +63 -18
  56. package/dist/node_modules/bullmq/dist/cjs/commands/includes/filterOutJobsToIgnore.lua +14 -0
  57. package/dist/node_modules/bullmq/dist/cjs/commands/includes/getNextDelayedTimestamp.lua +1 -1
  58. package/dist/node_modules/bullmq/dist/cjs/commands/includes/getOrSetMaxEvents.lua +6 -6
  59. package/dist/node_modules/bullmq/dist/cjs/commands/includes/getPriorityScore.lua +8 -0
  60. package/dist/node_modules/bullmq/dist/cjs/commands/includes/isJobSchedulerJob.lua +15 -0
  61. package/dist/node_modules/bullmq/dist/cjs/commands/includes/isLocked.lua +1 -0
  62. package/dist/node_modules/bullmq/dist/cjs/commands/includes/moveChildFromDependenciesIfNeeded.lua +77 -0
  63. package/dist/node_modules/bullmq/dist/cjs/commands/includes/{moveJobFromPriorityToActive.lua → moveJobFromPrioritizedToActive.lua} +1 -1
  64. package/dist/node_modules/bullmq/dist/cjs/commands/includes/moveParentToWait.lua +45 -0
  65. package/dist/node_modules/bullmq/dist/cjs/commands/includes/moveParentToWaitIfNeeded.lua +9 -50
  66. package/dist/node_modules/bullmq/dist/cjs/commands/includes/moveParentToWaitIfNoPendingDependencies.lua +13 -0
  67. package/dist/node_modules/bullmq/dist/cjs/commands/includes/prepareJobForProcessing.lua +2 -1
  68. package/dist/node_modules/bullmq/dist/cjs/commands/includes/promoteDelayedJobs.lua +7 -3
  69. package/dist/node_modules/bullmq/dist/cjs/commands/includes/removeDeduplicationKeyIfNeededOnFinalization.lua +23 -0
  70. package/dist/node_modules/bullmq/dist/cjs/commands/includes/removeDeduplicationKeyIfNeededOnRemoval.lua +16 -0
  71. package/dist/node_modules/bullmq/dist/cjs/commands/includes/removeJob.lua +2 -2
  72. package/dist/node_modules/bullmq/dist/cjs/commands/includes/removeJobKeys.lua +2 -2
  73. package/dist/node_modules/bullmq/dist/cjs/commands/includes/removeJobWithChildren.lua +95 -0
  74. package/dist/node_modules/bullmq/dist/cjs/commands/includes/removeListJobs.lua +7 -1
  75. package/dist/node_modules/bullmq/dist/cjs/commands/includes/removeParentDependencyKey.lua +5 -5
  76. package/dist/node_modules/bullmq/dist/cjs/commands/includes/removeZSetJobs.lua +2 -8
  77. package/dist/node_modules/bullmq/dist/cjs/commands/includes/storeJob.lua +2 -2
  78. package/dist/node_modules/bullmq/dist/cjs/commands/includes/storeJobScheduler.lua +52 -0
  79. package/dist/node_modules/bullmq/dist/cjs/commands/includes/trimEvents.lua +1 -1
  80. package/dist/node_modules/bullmq/dist/cjs/commands/includes/updateExistingJobsParent.lua +1 -1
  81. package/dist/node_modules/bullmq/dist/cjs/commands/includes/updateJobFields.lua +5 -5
  82. package/dist/node_modules/bullmq/dist/cjs/commands/includes/updateParentDepsIfNeeded.lua +2 -2
  83. package/dist/node_modules/bullmq/dist/cjs/commands/isFinished-3.lua +2 -2
  84. package/dist/node_modules/bullmq/dist/cjs/commands/moveJobFromActiveToWait-9.lua +63 -0
  85. package/dist/node_modules/bullmq/dist/cjs/commands/moveStalledJobsToWait-8.lua +109 -0
  86. package/dist/node_modules/bullmq/dist/cjs/commands/moveToActive-11.lua +3 -2
  87. package/dist/node_modules/bullmq/dist/cjs/commands/moveToFinished-14.lua +52 -52
  88. package/dist/node_modules/bullmq/dist/cjs/commands/moveToWaitingChildren-8.lua +106 -0
  89. package/dist/node_modules/bullmq/dist/cjs/commands/removeJob-2.lua +18 -66
  90. package/dist/node_modules/bullmq/dist/cjs/commands/removeJobScheduler-3.lua +1 -1
  91. package/dist/node_modules/bullmq/dist/cjs/commands/removeUnprocessedChildren-2.lua +31 -0
  92. package/dist/node_modules/bullmq/dist/cjs/commands/retryJob-11.lua +11 -5
  93. package/dist/node_modules/bullmq/dist/cjs/commands/updateJobScheduler-12.lua +90 -0
  94. package/dist/node_modules/bullmq/dist/cjs/commands/updateRepeatableJobMillis-1.lua +1 -1
  95. package/dist/node_modules/bullmq/dist/cjs/enums/child-command.js +2 -0
  96. package/dist/node_modules/bullmq/dist/cjs/enums/error-code.js +2 -1
  97. package/dist/node_modules/bullmq/dist/cjs/enums/parent-command.js +5 -2
  98. package/dist/node_modules/bullmq/dist/cjs/index.js +1 -1
  99. package/dist/node_modules/bullmq/dist/cjs/interfaces/index.js +2 -1
  100. package/dist/node_modules/bullmq/dist/cjs/interfaces/{debounce-options.js → parent-options.js} +1 -1
  101. package/dist/node_modules/bullmq/dist/cjs/interfaces/receiver.js +3 -0
  102. package/dist/node_modules/bullmq/dist/cjs/scripts/addDelayedJob-6.js +163 -84
  103. package/dist/node_modules/bullmq/dist/cjs/scripts/addJobScheduler-11.js +465 -0
  104. package/dist/node_modules/bullmq/dist/cjs/scripts/{addParentJob-4.js → addParentJob-5.js} +147 -75
  105. package/dist/node_modules/bullmq/dist/cjs/scripts/{addPrioritizedJob-8.js → addPrioritizedJob-9.js} +151 -79
  106. package/dist/node_modules/bullmq/dist/cjs/scripts/addRepeatableJob-2.js +18 -13
  107. package/dist/node_modules/bullmq/dist/cjs/scripts/{addStandardJob-8.js → addStandardJob-9.js} +149 -77
  108. package/dist/node_modules/bullmq/dist/cjs/scripts/changeDelay-4.js +7 -7
  109. package/dist/node_modules/bullmq/dist/cjs/scripts/changePriority-7.js +8 -2
  110. package/dist/node_modules/bullmq/dist/cjs/scripts/cleanJobsInSet-3.js +45 -29
  111. package/dist/node_modules/bullmq/dist/cjs/scripts/drain-5.js +49 -35
  112. package/dist/node_modules/bullmq/dist/cjs/scripts/getDependencyCounts-4.js +37 -0
  113. package/dist/node_modules/bullmq/dist/cjs/scripts/getState-8.js +5 -5
  114. package/dist/node_modules/bullmq/dist/cjs/scripts/getStateV2-8.js +8 -8
  115. package/dist/node_modules/bullmq/dist/cjs/scripts/index.js +10 -7
  116. package/dist/node_modules/bullmq/dist/cjs/scripts/isFinished-3.js +2 -2
  117. package/dist/node_modules/bullmq/dist/cjs/scripts/{moveJobFromActiveToWait-10.js → moveJobFromActiveToWait-9.js} +57 -37
  118. package/dist/node_modules/bullmq/dist/cjs/scripts/moveJobsToWait-8.js +6 -6
  119. package/dist/node_modules/bullmq/dist/cjs/scripts/moveStalledJobsToWait-8.js +171 -0
  120. package/dist/node_modules/bullmq/dist/cjs/scripts/moveToActive-11.js +18 -8
  121. package/dist/node_modules/bullmq/dist/cjs/scripts/moveToDelayed-8.js +12 -12
  122. package/dist/node_modules/bullmq/dist/cjs/scripts/moveToFinished-14.js +218 -155
  123. package/dist/node_modules/bullmq/dist/cjs/scripts/moveToWaitingChildren-8.js +529 -0
  124. package/dist/node_modules/bullmq/dist/cjs/scripts/obliterate-2.js +33 -20
  125. package/dist/node_modules/bullmq/dist/cjs/scripts/pause-7.js +1 -1
  126. package/dist/node_modules/bullmq/dist/cjs/scripts/promote-9.js +8 -2
  127. package/dist/node_modules/bullmq/dist/cjs/scripts/removeChildDependency-1.js +7 -7
  128. package/dist/node_modules/bullmq/dist/cjs/scripts/removeJob-2.js +120 -63
  129. package/dist/node_modules/bullmq/dist/cjs/scripts/removeJobScheduler-3.js +3 -3
  130. package/dist/node_modules/bullmq/dist/cjs/scripts/removeRepeatable-3.js +2 -2
  131. package/dist/node_modules/bullmq/dist/cjs/scripts/removeUnprocessedChildren-2.js +339 -0
  132. package/dist/node_modules/bullmq/dist/cjs/scripts/reprocessJob-8.js +6 -6
  133. package/dist/node_modules/bullmq/dist/cjs/scripts/retryJob-11.js +47 -26
  134. package/dist/node_modules/bullmq/dist/cjs/scripts/updateJobScheduler-12.js +274 -0
  135. package/dist/node_modules/bullmq/dist/cjs/scripts/updateProgress-3.js +6 -6
  136. package/dist/node_modules/bullmq/dist/cjs/scripts/updateRepeatableJobMillis-1.js +1 -1
  137. package/dist/node_modules/bullmq/dist/cjs/tsconfig-cjs.tsbuildinfo +1 -1
  138. package/dist/node_modules/bullmq/dist/cjs/types/deduplication-options.js +3 -0
  139. package/dist/node_modules/bullmq/dist/cjs/types/index.js +3 -0
  140. package/dist/node_modules/bullmq/dist/cjs/types/job-progress.js +3 -0
  141. package/dist/node_modules/bullmq/dist/cjs/types/script-queue-context.js +3 -0
  142. package/dist/node_modules/bullmq/dist/cjs/utils.js +29 -1
  143. package/dist/node_modules/bullmq/dist/cjs/version.js +1 -1
  144. package/dist/node_modules/bullmq/dist/esm/classes/backoffs.d.ts +1 -1
  145. package/dist/node_modules/bullmq/dist/esm/classes/backoffs.js +18 -5
  146. package/dist/node_modules/bullmq/dist/esm/classes/child-pool.d.ts +1 -1
  147. package/dist/node_modules/bullmq/dist/esm/classes/child-pool.js +7 -2
  148. package/dist/node_modules/bullmq/dist/esm/classes/child-processor.d.ts +3 -2
  149. package/dist/node_modules/bullmq/dist/esm/classes/child-processor.js +59 -5
  150. package/dist/node_modules/bullmq/dist/esm/classes/child.js +3 -1
  151. package/dist/node_modules/bullmq/dist/esm/classes/errors/index.d.ts +2 -1
  152. package/dist/node_modules/bullmq/dist/esm/classes/errors/index.js +2 -1
  153. package/dist/node_modules/bullmq/dist/esm/classes/errors/waiting-error.d.ts +10 -0
  154. package/dist/node_modules/bullmq/dist/esm/classes/errors/waiting-error.js +15 -0
  155. package/dist/node_modules/bullmq/dist/esm/classes/flow-producer.d.ts +3 -9
  156. package/dist/node_modules/bullmq/dist/esm/classes/flow-producer.js +21 -5
  157. package/dist/node_modules/bullmq/dist/esm/classes/index.d.ts +1 -0
  158. package/dist/node_modules/bullmq/dist/esm/classes/index.js +1 -0
  159. package/dist/node_modules/bullmq/dist/esm/classes/job-scheduler.d.ts +2 -2
  160. package/dist/node_modules/bullmq/dist/esm/classes/job-scheduler.js +88 -62
  161. package/dist/node_modules/bullmq/dist/esm/classes/job.d.ts +69 -19
  162. package/dist/node_modules/bullmq/dist/esm/classes/job.js +217 -110
  163. package/dist/node_modules/bullmq/dist/esm/classes/main-base.d.ts +2 -3
  164. package/dist/node_modules/bullmq/dist/esm/classes/main-base.js +1 -1
  165. package/dist/node_modules/bullmq/dist/esm/classes/queue-base.d.ts +2 -5
  166. package/dist/node_modules/bullmq/dist/esm/classes/queue-base.js +11 -10
  167. package/dist/node_modules/bullmq/dist/esm/classes/queue-events-producer.d.ts +2 -2
  168. package/dist/node_modules/bullmq/dist/esm/classes/queue-events.d.ts +118 -29
  169. package/dist/node_modules/bullmq/dist/esm/classes/queue-getters.d.ts +20 -13
  170. package/dist/node_modules/bullmq/dist/esm/classes/queue-getters.js +34 -14
  171. package/dist/node_modules/bullmq/dist/esm/classes/queue.d.ts +19 -16
  172. package/dist/node_modules/bullmq/dist/esm/classes/queue.js +19 -13
  173. package/dist/node_modules/bullmq/dist/esm/classes/redis-connection.d.ts +7 -3
  174. package/dist/node_modules/bullmq/dist/esm/classes/redis-connection.js +16 -9
  175. package/dist/node_modules/bullmq/dist/esm/classes/repeat.js +1 -1
  176. package/dist/node_modules/bullmq/dist/esm/classes/sandbox.js +54 -28
  177. package/dist/node_modules/bullmq/dist/esm/classes/scripts.d.ts +20 -13
  178. package/dist/node_modules/bullmq/dist/esm/classes/scripts.js +141 -39
  179. package/dist/node_modules/bullmq/dist/esm/classes/worker.d.ts +28 -7
  180. package/dist/node_modules/bullmq/dist/esm/classes/worker.js +192 -183
  181. package/dist/node_modules/bullmq/dist/esm/commands/addDelayedJob-6.lua +6 -17
  182. package/dist/node_modules/bullmq/dist/esm/commands/addJobScheduler-11.lua +123 -0
  183. package/dist/node_modules/bullmq/dist/{cjs/commands/addParentJob-4.lua → esm/commands/addParentJob-5.lua} +7 -6
  184. package/dist/node_modules/bullmq/dist/esm/commands/{addPrioritizedJob-8.lua → addPrioritizedJob-9.lua} +11 -10
  185. package/dist/node_modules/bullmq/dist/esm/commands/addRepeatableJob-2.lua +2 -2
  186. package/dist/node_modules/bullmq/dist/{cjs/commands/addStandardJob-8.lua → esm/commands/addStandardJob-9.lua} +9 -8
  187. package/dist/node_modules/bullmq/dist/esm/commands/cleanJobsInSet-3.lua +9 -5
  188. package/dist/node_modules/bullmq/dist/esm/commands/drain-5.lua +16 -16
  189. package/dist/node_modules/bullmq/dist/esm/commands/getDependencyCounts-4.lua +31 -0
  190. package/dist/node_modules/bullmq/dist/esm/commands/getState-8.lua +5 -5
  191. package/dist/node_modules/bullmq/dist/esm/commands/getStateV2-8.lua +8 -8
  192. package/dist/node_modules/bullmq/dist/esm/commands/includes/addDelayedJob.lua +23 -0
  193. package/dist/node_modules/bullmq/dist/esm/commands/includes/addJobFromScheduler.lua +37 -0
  194. package/dist/node_modules/bullmq/dist/esm/commands/includes/addJobWithPriority.lua +2 -2
  195. package/dist/node_modules/bullmq/dist/esm/commands/includes/cleanList.lua +4 -2
  196. package/dist/node_modules/bullmq/dist/esm/commands/includes/cleanSet.lua +3 -11
  197. package/dist/node_modules/bullmq/dist/esm/commands/includes/collectMetrics.lua +1 -1
  198. package/dist/node_modules/bullmq/dist/esm/commands/includes/deduplicateJob.lua +63 -18
  199. package/dist/node_modules/bullmq/dist/esm/commands/includes/filterOutJobsToIgnore.lua +14 -0
  200. package/dist/node_modules/bullmq/dist/esm/commands/includes/getNextDelayedTimestamp.lua +1 -1
  201. package/dist/node_modules/bullmq/dist/esm/commands/includes/getOrSetMaxEvents.lua +6 -6
  202. package/dist/node_modules/bullmq/dist/esm/commands/includes/getPriorityScore.lua +8 -0
  203. package/dist/node_modules/bullmq/dist/esm/commands/includes/isJobSchedulerJob.lua +15 -0
  204. package/dist/node_modules/bullmq/dist/esm/commands/includes/isLocked.lua +1 -0
  205. package/dist/node_modules/bullmq/dist/esm/commands/includes/moveChildFromDependenciesIfNeeded.lua +77 -0
  206. package/dist/node_modules/bullmq/dist/esm/commands/includes/{moveJobFromPriorityToActive.lua → moveJobFromPrioritizedToActive.lua} +1 -1
  207. package/dist/node_modules/bullmq/dist/esm/commands/includes/moveParentToWait.lua +45 -0
  208. package/dist/node_modules/bullmq/dist/esm/commands/includes/moveParentToWaitIfNeeded.lua +9 -50
  209. package/dist/node_modules/bullmq/dist/esm/commands/includes/moveParentToWaitIfNoPendingDependencies.lua +13 -0
  210. package/dist/node_modules/bullmq/dist/esm/commands/includes/prepareJobForProcessing.lua +2 -1
  211. package/dist/node_modules/bullmq/dist/esm/commands/includes/promoteDelayedJobs.lua +7 -3
  212. package/dist/node_modules/bullmq/dist/esm/commands/includes/removeDeduplicationKeyIfNeededOnFinalization.lua +23 -0
  213. package/dist/node_modules/bullmq/dist/esm/commands/includes/removeDeduplicationKeyIfNeededOnRemoval.lua +16 -0
  214. package/dist/node_modules/bullmq/dist/esm/commands/includes/removeJob.lua +2 -2
  215. package/dist/node_modules/bullmq/dist/esm/commands/includes/removeJobKeys.lua +2 -2
  216. package/dist/node_modules/bullmq/dist/esm/commands/includes/removeJobWithChildren.lua +95 -0
  217. package/dist/node_modules/bullmq/dist/esm/commands/includes/removeListJobs.lua +7 -1
  218. package/dist/node_modules/bullmq/dist/esm/commands/includes/removeParentDependencyKey.lua +5 -5
  219. package/dist/node_modules/bullmq/dist/esm/commands/includes/removeZSetJobs.lua +2 -8
  220. package/dist/node_modules/bullmq/dist/esm/commands/includes/storeJob.lua +2 -2
  221. package/dist/node_modules/bullmq/dist/esm/commands/includes/storeJobScheduler.lua +52 -0
  222. package/dist/node_modules/bullmq/dist/esm/commands/includes/trimEvents.lua +1 -1
  223. package/dist/node_modules/bullmq/dist/esm/commands/includes/updateExistingJobsParent.lua +1 -1
  224. package/dist/node_modules/bullmq/dist/esm/commands/includes/updateJobFields.lua +5 -5
  225. package/dist/node_modules/bullmq/dist/esm/commands/includes/updateParentDepsIfNeeded.lua +2 -2
  226. package/dist/node_modules/bullmq/dist/esm/commands/isFinished-3.lua +2 -2
  227. package/dist/node_modules/bullmq/dist/esm/commands/moveJobFromActiveToWait-9.lua +63 -0
  228. package/dist/node_modules/bullmq/dist/esm/commands/moveStalledJobsToWait-8.lua +109 -0
  229. package/dist/node_modules/bullmq/dist/esm/commands/moveToActive-11.lua +3 -2
  230. package/dist/node_modules/bullmq/dist/esm/commands/moveToFinished-14.lua +52 -52
  231. package/dist/node_modules/bullmq/dist/esm/commands/moveToWaitingChildren-8.lua +106 -0
  232. package/dist/node_modules/bullmq/dist/esm/commands/removeJob-2.lua +18 -66
  233. package/dist/node_modules/bullmq/dist/esm/commands/removeJobScheduler-3.lua +1 -1
  234. package/dist/node_modules/bullmq/dist/esm/commands/removeUnprocessedChildren-2.lua +31 -0
  235. package/dist/node_modules/bullmq/dist/esm/commands/retryJob-11.lua +11 -5
  236. package/dist/node_modules/bullmq/dist/esm/commands/updateJobScheduler-12.lua +90 -0
  237. package/dist/node_modules/bullmq/dist/esm/commands/updateRepeatableJobMillis-1.lua +1 -1
  238. package/dist/node_modules/bullmq/dist/esm/enums/child-command.d.ts +3 -1
  239. package/dist/node_modules/bullmq/dist/esm/enums/child-command.js +2 -0
  240. package/dist/node_modules/bullmq/dist/esm/enums/error-code.d.ts +3 -2
  241. package/dist/node_modules/bullmq/dist/esm/enums/error-code.js +2 -1
  242. package/dist/node_modules/bullmq/dist/esm/enums/parent-command.d.ts +5 -2
  243. package/dist/node_modules/bullmq/dist/esm/enums/parent-command.js +5 -2
  244. package/dist/node_modules/bullmq/dist/esm/interfaces/backoff-options.d.ts +5 -0
  245. package/dist/node_modules/bullmq/dist/esm/interfaces/base-job-options.d.ts +3 -9
  246. package/dist/node_modules/bullmq/dist/esm/interfaces/child-message.d.ts +1 -0
  247. package/dist/node_modules/bullmq/dist/esm/interfaces/index.d.ts +2 -1
  248. package/dist/node_modules/bullmq/dist/esm/interfaces/index.js +2 -1
  249. package/dist/node_modules/bullmq/dist/esm/interfaces/job-json.d.ts +6 -2
  250. package/dist/node_modules/bullmq/dist/esm/interfaces/job-scheduler-json.d.ts +7 -4
  251. package/dist/node_modules/bullmq/dist/esm/interfaces/minimal-job.d.ts +34 -15
  252. package/dist/node_modules/bullmq/dist/esm/interfaces/parent-options.d.ts +11 -0
  253. package/dist/node_modules/bullmq/dist/esm/interfaces/parent-options.js +2 -0
  254. package/dist/node_modules/bullmq/dist/esm/interfaces/parent.d.ts +6 -2
  255. package/dist/node_modules/bullmq/dist/esm/interfaces/queue-options.d.ts +15 -6
  256. package/dist/node_modules/bullmq/dist/esm/interfaces/receiver.d.ts +4 -0
  257. package/dist/node_modules/bullmq/dist/esm/interfaces/receiver.js +2 -0
  258. package/dist/node_modules/bullmq/dist/esm/interfaces/repeat-options.d.ts +1 -2
  259. package/dist/node_modules/bullmq/dist/esm/interfaces/repeatable-options.d.ts +2 -0
  260. package/dist/node_modules/bullmq/dist/esm/interfaces/sandboxed-job.d.ts +3 -2
  261. package/dist/node_modules/bullmq/dist/esm/interfaces/sandboxed-options.d.ts +1 -1
  262. package/dist/node_modules/bullmq/dist/esm/interfaces/telemetry.d.ts +18 -15
  263. package/dist/node_modules/bullmq/dist/esm/interfaces/worker-options.d.ts +10 -10
  264. package/dist/node_modules/bullmq/dist/esm/scripts/addDelayedJob-6.js +163 -84
  265. package/dist/node_modules/bullmq/dist/esm/scripts/addJobScheduler-11.js +462 -0
  266. package/dist/node_modules/bullmq/dist/esm/scripts/{addParentJob-4.js → addParentJob-5.js} +147 -75
  267. package/dist/node_modules/bullmq/dist/esm/scripts/{addPrioritizedJob-8.js → addPrioritizedJob-9.js} +151 -79
  268. package/dist/node_modules/bullmq/dist/esm/scripts/addRepeatableJob-2.js +18 -13
  269. package/dist/node_modules/bullmq/dist/esm/scripts/{addStandardJob-8.js → addStandardJob-9.js} +149 -77
  270. package/dist/node_modules/bullmq/dist/esm/scripts/changeDelay-4.js +7 -7
  271. package/dist/node_modules/bullmq/dist/esm/scripts/changePriority-7.js +8 -2
  272. package/dist/node_modules/bullmq/dist/esm/scripts/cleanJobsInSet-3.js +45 -29
  273. package/dist/node_modules/bullmq/dist/esm/scripts/drain-5.js +49 -35
  274. package/dist/node_modules/bullmq/dist/esm/scripts/getDependencyCounts-4.d.ts +5 -0
  275. package/dist/node_modules/bullmq/dist/esm/scripts/getDependencyCounts-4.js +34 -0
  276. package/dist/node_modules/bullmq/dist/esm/scripts/getState-8.js +5 -5
  277. package/dist/node_modules/bullmq/dist/esm/scripts/getStateV2-8.js +8 -8
  278. package/dist/node_modules/bullmq/dist/esm/scripts/index.d.ts +10 -7
  279. package/dist/node_modules/bullmq/dist/esm/scripts/index.js +10 -7
  280. package/dist/node_modules/bullmq/dist/esm/scripts/isFinished-3.js +2 -2
  281. package/dist/node_modules/bullmq/dist/esm/scripts/{moveJobFromActiveToWait-10.js → moveJobFromActiveToWait-9.js} +57 -37
  282. package/dist/node_modules/bullmq/dist/esm/scripts/moveJobsToWait-8.js +6 -6
  283. package/dist/node_modules/bullmq/dist/esm/scripts/moveStalledJobsToWait-8.js +168 -0
  284. package/dist/node_modules/bullmq/dist/esm/scripts/moveToActive-11.js +18 -8
  285. package/dist/node_modules/bullmq/dist/esm/scripts/moveToDelayed-8.js +12 -12
  286. package/dist/node_modules/bullmq/dist/esm/scripts/moveToFinished-14.js +218 -155
  287. package/dist/node_modules/bullmq/dist/esm/scripts/moveToWaitingChildren-8.js +526 -0
  288. package/dist/node_modules/bullmq/dist/esm/scripts/obliterate-2.js +33 -20
  289. package/dist/node_modules/bullmq/dist/esm/scripts/pause-7.js +1 -1
  290. package/dist/node_modules/bullmq/dist/esm/scripts/promote-9.js +8 -2
  291. package/dist/node_modules/bullmq/dist/esm/scripts/removeChildDependency-1.js +7 -7
  292. package/dist/node_modules/bullmq/dist/esm/scripts/removeJob-2.js +120 -63
  293. package/dist/node_modules/bullmq/dist/esm/scripts/removeJobScheduler-3.js +3 -3
  294. package/dist/node_modules/bullmq/dist/esm/scripts/removeRepeatable-3.js +2 -2
  295. package/dist/node_modules/bullmq/dist/esm/scripts/removeUnprocessedChildren-2.d.ts +5 -0
  296. package/dist/node_modules/bullmq/dist/esm/scripts/removeUnprocessedChildren-2.js +336 -0
  297. package/dist/node_modules/bullmq/dist/esm/scripts/reprocessJob-8.js +6 -6
  298. package/dist/node_modules/bullmq/dist/esm/scripts/retryJob-11.js +47 -26
  299. package/dist/node_modules/bullmq/dist/esm/scripts/updateJobScheduler-12.d.ts +5 -0
  300. package/dist/node_modules/bullmq/dist/esm/scripts/updateJobScheduler-12.js +271 -0
  301. package/dist/node_modules/bullmq/dist/esm/scripts/updateProgress-3.js +6 -6
  302. package/dist/node_modules/bullmq/dist/esm/scripts/updateRepeatableJobMillis-1.js +1 -1
  303. package/dist/node_modules/bullmq/dist/esm/tsconfig.tsbuildinfo +1 -1
  304. package/dist/node_modules/bullmq/dist/esm/types/deduplication-options.d.ts +22 -0
  305. package/dist/node_modules/bullmq/dist/esm/types/deduplication-options.js +2 -0
  306. package/dist/node_modules/bullmq/dist/esm/types/index.d.ts +3 -0
  307. package/dist/node_modules/bullmq/dist/esm/types/index.js +3 -0
  308. package/dist/node_modules/bullmq/dist/esm/types/job-options.d.ts +19 -8
  309. package/dist/node_modules/bullmq/dist/esm/types/job-progress.d.ts +1 -0
  310. package/dist/node_modules/bullmq/dist/esm/types/job-progress.js +2 -0
  311. package/dist/node_modules/bullmq/dist/esm/types/script-queue-context.d.ts +2 -0
  312. package/dist/node_modules/bullmq/dist/esm/types/script-queue-context.js +2 -0
  313. package/dist/node_modules/bullmq/dist/esm/utils.d.ts +25 -5
  314. package/dist/node_modules/bullmq/dist/esm/utils.js +27 -0
  315. package/dist/node_modules/bullmq/dist/esm/version.d.ts +1 -1
  316. package/dist/node_modules/bullmq/dist/esm/version.js +1 -1
  317. package/dist/node_modules/bullmq/package.json +1 -1
  318. package/package.json +7 -7
  319. package/dist/node_modules/bullmq/dist/cjs/commands/addJobScheduler-2.lua +0 -91
  320. package/dist/node_modules/bullmq/dist/cjs/commands/includes/moveParentFromWaitingChildrenToFailed.lua +0 -53
  321. package/dist/node_modules/bullmq/dist/cjs/commands/includes/removeDeduplicationKey.lua +0 -11
  322. package/dist/node_modules/bullmq/dist/cjs/commands/includes/removeDeduplicationKeyIfNeeded.lua +0 -14
  323. package/dist/node_modules/bullmq/dist/cjs/commands/moveJobFromActiveToWait-10.lua +0 -60
  324. package/dist/node_modules/bullmq/dist/cjs/commands/moveStalledJobsToWait-9.lua +0 -156
  325. package/dist/node_modules/bullmq/dist/cjs/commands/moveToWaitingChildren-5.lua +0 -68
  326. package/dist/node_modules/bullmq/dist/cjs/scripts/addJobScheduler-2.js +0 -237
  327. package/dist/node_modules/bullmq/dist/cjs/scripts/moveStalledJobsToWait-9.js +0 -529
  328. package/dist/node_modules/bullmq/dist/cjs/scripts/moveToWaitingChildren-5.js +0 -83
  329. package/dist/node_modules/bullmq/dist/esm/commands/addJobScheduler-2.lua +0 -91
  330. package/dist/node_modules/bullmq/dist/esm/commands/includes/moveParentFromWaitingChildrenToFailed.lua +0 -53
  331. package/dist/node_modules/bullmq/dist/esm/commands/includes/removeDeduplicationKey.lua +0 -11
  332. package/dist/node_modules/bullmq/dist/esm/commands/includes/removeDeduplicationKeyIfNeeded.lua +0 -14
  333. package/dist/node_modules/bullmq/dist/esm/commands/moveJobFromActiveToWait-10.lua +0 -60
  334. package/dist/node_modules/bullmq/dist/esm/commands/moveStalledJobsToWait-9.lua +0 -156
  335. package/dist/node_modules/bullmq/dist/esm/commands/moveToWaitingChildren-5.lua +0 -68
  336. package/dist/node_modules/bullmq/dist/esm/interfaces/debounce-options.d.ts +0 -13
  337. package/dist/node_modules/bullmq/dist/esm/interfaces/debounce-options.js +0 -2
  338. package/dist/node_modules/bullmq/dist/esm/scripts/addJobScheduler-2.js +0 -234
  339. package/dist/node_modules/bullmq/dist/esm/scripts/moveStalledJobsToWait-9.js +0 -526
  340. package/dist/node_modules/bullmq/dist/esm/scripts/moveToWaitingChildren-5.js +0 -80
  341. /package/dist/node_modules/bullmq/dist/esm/scripts/{addJobScheduler-2.d.ts → addJobScheduler-11.d.ts} +0 -0
  342. /package/dist/node_modules/bullmq/dist/esm/scripts/{addParentJob-4.d.ts → addParentJob-5.d.ts} +0 -0
  343. /package/dist/node_modules/bullmq/dist/esm/scripts/{addPrioritizedJob-8.d.ts → addPrioritizedJob-9.d.ts} +0 -0
  344. /package/dist/node_modules/bullmq/dist/esm/scripts/{addStandardJob-8.d.ts → addStandardJob-9.d.ts} +0 -0
  345. /package/dist/node_modules/bullmq/dist/esm/scripts/{moveJobFromActiveToWait-10.d.ts → moveJobFromActiveToWait-9.d.ts} +0 -0
  346. /package/dist/node_modules/bullmq/dist/esm/scripts/{moveStalledJobsToWait-9.d.ts → moveStalledJobsToWait-8.d.ts} +0 -0
  347. /package/dist/node_modules/bullmq/dist/esm/scripts/{moveToWaitingChildren-5.d.ts → moveToWaitingChildren-8.d.ts} +0 -0
@@ -49,7 +49,7 @@ export class Scripts {
49
49
  }
50
50
  return Number.isInteger(result);
51
51
  }
52
- addDelayedJob(client, job, encodedOpts, args) {
52
+ addDelayedJobArgs(job, encodedOpts, args) {
53
53
  const queueKeys = this.queue.keys;
54
54
  const keys = [
55
55
  queueKeys.marker,
@@ -60,35 +60,49 @@ export class Scripts {
60
60
  queueKeys.events,
61
61
  ];
62
62
  keys.push(pack(args), job.data, encodedOpts);
63
- return this.execCommand(client, 'addDelayedJob', keys);
63
+ return keys;
64
64
  }
65
- addPrioritizedJob(client, job, encodedOpts, args) {
65
+ addDelayedJob(client, job, encodedOpts, args) {
66
+ const argsList = this.addDelayedJobArgs(job, encodedOpts, args);
67
+ return this.execCommand(client, 'addDelayedJob', argsList);
68
+ }
69
+ addPrioritizedJobArgs(job, encodedOpts, args) {
66
70
  const queueKeys = this.queue.keys;
67
71
  const keys = [
68
72
  queueKeys.marker,
69
73
  queueKeys.meta,
70
74
  queueKeys.id,
71
75
  queueKeys.prioritized,
76
+ queueKeys.delayed,
72
77
  queueKeys.completed,
73
78
  queueKeys.active,
74
79
  queueKeys.events,
75
80
  queueKeys.pc,
76
81
  ];
77
82
  keys.push(pack(args), job.data, encodedOpts);
78
- return this.execCommand(client, 'addPrioritizedJob', keys);
83
+ return keys;
79
84
  }
80
- addParentJob(client, job, encodedOpts, args) {
85
+ addPrioritizedJob(client, job, encodedOpts, args) {
86
+ const argsList = this.addPrioritizedJobArgs(job, encodedOpts, args);
87
+ return this.execCommand(client, 'addPrioritizedJob', argsList);
88
+ }
89
+ addParentJobArgs(job, encodedOpts, args) {
81
90
  const queueKeys = this.queue.keys;
82
91
  const keys = [
83
92
  queueKeys.meta,
84
93
  queueKeys.id,
94
+ queueKeys.delayed,
85
95
  queueKeys.completed,
86
96
  queueKeys.events,
87
97
  ];
88
98
  keys.push(pack(args), job.data, encodedOpts);
89
- return this.execCommand(client, 'addParentJob', keys);
99
+ return keys;
90
100
  }
91
- addStandardJob(client, job, encodedOpts, args) {
101
+ addParentJob(client, job, encodedOpts, args) {
102
+ const argsList = this.addParentJobArgs(job, encodedOpts, args);
103
+ return this.execCommand(client, 'addParentJob', argsList);
104
+ }
105
+ addStandardJobArgs(job, encodedOpts, args) {
92
106
  const queueKeys = this.queue.keys;
93
107
  const keys = [
94
108
  queueKeys.wait,
@@ -96,25 +110,29 @@ export class Scripts {
96
110
  queueKeys.meta,
97
111
  queueKeys.id,
98
112
  queueKeys.completed,
113
+ queueKeys.delayed,
99
114
  queueKeys.active,
100
115
  queueKeys.events,
101
116
  queueKeys.marker,
102
117
  ];
103
118
  keys.push(pack(args), job.data, encodedOpts);
104
- return this.execCommand(client, 'addStandardJob', keys);
119
+ return keys;
120
+ }
121
+ addStandardJob(client, job, encodedOpts, args) {
122
+ const argsList = this.addStandardJobArgs(job, encodedOpts, args);
123
+ return this.execCommand(client, 'addStandardJob', argsList);
105
124
  }
106
- async addJob(client, job, opts, jobId, parentOpts = {}) {
125
+ async addJob(client, job, opts, jobId, parentKeyOpts = {}) {
107
126
  const queueKeys = this.queue.keys;
108
- const parent = job.parent
109
- ? Object.assign(Object.assign({}, job.parent), { fpof: opts.fpof, rdof: opts.rdof, idof: opts.idof }) : null;
127
+ const parent = job.parent;
110
128
  const args = [
111
129
  queueKeys[''],
112
130
  typeof jobId !== 'undefined' ? jobId : '',
113
131
  job.name,
114
132
  job.timestamp,
115
133
  job.parentKey || null,
116
- parentOpts.waitChildrenKey || null,
117
- parentOpts.parentDependenciesKey || null,
134
+ parentKeyOpts.waitChildrenKey || null,
135
+ parentKeyOpts.parentDependenciesKey || null,
118
136
  parent,
119
137
  job.repeatJobKey,
120
138
  job.deduplicationId ? `${queueKeys.de}:${job.deduplicationId}` : null,
@@ -134,10 +152,10 @@ export class Scripts {
134
152
  encodedOpts = pack(opts);
135
153
  }
136
154
  let result;
137
- if (parentOpts.waitChildrenKey) {
155
+ if (parentKeyOpts.waitChildrenKey) {
138
156
  result = await this.addParentJob(client, job, encodedOpts, args);
139
157
  }
140
- else if (typeof opts.delay == 'number') {
158
+ else if (typeof opts.delay == 'number' && opts.delay > 0) {
141
159
  result = await this.addDelayedJob(client, job, encodedOpts, args);
142
160
  }
143
161
  else if (opts.priority) {
@@ -149,7 +167,7 @@ export class Scripts {
149
167
  if (result < 0) {
150
168
  throw this.finishedErrors({
151
169
  code: result,
152
- parentKey: parentOpts.parentKey,
170
+ parentKey: parentKeyOpts.parentKey,
153
171
  command: 'addJob',
154
172
  });
155
173
  }
@@ -191,11 +209,23 @@ export class Scripts {
191
209
  const args = this.addRepeatableJobArgs(customKey, nextMillis, opts, legacyCustomKey);
192
210
  return this.execCommand(client, 'addRepeatableJob', args);
193
211
  }
194
- async addJobScheduler(client, jobSchedulerId, nextMillis, templateData, templateOpts, opts) {
212
+ async addJobScheduler(jobSchedulerId, nextMillis, templateData, templateOpts, opts, delayedJobOpts,
213
+ // The job id of the job that produced this next iteration
214
+ producerId) {
215
+ const client = await this.queue.client;
195
216
  const queueKeys = this.queue.keys;
196
217
  const keys = [
197
218
  queueKeys.repeat,
198
219
  queueKeys.delayed,
220
+ queueKeys.wait,
221
+ queueKeys.paused,
222
+ queueKeys.meta,
223
+ queueKeys.prioritized,
224
+ queueKeys.marker,
225
+ queueKeys.id,
226
+ queueKeys.events,
227
+ queueKeys.pc,
228
+ queueKeys.active,
199
229
  ];
200
230
  const args = [
201
231
  nextMillis,
@@ -203,7 +233,10 @@ export class Scripts {
203
233
  jobSchedulerId,
204
234
  templateData,
205
235
  pack(templateOpts),
236
+ pack(delayedJobOpts),
237
+ Date.now(),
206
238
  queueKeys[''],
239
+ producerId ? this.queue.toKey(producerId) : '',
207
240
  ];
208
241
  return this.execCommand(client, 'addJobScheduler', keys.concat(args));
209
242
  }
@@ -216,8 +249,35 @@ export class Scripts {
216
249
  ];
217
250
  return this.execCommand(client, 'updateRepeatableJobMillis', args);
218
251
  }
219
- async updateJobSchedulerNextMillis(client, jobSchedulerId, nextMillis) {
220
- return client.zadd(this.queue.keys.repeat, nextMillis, jobSchedulerId);
252
+ async updateJobSchedulerNextMillis(jobSchedulerId, nextMillis, templateData, delayedJobOpts,
253
+ // The job id of the job that produced this next iteration - TODO: remove in next breaking change
254
+ producerId) {
255
+ const client = await this.queue.client;
256
+ const queueKeys = this.queue.keys;
257
+ const keys = [
258
+ queueKeys.repeat,
259
+ queueKeys.delayed,
260
+ queueKeys.wait,
261
+ queueKeys.paused,
262
+ queueKeys.meta,
263
+ queueKeys.prioritized,
264
+ queueKeys.marker,
265
+ queueKeys.id,
266
+ queueKeys.events,
267
+ queueKeys.pc,
268
+ producerId ? this.queue.toKey(producerId) : '',
269
+ queueKeys.active,
270
+ ];
271
+ const args = [
272
+ nextMillis,
273
+ jobSchedulerId,
274
+ templateData,
275
+ pack(delayedJobOpts),
276
+ Date.now(),
277
+ queueKeys[''],
278
+ producerId,
279
+ ];
280
+ return this.execCommand(client, 'updateJobScheduler', keys.concat(args));
221
281
  }
222
282
  removeRepeatableArgs(legacyRepeatJobId, repeatConcatOptions, repeatJobKey) {
223
283
  const queueKeys = this.queue.keys;
@@ -250,8 +310,8 @@ export class Scripts {
250
310
  return this.execCommand(client, 'removeJobScheduler', keys.concat(args));
251
311
  }
252
312
  removeArgs(jobId, removeChildren) {
253
- const keys = ['', 'meta'].map(name => this.queue.toKey(name));
254
- const args = [jobId, removeChildren ? 1 : 0];
313
+ const keys = [jobId, 'repeat'].map(name => this.queue.toKey(name));
314
+ const args = [jobId, removeChildren ? 1 : 0, this.queue.toKey('')];
255
315
  return keys.concat(args);
256
316
  }
257
317
  async remove(jobId, removeChildren) {
@@ -267,6 +327,16 @@ export class Scripts {
267
327
  }
268
328
  return result;
269
329
  }
330
+ async removeUnprocessedChildren(jobId) {
331
+ const client = await this.queue.client;
332
+ const args = [
333
+ this.queue.toKey(jobId),
334
+ this.queue.keys.meta,
335
+ this.queue.toKey(''),
336
+ jobId,
337
+ ];
338
+ await this.execCommand(client, 'removeUnprocessedChildren', args);
339
+ }
270
340
  async extendLock(jobId, token, duration, client) {
271
341
  client = client || (await this.queue.client);
272
342
  const args = [
@@ -336,7 +406,7 @@ export class Scripts {
336
406
  return result;
337
407
  }
338
408
  moveToFinishedArgs(job, val, propVal, shouldRemove, target, token, timestamp, fetchNext = true, fieldsToUpdate) {
339
- var _a, _b, _c, _d, _e, _f;
409
+ var _a, _b, _c, _d, _e, _f, _g;
340
410
  const queueKeys = this.queue.keys;
341
411
  const opts = this.queue.opts;
342
412
  const workerKeepJobs = target === 'completed' ? opts.removeOnComplete : opts.removeOnFail;
@@ -357,6 +427,7 @@ export class Scripts {
357
427
  queueKeys[''],
358
428
  pack({
359
429
  token,
430
+ name: opts.name,
360
431
  keepJobs,
361
432
  limiter: opts.limiter,
362
433
  lockDuration: opts.lockDuration,
@@ -365,8 +436,9 @@ export class Scripts {
365
436
  ? (_c = opts.metrics) === null || _c === void 0 ? void 0 : _c.maxDataPoints
366
437
  : '',
367
438
  fpof: !!((_d = job.opts) === null || _d === void 0 ? void 0 : _d.failParentOnFailure),
368
- idof: !!((_e = job.opts) === null || _e === void 0 ? void 0 : _e.ignoreDependencyOnFailure),
369
- rdof: !!((_f = job.opts) === null || _f === void 0 ? void 0 : _f.removeDependencyOnFailure),
439
+ cpof: !!((_e = job.opts) === null || _e === void 0 ? void 0 : _e.continueParentOnFailure),
440
+ idof: !!((_f = job.opts) === null || _f === void 0 ? void 0 : _f.ignoreDependencyOnFailure),
441
+ rdof: !!((_g = job.opts) === null || _g === void 0 ? void 0 : _g.removeDependencyOnFailure),
370
442
  }),
371
443
  fieldsToUpdate ? pack(objectToFlatArray(fieldsToUpdate)) : void 0,
372
444
  ];
@@ -404,11 +476,11 @@ export class Scripts {
404
476
  const keys = [
405
477
  queueKeys.wait,
406
478
  queueKeys.paused,
407
- delayed ? queueKeys.delayed : '',
479
+ queueKeys.delayed,
408
480
  queueKeys.prioritized,
409
481
  queueKeys.repeat,
410
482
  ];
411
- const args = [queueKeys['']];
483
+ const args = [queueKeys[''], delayed ? '1' : '0'];
412
484
  return keys.concat(args);
413
485
  }
414
486
  async drain(delayed) {
@@ -483,6 +555,23 @@ export class Scripts {
483
555
  const args = this.getCountsPerPriorityArgs(priorities);
484
556
  return await this.execCommand(client, 'getCountsPerPriority', args);
485
557
  }
558
+ getDependencyCountsArgs(jobId, types) {
559
+ const keys = [
560
+ `${jobId}:processed`,
561
+ `${jobId}:dependencies`,
562
+ `${jobId}:failed`,
563
+ `${jobId}:unsuccessful`,
564
+ ].map(name => {
565
+ return this.queue.toKey(name);
566
+ });
567
+ const args = types;
568
+ return keys.concat(args);
569
+ }
570
+ async getDependencyCounts(jobId, types) {
571
+ const client = await this.queue.client;
572
+ const args = this.getDependencyCountsArgs(jobId, types);
573
+ return await this.execCommand(client, 'getDependencyCounts', args);
574
+ }
486
575
  moveToCompletedArgs(job, returnvalue, removeOnComplete, token, fetchNext = false) {
487
576
  const timestamp = Date.now();
488
577
  return this.moveToFinishedArgs(job, returnvalue, 'returnvalue', removeOnComplete, 'completed', token, timestamp, fetchNext);
@@ -597,11 +686,14 @@ export class Scripts {
597
686
  const timestamp = Date.now();
598
687
  const childKey = getParentKey(opts.child);
599
688
  const keys = [
600
- `${jobId}:lock`,
601
689
  'active',
602
690
  'waiting-children',
603
691
  jobId,
692
+ `${jobId}:dependencies`,
693
+ `${jobId}:unsuccessful`,
604
694
  'stalled',
695
+ 'failed',
696
+ 'events',
605
697
  ].map(name => {
606
698
  return this.queue.toKey(name);
607
699
  });
@@ -610,6 +702,7 @@ export class Scripts {
610
702
  childKey !== null && childKey !== void 0 ? childKey : '',
611
703
  JSON.stringify(timestamp),
612
704
  jobId,
705
+ this.queue.toKey(''),
613
706
  ]);
614
707
  }
615
708
  isMaxedArgs() {
@@ -699,7 +792,7 @@ export class Scripts {
699
792
  const args = this.getJobSchedulerArgs(id);
700
793
  return this.execCommand(client, 'getJobScheduler', args);
701
794
  }
702
- retryJobArgs(jobId, lifo, token, fieldsToUpdate) {
795
+ retryJobArgs(jobId, lifo, token, opts = {}) {
703
796
  const keys = [
704
797
  this.queue.keys.active,
705
798
  this.queue.keys.wait,
@@ -720,12 +813,14 @@ export class Scripts {
720
813
  pushCmd,
721
814
  jobId,
722
815
  token,
723
- fieldsToUpdate ? pack(objectToFlatArray(fieldsToUpdate)) : void 0,
816
+ opts.fieldsToUpdate
817
+ ? pack(objectToFlatArray(opts.fieldsToUpdate))
818
+ : void 0,
724
819
  ]);
725
820
  }
726
- async retryJob(jobId, lifo, token, fieldsToUpdate) {
821
+ async retryJob(jobId, lifo, token = '0', opts = {}) {
727
822
  const client = await this.queue.client;
728
- const args = this.retryJobArgs(jobId, lifo, token, fieldsToUpdate);
823
+ const args = this.retryJobArgs(jobId, lifo, token, opts);
729
824
  const result = await this.execCommand(client, 'retryJob', args);
730
825
  if (result < 0) {
731
826
  throw this.finishedErrors({
@@ -863,7 +958,6 @@ export class Scripts {
863
958
  this.queue.keys.stalled,
864
959
  this.queue.keys.wait,
865
960
  this.queue.keys.active,
866
- this.queue.keys.failed,
867
961
  this.queue.keys['stalled-check'],
868
962
  this.queue.keys.meta,
869
963
  this.queue.keys.paused,
@@ -901,14 +995,12 @@ export class Scripts {
901
995
  * @param jobId - Job id
902
996
  * @returns
903
997
  */
904
- async moveJobFromActiveToWait(jobId, token) {
998
+ async moveJobFromActiveToWait(jobId, token = '0') {
905
999
  const client = await this.queue.client;
906
- const lockKey = `${this.queue.toKey(jobId)}:lock`;
907
1000
  const keys = [
908
1001
  this.queue.keys.active,
909
1002
  this.queue.keys.wait,
910
1003
  this.queue.keys.stalled,
911
- lockKey,
912
1004
  this.queue.keys.paused,
913
1005
  this.queue.keys.meta,
914
1006
  this.queue.keys.limiter,
@@ -917,8 +1009,16 @@ export class Scripts {
917
1009
  this.queue.keys.events,
918
1010
  ];
919
1011
  const args = [jobId, token, this.queue.toKey(jobId)];
920
- const pttl = await this.execCommand(client, 'moveJobFromActiveToWait', keys.concat(args));
921
- return pttl < 0 ? 0 : pttl;
1012
+ const result = await this.execCommand(client, 'moveJobFromActiveToWait', keys.concat(args));
1013
+ if (result < 0) {
1014
+ throw this.finishedErrors({
1015
+ code: result,
1016
+ jobId,
1017
+ command: 'moveJobFromActiveToWait',
1018
+ state: 'active',
1019
+ });
1020
+ }
1021
+ return result;
922
1022
  }
923
1023
  async obliterate(opts) {
924
1024
  const client = await this.queue.client;
@@ -940,7 +1040,7 @@ export class Scripts {
940
1040
  }
941
1041
  /**
942
1042
  * Paginate a set or hash keys.
943
- * @param opts
1043
+ * @param opts - options to define the pagination behaviour
944
1044
  *
945
1045
  */
946
1046
  async paginate(key, opts) {
@@ -1003,7 +1103,7 @@ export class Scripts {
1003
1103
  return new Error(`Missing lock for job ${jobId}. ${command}`);
1004
1104
  case ErrorCode.JobNotInState:
1005
1105
  return new Error(`Job ${jobId} is not in the ${state} state. ${command}`);
1006
- case ErrorCode.JobPendingDependencies:
1106
+ case ErrorCode.JobPendingChildren:
1007
1107
  return new Error(`Job ${jobId} has pending dependencies. ${command}`);
1008
1108
  case ErrorCode.ParentJobNotExist:
1009
1109
  return new Error(`Missing key for parent job ${parentKey}. ${command}`);
@@ -1013,6 +1113,8 @@ export class Scripts {
1013
1113
  return new Error(`The parent job ${parentKey} cannot be replaced. ${command}`);
1014
1114
  case ErrorCode.JobBelongsToJobScheduler:
1015
1115
  return new Error(`Job ${jobId} belongs to a job scheduler and cannot be removed directly. ${command}`);
1116
+ case ErrorCode.JobFailedChildren:
1117
+ return new Error(`Job ${jobId} has failed children. ${command}`);
1016
1118
  default:
1017
1119
  return new Error(`Unknown code ${code} error for ${jobId}. ${command}`);
1018
1120
  }
@@ -1,7 +1,8 @@
1
1
  /// <reference types="node" />
2
2
  import { URL } from 'url';
3
3
  import { AbortController } from 'node-abort-controller';
4
- import { GetNextJobOptions, IoredisListener, JobJsonRaw, Processor, RedisClient, WorkerOptions } from '../interfaces';
4
+ import { GetNextJobOptions, IoredisListener, JobJsonRaw, Processor, RedisClient, Span, WorkerOptions } from '../interfaces';
5
+ import { JobProgress } from '../types';
5
6
  import { QueueBase } from './queue-base';
6
7
  import { Repeat } from './repeat';
7
8
  import { Job } from './job';
@@ -68,7 +69,7 @@ export interface WorkerListener<DataType = any, ResultType = any, NameType exten
68
69
  * progress or any other data from within a processor to the rest of the
69
70
  * world.
70
71
  */
71
- progress: (job: Job<DataType, ResultType, NameType>, progress: number | object) => void;
72
+ progress: (job: Job<DataType, ResultType, NameType>, progress: JobProgress) => void;
72
73
  /**
73
74
  * Listen to 'ready' event.
74
75
  *
@@ -100,7 +101,6 @@ export declare class Worker<DataType = any, ResultType = any, NameType extends s
100
101
  readonly opts: WorkerOptions;
101
102
  readonly id: string;
102
103
  private abortDelayController;
103
- private asyncFifoQueue;
104
104
  private blockingConnection;
105
105
  private blockUntil;
106
106
  private _concurrency;
@@ -108,14 +108,14 @@ export declare class Worker<DataType = any, ResultType = any, NameType extends s
108
108
  private drained;
109
109
  private extendLocksTimer;
110
110
  private limitUntil;
111
- private resumeWorker;
112
111
  private stalledCheckStopper?;
113
112
  private waiting;
114
113
  private _repeat;
115
114
  protected _jobScheduler: JobScheduler;
116
- protected paused: Promise<void>;
115
+ protected paused: boolean;
117
116
  protected processFn: Processor<DataType, ResultType, NameType>;
118
117
  protected running: boolean;
118
+ protected mainLoopRunning: Promise<void> | null;
119
119
  static RateLimitError(): Error;
120
120
  constructor(name: string, processor?: string | URL | null | Processor<DataType, ResultType, NameType>, opts?: WorkerOptions, Connection?: typeof RedisConnection);
121
121
  emit<U extends keyof WorkerListener<DataType, ResultType, NameType>>(event: U, ...args: Parameters<WorkerListener<DataType, ResultType, NameType>[U]>): boolean;
@@ -136,6 +136,13 @@ export declare class Worker<DataType = any, ResultType = any, NameType extends s
136
136
  get repeat(): Promise<Repeat>;
137
137
  get jobScheduler(): Promise<JobScheduler>;
138
138
  run(): Promise<void>;
139
+ private waitForRateLimit;
140
+ /**
141
+ * This is the main loop in BullMQ. Its goals are to fetch jobs from the queue
142
+ * as efficiently as possible, providing concurrency and minimal unnecessary calls
143
+ * to Redis.
144
+ */
145
+ private mainLoop;
139
146
  /**
140
147
  * Returns a promise that resolves to the next job in queue.
141
148
  * @param token - worker token to be assigned to retrieved job
@@ -150,10 +157,11 @@ export declare class Worker<DataType = any, ResultType = any, NameType extends s
150
157
  */
151
158
  rateLimit(expireTimeMs: number): Promise<void>;
152
159
  get minimumBlockTimeout(): number;
160
+ private isRateLimited;
153
161
  protected moveToActive(client: RedisClient, token: string, name?: string): Promise<Job<DataType, ResultType, NameType>>;
154
162
  private waitForJob;
155
163
  protected getBlockTimeout(blockUntil: number): number;
156
- protected getLimitUntil(limitUntil: number): number;
164
+ protected getRateLimitDelay(delay: number): number;
157
165
  /**
158
166
  *
159
167
  * This function is exposed only for testing purposes.
@@ -165,6 +173,20 @@ export declare class Worker<DataType = any, ResultType = any, NameType extends s
165
173
  job: Job;
166
174
  ts: number;
167
175
  }>): Promise<void | Job<DataType, ResultType, NameType>>;
176
+ protected handleCompleted(result: ResultType, job: Job<DataType, ResultType, NameType>, token: string, fetchNextCallback: () => boolean, jobsInProgress: Set<{
177
+ job: Job;
178
+ ts: number;
179
+ }>, inProgressItem: {
180
+ job: Job;
181
+ ts: number;
182
+ }, span?: Span): Promise<Job<DataType, ResultType, NameType>>;
183
+ protected handleFailed(err: Error, job: Job<DataType, ResultType, NameType>, token: string, fetchNextCallback: () => boolean, jobsInProgress: Set<{
184
+ job: Job;
185
+ ts: number;
186
+ }>, inProgressItem: {
187
+ job: Job;
188
+ ts: number;
189
+ }, span?: Span): Promise<Job<DataType, ResultType, NameType>>;
168
190
  /**
169
191
  *
170
192
  * Pauses the processing of this queue only for this worker.
@@ -226,6 +248,5 @@ export declare class Worker<DataType = any, ResultType = any, NameType extends s
226
248
  private retryIfFailed;
227
249
  protected extendLocks(jobs: Job[]): Promise<void>;
228
250
  private moveStalledJobsToWait;
229
- private notifyFailedJobs;
230
251
  private moveLimitedBackToWait;
231
252
  }