@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
@@ -9,8 +9,9 @@ const content = `--[[
9
9
  Input:
10
10
  KEYS[1] 'meta'
11
11
  KEYS[2] 'id'
12
- KEYS[3] 'completed'
13
- KEYS[4] events stream key
12
+ KEYS[3] 'delayed'
13
+ KEYS[4] 'completed'
14
+ KEYS[5] events stream key
14
15
  ARGV[1] msgpacked arguments array
15
16
  [1] key prefix,
16
17
  [2] custom id (will not generate one automatically)
@@ -30,8 +31,8 @@ const content = `--[[
30
31
  ]]
31
32
  local metaKey = KEYS[1]
32
33
  local idKey = KEYS[2]
33
- local completedKey = KEYS[3]
34
- local eventsKey = KEYS[4]
34
+ local completedKey = KEYS[4]
35
+ local eventsKey = KEYS[5]
35
36
  local jobId
36
37
  local jobIdKey
37
38
  local rcall = redis.call
@@ -47,36 +48,85 @@ local parentData
47
48
  --[[
48
49
  Function to debounce a job.
49
50
  ]]
50
- local function deduplicateJob(prefixKey, deduplicationOpts, jobId, deduplicationKey, eventsKey, maxEvents)
51
- local deduplicationId = deduplicationOpts and deduplicationOpts['id']
52
- if deduplicationId then
53
- local ttl = deduplicationOpts['ttl']
54
- local deduplicationKeyExists
55
- if ttl then
56
- deduplicationKeyExists = not rcall('SET', deduplicationKey, jobId, 'PX', ttl, 'NX')
57
- else
58
- deduplicationKeyExists = not rcall('SET', deduplicationKey, jobId, 'NX')
59
- end
60
- if deduplicationKeyExists then
61
- local currentDebounceJobId = rcall('GET', deduplicationKey)
62
- rcall("XADD", eventsKey, "MAXLEN", "~", maxEvents, "*", "event",
63
- "debounced", "jobId", currentDebounceJobId, "debounceId", deduplicationId)
64
- rcall("XADD", eventsKey, "MAXLEN", "~", maxEvents, "*", "event",
65
- "deduplicated", "jobId", currentDebounceJobId, "deduplicationId", deduplicationId)
66
- return currentDebounceJobId
51
+ -- Includes
52
+ --[[
53
+ Function to remove job keys.
54
+ ]]
55
+ local function removeJobKeys(jobKey)
56
+ return rcall("DEL", jobKey, jobKey .. ':logs', jobKey .. ':dependencies',
57
+ jobKey .. ':processed', jobKey .. ':failed', jobKey .. ':unsuccessful')
58
+ end
59
+ local function deduplicateJob(deduplicationOpts, jobId, delayedKey, deduplicationKey, eventsKey, maxEvents,
60
+ prefix)
61
+ local deduplicationId = deduplicationOpts and deduplicationOpts['id']
62
+ if deduplicationId then
63
+ local ttl = deduplicationOpts['ttl']
64
+ if deduplicationOpts['replace'] and ttl and ttl > 0 then
65
+ local currentDebounceJobId = rcall('GET', deduplicationKey)
66
+ if currentDebounceJobId then
67
+ if rcall("ZREM", delayedKey, currentDebounceJobId) > 0 then
68
+ removeJobKeys(prefix .. currentDebounceJobId)
69
+ rcall("XADD", eventsKey, "*", "event", "removed", "jobId", currentDebounceJobId,
70
+ "prev", "delayed")
71
+ if deduplicationOpts['extend'] then
72
+ rcall('SET', deduplicationKey, jobId, 'PX', ttl)
73
+ else
74
+ rcall('SET', deduplicationKey, jobId, 'KEEPTTL')
75
+ end
76
+ rcall("XADD", eventsKey, "MAXLEN", "~", maxEvents, "*", "event", "deduplicated", "jobId",
77
+ jobId, "deduplicationId", deduplicationId, "deduplicatedJobId", currentDebounceJobId)
78
+ return
79
+ else
80
+ return currentDebounceJobId
81
+ end
82
+ else
83
+ rcall('SET', deduplicationKey, jobId, 'PX', ttl)
84
+ return
85
+ end
86
+ else
87
+ local ttl = deduplicationOpts['ttl']
88
+ local deduplicationKeyExists
89
+ if ttl then
90
+ if deduplicationOpts['extend'] then
91
+ local currentDebounceJobId = rcall('GET', deduplicationKey)
92
+ if currentDebounceJobId then
93
+ rcall('SET', deduplicationKey, currentDebounceJobId, 'PX', ttl)
94
+ rcall("XADD", eventsKey, "MAXLEN", "~", maxEvents, "*", "event", "debounced",
95
+ "jobId", currentDebounceJobId, "debounceId", deduplicationId)
96
+ rcall("XADD", eventsKey, "MAXLEN", "~", maxEvents, "*", "event", "deduplicated", "jobId",
97
+ currentDebounceJobId, "deduplicationId", deduplicationId, "deduplicatedJobId", jobId)
98
+ return currentDebounceJobId
99
+ else
100
+ rcall('SET', deduplicationKey, jobId, 'PX', ttl)
101
+ return
102
+ end
103
+ else
104
+ deduplicationKeyExists = not rcall('SET', deduplicationKey, jobId, 'PX', ttl, 'NX')
105
+ end
106
+ else
107
+ deduplicationKeyExists = not rcall('SET', deduplicationKey, jobId, 'NX')
108
+ end
109
+ if deduplicationKeyExists then
110
+ local currentDebounceJobId = rcall('GET', deduplicationKey)
111
+ rcall("XADD", eventsKey, "MAXLEN", "~", maxEvents, "*", "event", "debounced", "jobId",
112
+ currentDebounceJobId, "debounceId", deduplicationId)
113
+ rcall("XADD", eventsKey, "MAXLEN", "~", maxEvents, "*", "event", "deduplicated", "jobId",
114
+ currentDebounceJobId, "deduplicationId", deduplicationId, "deduplicatedJobId", jobId)
115
+ return currentDebounceJobId
116
+ end
117
+ end
67
118
  end
