@tachybase/plugin-adapter-bullmq 1.3.17 → 1.3.19

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