68
- end
69
119
  end
70
120
  --[[
71
121
  Function to get max events value or set by default 10000.
72
122
  ]]
73
123
  local function getOrSetMaxEvents(metaKey)
74
- local maxEvents = rcall("HGET", metaKey, "opts.maxLenEvents")
75
- if not maxEvents then
76
- maxEvents = 10000
77
- rcall("HSET", metaKey, "opts.maxLenEvents", maxEvents)
78
- end
79
- return maxEvents
124
+ local maxEvents = rcall("HGET", metaKey, "opts.maxLenEvents")
125
+ if not maxEvents then
126
+ maxEvents = 10000
127
+ rcall("HSET", metaKey, "opts.maxLenEvents", maxEvents)
128
+ end
129
+ return maxEvents
80
130
  end
81
131
  --[[
82
132
  Function to handle the case when job is duplicated.
@@ -94,7 +144,16 @@ end
94
144
  ]]
95
145
  -- Includes
96
146
  --[[
97
- Validate and move parent to active if needed.
147
+ Validate and move parent to a wait status (waiting, delayed or prioritized)
148
+ if no pending dependencies.
149
+ ]]
150
+ -- Includes
151
+ --[[
152
+ Validate and move parent to a wait status (waiting, delayed or prioritized) if needed.
153
+ ]]
154
+ -- Includes
155
+ --[[
156
+ Move parent to a wait status (wait, prioritized or delayed)
98
157
  ]]
99
158
  -- Includes
100
159
  --[[
@@ -108,7 +167,7 @@ local function getNextDelayedTimestamp(delayedKey)
108
167
  local result = rcall("ZRANGE", delayedKey, 0, 0, "WITHSCORES")
109
168
  if #result then
110
169
  local nextTimestamp = tonumber(result[2])
111
- if nextTimestamp ~= nil then
170
+ if nextTimestamp ~= nil then
112
171
  return nextTimestamp / 0x1000
113
172
  end
114
173
  end
@@ -141,10 +200,16 @@ end
141
200
  Function to add job considering priority.
142
201
  ]]
143
202
  -- Includes
203
+ --[[
204
+ Function to get priority score.
205
+ ]]
206
+ local function getPriorityScore(priority, priorityCounterKey)
207
+ local prioCounter = rcall("INCR", priorityCounterKey)
208
+ return priority * 0x100000000 + prioCounter % 0x100000000
209
+ end
144
210
  local function addJobWithPriority(markerKey, prioritizedKey, priority, jobId, priorityCounterKey,
145
211
  isPausedOrMaxed)
146
- local prioCounter = rcall("INCR", priorityCounterKey)
147
- local score = priority * 0x100000000 + prioCounter % 0x100000000
212
+ local score = getPriorityScore(priority, priorityCounterKey)
148
213
  rcall("ZADD", prioritizedKey, score, jobId)
149
214
  addBaseMarkerIfNeeded(markerKey, isPausedOrMaxed)
150
215
  end
@@ -184,57 +249,64 @@ local function getTargetQueueList(queueMetaKey, activeKey, waitKey, pausedKey)
184
249
  end
185
250
  return waitKey, false
186
251
  end
187
- local function moveParentToWaitIfNeeded(parentQueueKey, parentDependenciesKey,
188
- parentKey, parentId, timestamp)
189
- local isParentActive = rcall("ZSCORE",
190
- parentQueueKey .. ":waiting-children", parentId)
191
- if rcall("SCARD", parentDependenciesKey) == 0 and isParentActive then
192
- rcall("ZREM", parentQueueKey .. ":waiting-children", parentId)
193
- local parentWaitKey = parentQueueKey .. ":wait"
194
- local parentPausedKey = parentQueueKey .. ":paused"
195
- local parentActiveKey = parentQueueKey .. ":active"
196
- local parentMetaKey = parentQueueKey .. ":meta"
197
- local parentMarkerKey = parentQueueKey .. ":marker"
198
- local jobAttributes = rcall("HMGET", parentKey, "priority", "delay")
199
- local priority = tonumber(jobAttributes[1]) or 0
200
- local delay = tonumber(jobAttributes[2]) or 0
201
- if delay > 0 then
202
- local delayedTimestamp = tonumber(timestamp) + delay
203
- local score = delayedTimestamp * 0x1000
204
- local parentDelayedKey = parentQueueKey .. ":delayed"
205
- rcall("ZADD", parentDelayedKey, score, parentId)
206
- rcall("XADD", parentQueueKey .. ":events", "*", "event", "delayed",
207
- "jobId", parentId, "delay", delayedTimestamp)
208
- addDelayMarkerIfNeeded(parentMarkerKey, parentDelayedKey)
252
+ local function moveParentToWait(parentQueueKey, parentKey, parentId, timestamp)
253
+ local parentWaitKey = parentQueueKey .. ":wait"
254
+ local parentPausedKey = parentQueueKey .. ":paused"
255
+ local parentActiveKey = parentQueueKey .. ":active"
256
+ local parentMetaKey = parentQueueKey .. ":meta"
257
+ local parentMarkerKey = parentQueueKey .. ":marker"
258
+ local jobAttributes = rcall("HMGET", parentKey, "priority", "delay")
259
+ local priority = tonumber(jobAttributes[1]) or 0
260
+ local delay = tonumber(jobAttributes[2]) or 0
261
+ if delay > 0 then
262
+ local delayedTimestamp = tonumber(timestamp) + delay
263
+ local score = delayedTimestamp * 0x1000
264
+ local parentDelayedKey = parentQueueKey .. ":delayed"
265
+ rcall("ZADD", parentDelayedKey, score, parentId)
266
+ rcall("XADD", parentQueueKey .. ":events", "*", "event", "delayed", "jobId", parentId, "delay",
267
+ delayedTimestamp)
268
+ addDelayMarkerIfNeeded(parentMarkerKey, parentDelayedKey)
269
+ else
270
+ if priority == 0 then
271
+ local parentTarget, isParentPausedOrMaxed = getTargetQueueList(parentMetaKey, parentActiveKey,
272
+ parentWaitKey, parentPausedKey)
273
+ addJobInTargetList(parentTarget, parentMarkerKey, "RPUSH", isParentPausedOrMaxed, parentId)
209
274
  else
210
- if priority == 0 then
211
- local parentTarget, isParentPausedOrMaxed =
212
- getTargetQueueList(parentMetaKey, parentActiveKey, parentWaitKey,
213
- parentPausedKey)
214
- addJobInTargetList(parentTarget, parentMarkerKey, "RPUSH", isParentPausedOrMaxed,
215
- parentId)
216
- else
217
- local isPausedOrMaxed = isQueuePausedOrMaxed(parentMetaKey, parentActiveKey)
218
- addJobWithPriority(parentMarkerKey,
219
- parentQueueKey .. ":prioritized", priority,
220
- parentId, parentQueueKey .. ":pc", isPausedOrMaxed)
221
- end
222
- rcall("XADD", parentQueueKey .. ":events", "*", "event", "waiting",
223
- "jobId", parentId, "prev", "waiting-children")
275
+ local isPausedOrMaxed = isQueuePausedOrMaxed(parentMetaKey, parentActiveKey)
276
+ addJobWithPriority(parentMarkerKey, parentQueueKey .. ":prioritized", priority, parentId,
277
+ parentQueueKey .. ":pc", isPausedOrMaxed)
224
278
  end
279
+ rcall("XADD", parentQueueKey .. ":events", "*", "event", "waiting", "jobId", parentId, "prev",
280
+ "waiting-children")
281
+ end
282
+ end
283
+ local function moveParentToWaitIfNeeded(parentQueueKey, parentKey, parentId, timestamp)
284
+ if rcall("EXISTS", parentKey) == 1 then
285
+ local parentWaitingChildrenKey = parentQueueKey .. ":waiting-children"
286
+ if rcall("ZSCORE", parentWaitingChildrenKey, parentId) then
287
+ rcall("ZREM", parentWaitingChildrenKey, parentId)
288
+ moveParentToWait(parentQueueKey, parentKey, parentId, timestamp)
225
289
  end
290
+ end
291
+ end
292
+ local function moveParentToWaitIfNoPendingDependencies(parentQueueKey, parentDependenciesKey, parentKey,
293
+ parentId, timestamp)
294
+ local doNotHavePendingDependencies = rcall("SCARD", parentDependenciesKey) == 0
295
+ if doNotHavePendingDependencies then
296
+ moveParentToWaitIfNeeded(parentQueueKey, parentKey, parentId, timestamp)
297
+ end
226
298
  end
227
299
  local function updateParentDepsIfNeeded(parentKey, parentQueueKey, parentDependenciesKey,
228
300
  parentId, jobIdKey, returnvalue, timestamp )
229
301
  local processedSet = parentKey .. ":processed"
230
302
  rcall("HSET", processedSet, jobIdKey, returnvalue)
231
- moveParentToWaitIfNeeded(parentQueueKey, parentDependenciesKey, parentKey, parentId, timestamp)
303
+ moveParentToWaitIfNoPendingDependencies(parentQueueKey, parentDependenciesKey, parentKey, parentId, timestamp)
232
304
  end
233
305
  local function updateExistingJobsParent(parentKey, parent, parentData,
234
306
  parentDependenciesKey, completedKey,
235
307
  jobIdKey, jobId, timestamp)
236
308
  if parentKey ~= nil then
237
- if rcall("ZSCORE", completedKey, jobId) ~= false then
309
+ if rcall("ZSCORE", completedKey, jobId) then
238
310
  local returnvalue = rcall("HGET", jobIdKey, "returnvalue")
239
311
  updateParentDepsIfNeeded(parentKey, parent['queueKey'],
240
312
  parentDependenciesKey, parent['id'],
@@ -280,7 +352,7 @@ local function storeJob(eventsKey, jobIdKey, jobId, name, data, opts, timestamp,
280
352
  table.insert(optionalValues, "parent")
281
353
  table.insert(optionalValues, parentData)
282
354
  end
283
- if repeatJobKey ~= nil then
355
+ if repeatJobKey then
284
356
  table.insert(optionalValues, "rjk")
285
357
  table.insert(optionalValues, repeatJobKey)
286
358
  end
@@ -314,8 +386,8 @@ else
314
386
  maxEvents, timestamp)
315
387
  end
316
388
  end
317
- local deduplicationJobId = deduplicateJob(args[1], opts['de'],
318
- jobId, deduplicationKey, eventsKey, maxEvents)
389
+ local deduplicationJobId = deduplicateJob(opts['de'], jobId, KEYS[3],
390
+ deduplicationKey, eventsKey, maxEvents, args[1])
319
391
  if deduplicationJobId then
320
392
  return deduplicationJobId
321
393
  end
@@ -335,6 +407,6 @@ return jobId .. "" -- convert to string
335
407
  exports.addParentJob = {
336
408
  name: 'addParentJob',
337
409
  content,
338
- keys: 4,
410
+ keys: 5,
339
411
  };
340
- //# sourceMappingURL=addParentJob-4.js.map
412
+ //# sourceMappingURL=addParentJob-5.js.map
@@ -11,10 +11,11 @@ const content = `--[[
11
11
  KEYS[2] 'meta'
12
12
  KEYS[3] 'id'
13
13
  KEYS[4] 'prioritized'
14
- KEYS[5] 'completed'
15
- KEYS[6] 'active'
16
- KEYS[7] events stream key
17
- KEYS[8] 'pc' priority counter
14
+ KEYS[5] 'delayed'
15
+ KEYS[6] 'completed'
16
+ KEYS[7] 'active'
17
+ KEYS[8] events stream key
18
+ KEYS[9] 'pc' priority counter
18
19
  ARGV[1] msgpacked arguments array
19
20
  [1] key prefix,
20
21
  [2] custom id (will not generate one automatically)
@@ -35,10 +36,10 @@ const content = `--[[
35
36
  local metaKey = KEYS[2]
36
37
  local idKey = KEYS[3]
37
38
  local priorityKey = KEYS[4]
38
- local completedKey = KEYS[5]
39
- local activeKey = KEYS[6]
40
- local eventsKey = KEYS[7]
41
- local priorityCounterKey = KEYS[8]
39
+ local completedKey = KEYS[6]
40
+ local activeKey = KEYS[7]
41
+ local eventsKey = KEYS[8]
42
+ local priorityCounterKey = KEYS[9]
42
43
  local jobId
43
44
  local jobIdKey
44
45
  local rcall = redis.call
@@ -63,35 +64,90 @@ local function addBaseMarkerIfNeeded(markerKey, isPausedOrMaxed)
63
64
  rcall("ZADD", markerKey, 0, "0")
64
65
  end
65
66
  end
67
+ --[[
68
+ Function to get priority score.
69
+ ]]
70
+ local function getPriorityScore(priority, priorityCounterKey)
71
+ local prioCounter = rcall("INCR", priorityCounterKey)
72
+ return priority * 0x100000000 + prioCounter % 0x100000000
73
+ end
66
74
  local function addJobWithPriority(markerKey, prioritizedKey, priority, jobId, priorityCounterKey,
67
75
  isPausedOrMaxed)
68
- local prioCounter = rcall("INCR", priorityCounterKey)
69
- local score = priority * 0x100000000 + prioCounter % 0x100000000
76
+ local score = getPriorityScore(priority, priorityCounterKey)
70
77
  rcall("ZADD", prioritizedKey, score, jobId)
71
78
  addBaseMarkerIfNeeded(markerKey, isPausedOrMaxed)
72
79
  end
73
80
  --[[
74
81
  Function to debounce a job.
75
82
  ]]
76
- local function deduplicateJob(prefixKey, deduplicationOpts, jobId, deduplicationKey, eventsKey, maxEvents)
77
- local deduplicationId = deduplicationOpts and deduplicationOpts['id']
78
- if deduplicationId then
79
- local ttl = deduplicationOpts['ttl']
80
- local deduplicationKeyExists
81
- if ttl then
82
- deduplicationKeyExists = not rcall('SET', deduplicationKey, jobId, 'PX', ttl, 'NX')
83
- else
84
- deduplicationKeyExists = not rcall('SET', deduplicationKey, jobId, 'NX')
85
- end
86
- if deduplicationKeyExists then
87
- local currentDebounceJobId = rcall('GET', deduplicationKey)
88
- rcall("XADD", eventsKey, "MAXLEN", "~", maxEvents, "*", "event",
89
- "debounced", "jobId", currentDebounceJobId, "debounceId", deduplicationId)
90
- rcall("XADD", eventsKey, "MAXLEN", "~", maxEvents, "*", "event",
91
- "deduplicated", "jobId", currentDebounceJobId, "deduplicationId", deduplicationId)
92
- return currentDebounceJobId
83
+ -- Includes
84
+ --[[
85
+ Function to remove job keys.
86
+ ]]
87
+ local function removeJobKeys(jobKey)
88
+ return rcall("DEL", jobKey, jobKey .. ':logs', jobKey .. ':dependencies',
89
+ jobKey .. ':processed', jobKey .. ':failed', jobKey .. ':unsuccessful')
90
+ end
91
+ local function deduplicateJob(deduplicationOpts, jobId, delayedKey, deduplicationKey, eventsKey, maxEvents,
92
+ prefix)
93
+ local deduplicationId = deduplicationOpts and deduplicationOpts['id']
94
+ if deduplicationId then
95
+ local ttl = deduplicationOpts['ttl']
96
+ if deduplicationOpts['replace'] and ttl and ttl > 0 then
97
+ local currentDebounceJobId = rcall('GET', deduplicationKey)
98
+ if currentDebounceJobId then
99
+ if rcall("ZREM", delayedKey, currentDebounceJobId) > 0 then
100
+ removeJobKeys(prefix .. currentDebounceJobId)
101
+ rcall("XADD", eventsKey, "*", "event", "removed", "jobId", currentDebounceJobId,
102
+ "prev", "delayed")
103
+ if deduplicationOpts['extend'] then
104
+ rcall('SET', deduplicationKey, jobId, 'PX', ttl)
105
+ else
106
+ rcall('SET', deduplicationKey, jobId, 'KEEPTTL')
107
+ end
108
+ rcall("XADD", eventsKey, "MAXLEN", "~", maxEvents, "*", "event", "deduplicated", "jobId",
109
+ jobId, "deduplicationId", deduplicationId, "deduplicatedJobId", currentDebounceJobId)
110
+ return
111
+ else
112
+ return currentDebounceJobId
113
+ end
114
+ else
115
+ rcall('SET', deduplicationKey, jobId, 'PX', ttl)
116
+ return
117
+ end
118
+ else
119
+ local ttl = deduplicationOpts['ttl']
120
+ local deduplicationKeyExists
121
+ if ttl then
122
+ if deduplicationOpts['extend'] then
123
+ local currentDebounceJobId = rcall('GET', deduplicationKey)
124
+ if currentDebounceJobId then
125
+ rcall('SET', deduplicationKey, currentDebounceJobId, 'PX', ttl)
126
+ rcall("XADD", eventsKey, "MAXLEN", "~", maxEvents, "*", "event", "debounced",
127
+ "jobId", currentDebounceJobId, "debounceId", deduplicationId)
128
+ rcall("XADD", eventsKey, "MAXLEN", "~", maxEvents, "*", "event", "deduplicated", "jobId",
129
+ currentDebounceJobId, "deduplicationId", deduplicationId, "deduplicatedJobId", jobId)
130
+ return currentDebounceJobId
131
+ else
132
+ rcall('SET', deduplicationKey, jobId, 'PX', ttl)
133
+ return
134
+ end
135
+ else
136
+ deduplicationKeyExists = not rcall('SET', deduplicationKey, jobId, 'PX', ttl, 'NX')
137
+ end
138
+ else
139
+ deduplicationKeyExists = not rcall('SET', deduplicationKey, jobId, 'NX')
140
+ end
141
+ if deduplicationKeyExists then
142
+ local currentDebounceJobId = rcall('GET', deduplicationKey)
143
+ rcall("XADD", eventsKey, "MAXLEN", "~", maxEvents, "*", "event", "debounced", "jobId",
144
+ currentDebounceJobId, "debounceId", deduplicationId)
145
+ rcall("XADD", eventsKey, "MAXLEN", "~", maxEvents, "*", "event", "deduplicated", "jobId",
146
+ currentDebounceJobId, "deduplicationId", deduplicationId, "deduplicatedJobId", jobId)
147
+ return currentDebounceJobId
148
+ end
149
+ end
93
150
  end
94
- end
95
151
  end
96
152
  --[[
97
153
  Function to store a job
@@ -109,7 +165,7 @@ local function storeJob(eventsKey, jobIdKey, jobId, name, data, opts, timestamp,
109
165
  table.insert(optionalValues, "parent")
110
166
  table.insert(optionalValues, parentData)
111
167
  end
112
- if repeatJobKey ~= nil then
168
+ if repeatJobKey then
113
169
  table.insert(optionalValues, "rjk")
114
170
  table.insert(optionalValues, repeatJobKey)
115
171
  end
@@ -127,12 +183,12 @@ end
127
183
  Function to get max events value or set by default 10000.
128
184
  ]]
129
185
  local function getOrSetMaxEvents(metaKey)
130
- local maxEvents = rcall("HGET", metaKey, "opts.maxLenEvents")
131
- if not maxEvents then
132
- maxEvents = 10000
133
- rcall("HSET", metaKey, "opts.maxLenEvents", maxEvents)
134
- end
135
- return maxEvents
186
+ local maxEvents = rcall("HGET", metaKey, "opts.maxLenEvents")
187
+ if not maxEvents then
188
+ maxEvents = 10000
189
+ rcall("HSET", metaKey, "opts.maxLenEvents", maxEvents)
190
+ end
191
+ return maxEvents
136
192
  end
137
193
  --[[
138
194
  Function to handle the case when job is duplicated.
@@ -150,7 +206,16 @@ end
150
206
  ]]
151
207
  -- Includes
152
208
  --[[
153
- Validate and move parent to active if needed.
209
+ Validate and move parent to a wait status (waiting, delayed or prioritized)
210
+ if no pending dependencies.
211
+ ]]
212
+ -- Includes
213
+ --[[
214
+ Validate and move parent to a wait status (waiting, delayed or prioritized) if needed.
215
+ ]]
216
+ -- Includes
217
+ --[[
218
+ Move parent to a wait status (wait, prioritized or delayed)
154
219
  ]]
155
220
  -- Includes
156
221
  --[[
@@ -164,7 +229,7 @@ local function getNextDelayedTimestamp(delayedKey)
164
229
  local result = rcall("ZRANGE", delayedKey, 0, 0, "WITHSCORES")
165
230
  if #result then
166
231
  local nextTimestamp = tonumber(result[2])
167
- if nextTimestamp ~= nil then
232
+ if nextTimestamp ~= nil then
168
233
  return nextTimestamp / 0x1000
169
234
  end
170
235
  end
@@ -221,57 +286,64 @@ local function getTargetQueueList(queueMetaKey, activeKey, waitKey, pausedKey)
221
286
  end
222
287
  return waitKey, false
223
288
  end
224
- local function moveParentToWaitIfNeeded(parentQueueKey, parentDependenciesKey,
225
- parentKey, parentId, timestamp)
226
- local isParentActive = rcall("ZSCORE",
227
- parentQueueKey .. ":waiting-children", parentId)
228
- if rcall("SCARD", parentDependenciesKey) == 0 and isParentActive then
229
- rcall("ZREM", parentQueueKey .. ":waiting-children", parentId)
230
- local parentWaitKey = parentQueueKey .. ":wait"
231
- local parentPausedKey = parentQueueKey .. ":paused"
232
- local parentActiveKey = parentQueueKey .. ":active"
233
- local parentMetaKey = parentQueueKey .. ":meta"
234
- local parentMarkerKey = parentQueueKey .. ":marker"
235
- local jobAttributes = rcall("HMGET", parentKey, "priority", "delay")
236
- local priority = tonumber(jobAttributes[1]) or 0
237
- local delay = tonumber(jobAttributes[2]) or 0
238
- if delay > 0 then
239
- local delayedTimestamp = tonumber(timestamp) + delay
240
- local score = delayedTimestamp * 0x1000
241
- local parentDelayedKey = parentQueueKey .. ":delayed"
242
- rcall("ZADD", parentDelayedKey, score, parentId)
243
- rcall("XADD", parentQueueKey .. ":events", "*", "event", "delayed",
244
- "jobId", parentId, "delay", delayedTimestamp)
245
- addDelayMarkerIfNeeded(parentMarkerKey, parentDelayedKey)
289
+ local function moveParentToWait(parentQueueKey, parentKey, parentId, timestamp)
290
+ local parentWaitKey = parentQueueKey .. ":wait"
291
+ local parentPausedKey = parentQueueKey .. ":paused"
292
+ local parentActiveKey = parentQueueKey .. ":active"
293
+ local parentMetaKey = parentQueueKey .. ":meta"
294
+ local parentMarkerKey = parentQueueKey .. ":marker"
295
+ local jobAttributes = rcall("HMGET", parentKey, "priority", "delay")
296
+ local priority = tonumber(jobAttributes[1]) or 0
297
+ local delay = tonumber(jobAttributes[2]) or 0
298
+ if delay > 0 then
299
+ local delayedTimestamp = tonumber(timestamp) + delay
300
+ local score = delayedTimestamp * 0x1000
301
+ local parentDelayedKey = parentQueueKey .. ":delayed"
302
+ rcall("ZADD", parentDelayedKey, score, parentId)
303
+ rcall("XADD", parentQueueKey .. ":events", "*", "event", "delayed", "jobId", parentId, "delay",
304
+ delayedTimestamp)
305
+ addDelayMarkerIfNeeded(parentMarkerKey, parentDelayedKey)
306
+ else
307
+ if priority == 0 then
308
+ local parentTarget, isParentPausedOrMaxed = getTargetQueueList(parentMetaKey, parentActiveKey,
309
+ parentWaitKey, parentPausedKey)
310
+ addJobInTargetList(parentTarget, parentMarkerKey, "RPUSH", isParentPausedOrMaxed, parentId)
246
311
  else
247
- if priority == 0 then
248
- local parentTarget, isParentPausedOrMaxed =
249
- getTargetQueueList(parentMetaKey, parentActiveKey, parentWaitKey,
250
- parentPausedKey)
251
- addJobInTargetList(parentTarget, parentMarkerKey, "RPUSH", isParentPausedOrMaxed,
252
- parentId)
253
- else
254
- local isPausedOrMaxed = isQueuePausedOrMaxed(parentMetaKey, parentActiveKey)
255
- addJobWithPriority(parentMarkerKey,
256
- parentQueueKey .. ":prioritized", priority,
257
- parentId, parentQueueKey .. ":pc", isPausedOrMaxed)
258
- end
259
- rcall("XADD", parentQueueKey .. ":events", "*", "event", "waiting",
260
- "jobId", parentId, "prev", "waiting-children")
312
+ local isPausedOrMaxed = isQueuePausedOrMaxed(parentMetaKey, parentActiveKey)
313
+ addJobWithPriority(parentMarkerKey, parentQueueKey .. ":prioritized", priority, parentId,
314
+ parentQueueKey .. ":pc", isPausedOrMaxed)
261
315
  end
316
+ rcall("XADD", parentQueueKey .. ":events", "*", "event", "waiting", "jobId", parentId, "prev",
317
+ "waiting-children")
318
+ end
319
+ end
320
+ local function moveParentToWaitIfNeeded(parentQueueKey, parentKey, parentId, timestamp)
321
+ if rcall("EXISTS", parentKey) == 1 then
322
+ local parentWaitingChildrenKey = parentQueueKey .. ":waiting-children"
323
+ if rcall("ZSCORE", parentWaitingChildrenKey, parentId) then
324
+ rcall("ZREM", parentWaitingChildrenKey, parentId)
325
+ moveParentToWait(parentQueueKey, parentKey, parentId, timestamp)
262
326
  end
327
+ end
328
+ end
329
+ local function moveParentToWaitIfNoPendingDependencies(parentQueueKey, parentDependenciesKey, parentKey,
330
+ parentId, timestamp)
331
+ local doNotHavePendingDependencies = rcall("SCARD", parentDependenciesKey) == 0
332
+ if doNotHavePendingDependencies then
333
+ moveParentToWaitIfNeeded(parentQueueKey, parentKey, parentId, timestamp)
334
+ end
263
335
  end
264
336
  local function updateParentDepsIfNeeded(parentKey, parentQueueKey, parentDependenciesKey,
265
337
  parentId, jobIdKey, returnvalue, timestamp )
266
338
  local processedSet = parentKey .. ":processed"
267
339
  rcall("HSET", processedSet, jobIdKey, returnvalue)
268
- moveParentToWaitIfNeeded(parentQueueKey, parentDependenciesKey, parentKey, parentId, timestamp)
340
+ moveParentToWaitIfNoPendingDependencies(parentQueueKey, parentDependenciesKey, parentKey, parentId, timestamp)
269
341
  end
270
342
  local function updateExistingJobsParent(parentKey, parent, parentData,
271
343
  parentDependenciesKey, completedKey,
272
344
  jobIdKey, jobId, timestamp)
273
345
  if parentKey ~= nil then
274
- if rcall("ZSCORE", completedKey, jobId) ~= false then
346
+ if rcall("ZSCORE", completedKey, jobId) then
275
347
  local returnvalue = rcall("HGET", jobIdKey, "returnvalue")
276
348
  updateParentDepsIfNeeded(parentKey, parent['queueKey'],
277
349
  parentDependenciesKey, parent['id'],
@@ -321,8 +393,8 @@ else
321
393
  maxEvents, timestamp)
322
394
  end
323
395
  end
324
- local deduplicationJobId = deduplicateJob(args[1], opts['de'],
325
- jobId, deduplicationKey, eventsKey, maxEvents)
396
+ local deduplicationJobId = deduplicateJob(opts['de'], jobId, KEYS[5],
397
+ deduplicationKey, eventsKey, maxEvents, args[1])
326
398
  if deduplicationJobId then
327
399
  return deduplicationJobId
328
400
  end
@@ -345,6 +417,6 @@ return jobId .. "" -- convert to string
345
417
  exports.addPrioritizedJob = {
346
418
  name: 'addPrioritizedJob',
347
419
  content,
348
- keys: 8,
420
+ keys: 9,
349
421
  };
350
- //# sourceMappingURL=addPrioritizedJob-8.js.map
422
+ //# sourceMappingURL=addPrioritizedJob-9.js.map