@tachybase/plugin-adapter-bullmq 1.3.16 → 1.3.18

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (348) hide show
  1. package/dist/externalVersion.js +2 -2
  2. package/dist/index.js +4 -4
  3. package/dist/node_modules/@bull-board/api/dist/src/handlers/error.d.ts +4 -2
  4. package/dist/node_modules/@bull-board/api/dist/src/handlers/error.js +2 -2
  5. package/dist/node_modules/@bull-board/api/dist/src/handlers/pauseAll.d.ts +4 -0
  6. package/dist/node_modules/@bull-board/api/dist/src/handlers/pauseAll.js +15 -0
  7. package/dist/node_modules/@bull-board/api/dist/src/handlers/queues.js +4 -0
  8. package/dist/node_modules/@bull-board/api/dist/src/handlers/resumeAll.d.ts +4 -0
  9. package/dist/node_modules/@bull-board/api/dist/src/handlers/resumeAll.js +15 -0
  10. package/dist/node_modules/@bull-board/api/dist/src/index.js +1 -1
  11. package/dist/node_modules/@bull-board/api/dist/src/queueAdapters/base.d.ts +4 -0
  12. package/dist/node_modules/@bull-board/api/dist/src/queueAdapters/base.js +6 -0
  13. package/dist/node_modules/@bull-board/api/dist/src/queueAdapters/bull.js +6 -4
  14. package/dist/node_modules/@bull-board/api/dist/src/routes.js +4 -0
  15. package/dist/node_modules/@bull-board/api/dist/typings/app.d.ts +22 -2
  16. package/dist/node_modules/@bull-board/api/package.json +1 -1
  17. package/dist/node_modules/@bull-board/koa/dist/KoaAdapter.js +1 -1
  18. package/dist/node_modules/@bull-board/koa/dist/index.js +101 -101
  19. package/dist/node_modules/@bull-board/koa/package.json +1 -1
  20. package/dist/node_modules/bullmq/dist/cjs/classes/backoffs.js +18 -5
  21. package/dist/node_modules/bullmq/dist/cjs/classes/child-pool.js +7 -2
  22. package/dist/node_modules/bullmq/dist/cjs/classes/child-processor.js +59 -5
  23. package/dist/node_modules/bullmq/dist/cjs/classes/child.js +3 -1
  24. package/dist/node_modules/bullmq/dist/cjs/classes/errors/index.js +2 -1
  25. package/dist/node_modules/bullmq/dist/cjs/classes/errors/waiting-error.js +19 -0
  26. package/dist/node_modules/bullmq/dist/cjs/classes/flow-producer.js +21 -5
  27. package/dist/node_modules/bullmq/dist/cjs/classes/index.js +1 -0
  28. package/dist/node_modules/bullmq/dist/cjs/classes/job-scheduler.js +88 -62
  29. package/dist/node_modules/bullmq/dist/cjs/classes/job.js +216 -109
  30. package/dist/node_modules/bullmq/dist/cjs/classes/main-base.js +1 -1
  31. package/dist/node_modules/bullmq/dist/cjs/classes/queue-base.js +10 -9
  32. package/dist/node_modules/bullmq/dist/cjs/classes/queue-getters.js +34 -14
  33. package/dist/node_modules/bullmq/dist/cjs/classes/queue.js +19 -13
  34. package/dist/node_modules/bullmq/dist/cjs/classes/redis-connection.js +16 -9
  35. package/dist/node_modules/bullmq/dist/cjs/classes/repeat.js +1 -1
  36. package/dist/node_modules/bullmq/dist/cjs/classes/sandbox.js +54 -28
  37. package/dist/node_modules/bullmq/dist/cjs/classes/scripts.js +141 -39
  38. package/dist/node_modules/bullmq/dist/cjs/classes/worker.js +191 -182
  39. package/dist/node_modules/bullmq/dist/cjs/commands/addDelayedJob-6.lua +6 -17
  40. package/dist/node_modules/bullmq/dist/cjs/commands/addJobScheduler-11.lua +123 -0
  41. package/dist/node_modules/bullmq/dist/{esm/commands/addParentJob-4.lua → cjs/commands/addParentJob-5.lua} +7 -6
  42. package/dist/node_modules/bullmq/dist/cjs/commands/{addPrioritizedJob-8.lua → addPrioritizedJob-9.lua} +11 -10
  43. package/dist/node_modules/bullmq/dist/cjs/commands/addRepeatableJob-2.lua +2 -2
  44. package/dist/node_modules/bullmq/dist/{esm/commands/addStandardJob-8.lua → cjs/commands/addStandardJob-9.lua} +9 -8
  45. package/dist/node_modules/bullmq/dist/cjs/commands/cleanJobsInSet-3.lua +9 -5
  46. package/dist/node_modules/bullmq/dist/cjs/commands/drain-5.lua +16 -16
  47. package/dist/node_modules/bullmq/dist/cjs/commands/getDependencyCounts-4.lua +31 -0
  48. package/dist/node_modules/bullmq/dist/cjs/commands/getState-8.lua +5 -5
  49. package/dist/node_modules/bullmq/dist/cjs/commands/getStateV2-8.lua +8 -8
  50. package/dist/node_modules/bullmq/dist/cjs/commands/includes/addDelayedJob.lua +23 -0
  51. package/dist/node_modules/bullmq/dist/cjs/commands/includes/addJobFromScheduler.lua +37 -0
  52. package/dist/node_modules/bullmq/dist/cjs/commands/includes/addJobWithPriority.lua +2 -2
  53. package/dist/node_modules/bullmq/dist/cjs/commands/includes/cleanList.lua +4 -2
  54. package/dist/node_modules/bullmq/dist/cjs/commands/includes/cleanSet.lua +3 -11
  55. package/dist/node_modules/bullmq/dist/cjs/commands/includes/collectMetrics.lua +1 -1
  56. package/dist/node_modules/bullmq/dist/cjs/commands/includes/deduplicateJob.lua +63 -18
  57. package/dist/node_modules/bullmq/dist/cjs/commands/includes/filterOutJobsToIgnore.lua +14 -0
  58. package/dist/node_modules/bullmq/dist/cjs/commands/includes/getNextDelayedTimestamp.lua +1 -1
  59. package/dist/node_modules/bullmq/dist/cjs/commands/includes/getOrSetMaxEvents.lua +6 -6
  60. package/dist/node_modules/bullmq/dist/cjs/commands/includes/getPriorityScore.lua +8 -0
  61. package/dist/node_modules/bullmq/dist/cjs/commands/includes/isJobSchedulerJob.lua +15 -0
  62. package/dist/node_modules/bullmq/dist/cjs/commands/includes/isLocked.lua +1 -0
  63. package/dist/node_modules/bullmq/dist/cjs/commands/includes/moveChildFromDependenciesIfNeeded.lua +77 -0
  64. package/dist/node_modules/bullmq/dist/cjs/commands/includes/{moveJobFromPriorityToActive.lua → moveJobFromPrioritizedToActive.lua} +1 -1
  65. package/dist/node_modules/bullmq/dist/cjs/commands/includes/moveParentToWait.lua +45 -0
  66. package/dist/node_modules/bullmq/dist/cjs/commands/includes/moveParentToWaitIfNeeded.lua +9 -50
  67. package/dist/node_modules/bullmq/dist/cjs/commands/includes/moveParentToWaitIfNoPendingDependencies.lua +13 -0
  68. package/dist/node_modules/bullmq/dist/cjs/commands/includes/prepareJobForProcessing.lua +2 -1
  69. package/dist/node_modules/bullmq/dist/cjs/commands/includes/promoteDelayedJobs.lua +7 -3
  70. package/dist/node_modules/bullmq/dist/cjs/commands/includes/removeDeduplicationKeyIfNeededOnFinalization.lua +23 -0
  71. package/dist/node_modules/bullmq/dist/cjs/commands/includes/removeDeduplicationKeyIfNeededOnRemoval.lua +16 -0
  72. package/dist/node_modules/bullmq/dist/cjs/commands/includes/removeJob.lua +2 -2
  73. package/dist/node_modules/bullmq/dist/cjs/commands/includes/removeJobKeys.lua +2 -2
  74. package/dist/node_modules/bullmq/dist/cjs/commands/includes/removeJobWithChildren.lua +95 -0
  75. package/dist/node_modules/bullmq/dist/cjs/commands/includes/removeListJobs.lua +7 -1
  76. package/dist/node_modules/bullmq/dist/cjs/commands/includes/removeParentDependencyKey.lua +5 -5
  77. package/dist/node_modules/bullmq/dist/cjs/commands/includes/removeZSetJobs.lua +2 -8
  78. package/dist/node_modules/bullmq/dist/cjs/commands/includes/storeJob.lua +2 -2
  79. package/dist/node_modules/bullmq/dist/cjs/commands/includes/storeJobScheduler.lua +52 -0
  80. package/dist/node_modules/bullmq/dist/cjs/commands/includes/trimEvents.lua +1 -1
  81. package/dist/node_modules/bullmq/dist/cjs/commands/includes/updateExistingJobsParent.lua +1 -1
  82. package/dist/node_modules/bullmq/dist/cjs/commands/includes/updateJobFields.lua +5 -5
  83. package/dist/node_modules/bullmq/dist/cjs/commands/includes/updateParentDepsIfNeeded.lua +2 -2
  84. package/dist/node_modules/bullmq/dist/cjs/commands/isFinished-3.lua +2 -2
  85. package/dist/node_modules/bullmq/dist/cjs/commands/moveJobFromActiveToWait-9.lua +63 -0
  86. package/dist/node_modules/bullmq/dist/cjs/commands/moveStalledJobsToWait-8.lua +109 -0
  87. package/dist/node_modules/bullmq/dist/cjs/commands/moveToActive-11.lua +3 -2
  88. package/dist/node_modules/bullmq/dist/cjs/commands/moveToFinished-14.lua +52 -52
  89. package/dist/node_modules/bullmq/dist/cjs/commands/moveToWaitingChildren-8.lua +106 -0
  90. package/dist/node_modules/bullmq/dist/cjs/commands/removeJob-2.lua +18 -66
  91. package/dist/node_modules/bullmq/dist/cjs/commands/removeJobScheduler-3.lua +1 -1
  92. package/dist/node_modules/bullmq/dist/cjs/commands/removeUnprocessedChildren-2.lua +31 -0
  93. package/dist/node_modules/bullmq/dist/cjs/commands/retryJob-11.lua +11 -5
  94. package/dist/node_modules/bullmq/dist/cjs/commands/updateJobScheduler-12.lua +90 -0
  95. package/dist/node_modules/bullmq/dist/cjs/commands/updateRepeatableJobMillis-1.lua +1 -1
  96. package/dist/node_modules/bullmq/dist/cjs/enums/child-command.js +2 -0
  97. package/dist/node_modules/bullmq/dist/cjs/enums/error-code.js +2 -1
  98. package/dist/node_modules/bullmq/dist/cjs/enums/parent-command.js +5 -2
  99. package/dist/node_modules/bullmq/dist/cjs/index.js +1 -1
  100. package/dist/node_modules/bullmq/dist/cjs/interfaces/index.js +2 -1
  101. package/dist/node_modules/bullmq/dist/cjs/interfaces/{debounce-options.js → parent-options.js} +1 -1
  102. package/dist/node_modules/bullmq/dist/cjs/interfaces/receiver.js +3 -0
  103. package/dist/node_modules/bullmq/dist/cjs/scripts/addDelayedJob-6.js +163 -84
  104. package/dist/node_modules/bullmq/dist/cjs/scripts/addJobScheduler-11.js +465 -0
  105. package/dist/node_modules/bullmq/dist/cjs/scripts/{addParentJob-4.js → addParentJob-5.js} +147 -75
  106. package/dist/node_modules/bullmq/dist/cjs/scripts/{addPrioritizedJob-8.js → addPrioritizedJob-9.js} +151 -79
  107. package/dist/node_modules/bullmq/dist/cjs/scripts/addRepeatableJob-2.js +18 -13
  108. package/dist/node_modules/bullmq/dist/cjs/scripts/{addStandardJob-8.js → addStandardJob-9.js} +149 -77
  109. package/dist/node_modules/bullmq/dist/cjs/scripts/changeDelay-4.js +7 -7
  110. package/dist/node_modules/bullmq/dist/cjs/scripts/changePriority-7.js +8 -2
  111. package/dist/node_modules/bullmq/dist/cjs/scripts/cleanJobsInSet-3.js +45 -29
  112. package/dist/node_modules/bullmq/dist/cjs/scripts/drain-5.js +49 -35
  113. package/dist/node_modules/bullmq/dist/cjs/scripts/getDependencyCounts-4.js +37 -0
  114. package/dist/node_modules/bullmq/dist/cjs/scripts/getState-8.js +5 -5
  115. package/dist/node_modules/bullmq/dist/cjs/scripts/getStateV2-8.js +8 -8
  116. package/dist/node_modules/bullmq/dist/cjs/scripts/index.js +10 -7
  117. package/dist/node_modules/bullmq/dist/cjs/scripts/isFinished-3.js +2 -2
  118. package/dist/node_modules/bullmq/dist/cjs/scripts/{moveJobFromActiveToWait-10.js → moveJobFromActiveToWait-9.js} +57 -37
  119. package/dist/node_modules/bullmq/dist/cjs/scripts/moveJobsToWait-8.js +6 -6
  120. package/dist/node_modules/bullmq/dist/cjs/scripts/moveStalledJobsToWait-8.js +171 -0
  121. package/dist/node_modules/bullmq/dist/cjs/scripts/moveToActive-11.js +18 -8
  122. package/dist/node_modules/bullmq/dist/cjs/scripts/moveToDelayed-8.js +12 -12
  123. package/dist/node_modules/bullmq/dist/cjs/scripts/moveToFinished-14.js +218 -155
  124. package/dist/node_modules/bullmq/dist/cjs/scripts/moveToWaitingChildren-8.js +529 -0
  125. package/dist/node_modules/bullmq/dist/cjs/scripts/obliterate-2.js +33 -20
  126. package/dist/node_modules/bullmq/dist/cjs/scripts/pause-7.js +1 -1
  127. package/dist/node_modules/bullmq/dist/cjs/scripts/promote-9.js +8 -2
  128. package/dist/node_modules/bullmq/dist/cjs/scripts/removeChildDependency-1.js +7 -7
  129. package/dist/node_modules/bullmq/dist/cjs/scripts/removeJob-2.js +120 -63
  130. package/dist/node_modules/bullmq/dist/cjs/scripts/removeJobScheduler-3.js +3 -3
  131. package/dist/node_modules/bullmq/dist/cjs/scripts/removeRepeatable-3.js +2 -2
  132. package/dist/node_modules/bullmq/dist/cjs/scripts/removeUnprocessedChildren-2.js +339 -0
  133. package/dist/node_modules/bullmq/dist/cjs/scripts/reprocessJob-8.js +6 -6
  134. package/dist/node_modules/bullmq/dist/cjs/scripts/retryJob-11.js +47 -26
  135. package/dist/node_modules/bullmq/dist/cjs/scripts/updateJobScheduler-12.js +274 -0
  136. package/dist/node_modules/bullmq/dist/cjs/scripts/updateProgress-3.js +6 -6
  137. package/dist/node_modules/bullmq/dist/cjs/scripts/updateRepeatableJobMillis-1.js +1 -1
  138. package/dist/node_modules/bullmq/dist/cjs/tsconfig-cjs.tsbuildinfo +1 -1
  139. package/dist/node_modules/bullmq/dist/cjs/types/deduplication-options.js +3 -0
  140. package/dist/node_modules/bullmq/dist/cjs/types/index.js +3 -0
  141. package/dist/node_modules/bullmq/dist/cjs/types/job-progress.js +3 -0
  142. package/dist/node_modules/bullmq/dist/cjs/types/script-queue-context.js +3 -0
  143. package/dist/node_modules/bullmq/dist/cjs/utils.js +29 -1
  144. package/dist/node_modules/bullmq/dist/cjs/version.js +1 -1
  145. package/dist/node_modules/bullmq/dist/esm/classes/backoffs.d.ts +1 -1
  146. package/dist/node_modules/bullmq/dist/esm/classes/backoffs.js +18 -5
  147. package/dist/node_modules/bullmq/dist/esm/classes/child-pool.d.ts +1 -1
  148. package/dist/node_modules/bullmq/dist/esm/classes/child-pool.js +7 -2
  149. package/dist/node_modules/bullmq/dist/esm/classes/child-processor.d.ts +3 -2
  150. package/dist/node_modules/bullmq/dist/esm/classes/child-processor.js +59 -5
  151. package/dist/node_modules/bullmq/dist/esm/classes/child.js +3 -1
  152. package/dist/node_modules/bullmq/dist/esm/classes/errors/index.d.ts +2 -1
  153. package/dist/node_modules/bullmq/dist/esm/classes/errors/index.js +2 -1
  154. package/dist/node_modules/bullmq/dist/esm/classes/errors/waiting-error.d.ts +10 -0
  155. package/dist/node_modules/bullmq/dist/esm/classes/errors/waiting-error.js +15 -0
  156. package/dist/node_modules/bullmq/dist/esm/classes/flow-producer.d.ts +3 -9
  157. package/dist/node_modules/bullmq/dist/esm/classes/flow-producer.js +21 -5
  158. package/dist/node_modules/bullmq/dist/esm/classes/index.d.ts +1 -0
  159. package/dist/node_modules/bullmq/dist/esm/classes/index.js +1 -0
  160. package/dist/node_modules/bullmq/dist/esm/classes/job-scheduler.d.ts +2 -2
  161. package/dist/node_modules/bullmq/dist/esm/classes/job-scheduler.js +88 -62
  162. package/dist/node_modules/bullmq/dist/esm/classes/job.d.ts +69 -19
  163. package/dist/node_modules/bullmq/dist/esm/classes/job.js +217 -110
  164. package/dist/node_modules/bullmq/dist/esm/classes/main-base.d.ts +2 -3
  165. package/dist/node_modules/bullmq/dist/esm/classes/main-base.js +1 -1
  166. package/dist/node_modules/bullmq/dist/esm/classes/queue-base.d.ts +2 -5
  167. package/dist/node_modules/bullmq/dist/esm/classes/queue-base.js +11 -10
  168. package/dist/node_modules/bullmq/dist/esm/classes/queue-events-producer.d.ts +2 -2
  169. package/dist/node_modules/bullmq/dist/esm/classes/queue-events.d.ts +118 -29
  170. package/dist/node_modules/bullmq/dist/esm/classes/queue-getters.d.ts +20 -13
  171. package/dist/node_modules/bullmq/dist/esm/classes/queue-getters.js +34 -14
  172. package/dist/node_modules/bullmq/dist/esm/classes/queue.d.ts +19 -16
  173. package/dist/node_modules/bullmq/dist/esm/classes/queue.js +19 -13
  174. package/dist/node_modules/bullmq/dist/esm/classes/redis-connection.d.ts +7 -3
  175. package/dist/node_modules/bullmq/dist/esm/classes/redis-connection.js +16 -9
  176. package/dist/node_modules/bullmq/dist/esm/classes/repeat.js +1 -1
  177. package/dist/node_modules/bullmq/dist/esm/classes/sandbox.js +54 -28
  178. package/dist/node_modules/bullmq/dist/esm/classes/scripts.d.ts +20 -13
  179. package/dist/node_modules/bullmq/dist/esm/classes/scripts.js +141 -39
  180. package/dist/node_modules/bullmq/dist/esm/classes/worker.d.ts +28 -7
  181. package/dist/node_modules/bullmq/dist/esm/classes/worker.js +192 -183
  182. package/dist/node_modules/bullmq/dist/esm/commands/addDelayedJob-6.lua +6 -17
  183. package/dist/node_modules/bullmq/dist/esm/commands/addJobScheduler-11.lua +123 -0
  184. package/dist/node_modules/bullmq/dist/{cjs/commands/addParentJob-4.lua → esm/commands/addParentJob-5.lua} +7 -6
  185. package/dist/node_modules/bullmq/dist/esm/commands/{addPrioritizedJob-8.lua → addPrioritizedJob-9.lua} +11 -10
  186. package/dist/node_modules/bullmq/dist/esm/commands/addRepeatableJob-2.lua +2 -2
  187. package/dist/node_modules/bullmq/dist/{cjs/commands/addStandardJob-8.lua → esm/commands/addStandardJob-9.lua} +9 -8
  188. package/dist/node_modules/bullmq/dist/esm/commands/cleanJobsInSet-3.lua +9 -5
  189. package/dist/node_modules/bullmq/dist/esm/commands/drain-5.lua +16 -16
  190. package/dist/node_modules/bullmq/dist/esm/commands/getDependencyCounts-4.lua +31 -0
  191. package/dist/node_modules/bullmq/dist/esm/commands/getState-8.lua +5 -5
  192. package/dist/node_modules/bullmq/dist/esm/commands/getStateV2-8.lua +8 -8
  193. package/dist/node_modules/bullmq/dist/esm/commands/includes/addDelayedJob.lua +23 -0
  194. package/dist/node_modules/bullmq/dist/esm/commands/includes/addJobFromScheduler.lua +37 -0
  195. package/dist/node_modules/bullmq/dist/esm/commands/includes/addJobWithPriority.lua +2 -2
  196. package/dist/node_modules/bullmq/dist/esm/commands/includes/cleanList.lua +4 -2
  197. package/dist/node_modules/bullmq/dist/esm/commands/includes/cleanSet.lua +3 -11
  198. package/dist/node_modules/bullmq/dist/esm/commands/includes/collectMetrics.lua +1 -1
  199. package/dist/node_modules/bullmq/dist/esm/commands/includes/deduplicateJob.lua +63 -18
  200. package/dist/node_modules/bullmq/dist/esm/commands/includes/filterOutJobsToIgnore.lua +14 -0
  201. package/dist/node_modules/bullmq/dist/esm/commands/includes/getNextDelayedTimestamp.lua +1 -1
  202. package/dist/node_modules/bullmq/dist/esm/commands/includes/getOrSetMaxEvents.lua +6 -6
  203. package/dist/node_modules/bullmq/dist/esm/commands/includes/getPriorityScore.lua +8 -0
  204. package/dist/node_modules/bullmq/dist/esm/commands/includes/isJobSchedulerJob.lua +15 -0
  205. package/dist/node_modules/bullmq/dist/esm/commands/includes/isLocked.lua +1 -0
  206. package/dist/node_modules/bullmq/dist/esm/commands/includes/moveChildFromDependenciesIfNeeded.lua +77 -0
  207. package/dist/node_modules/bullmq/dist/esm/commands/includes/{moveJobFromPriorityToActive.lua → moveJobFromPrioritizedToActive.lua} +1 -1
  208. package/dist/node_modules/bullmq/dist/esm/commands/includes/moveParentToWait.lua +45 -0
  209. package/dist/node_modules/bullmq/dist/esm/commands/includes/moveParentToWaitIfNeeded.lua +9 -50
  210. package/dist/node_modules/bullmq/dist/esm/commands/includes/moveParentToWaitIfNoPendingDependencies.lua +13 -0
  211. package/dist/node_modules/bullmq/dist/esm/commands/includes/prepareJobForProcessing.lua +2 -1
  212. package/dist/node_modules/bullmq/dist/esm/commands/includes/promoteDelayedJobs.lua +7 -3
  213. package/dist/node_modules/bullmq/dist/esm/commands/includes/removeDeduplicationKeyIfNeededOnFinalization.lua +23 -0
  214. package/dist/node_modules/bullmq/dist/esm/commands/includes/removeDeduplicationKeyIfNeededOnRemoval.lua +16 -0
  215. package/dist/node_modules/bullmq/dist/esm/commands/includes/removeJob.lua +2 -2
  216. package/dist/node_modules/bullmq/dist/esm/commands/includes/removeJobKeys.lua +2 -2
  217. package/dist/node_modules/bullmq/dist/esm/commands/includes/removeJobWithChildren.lua +95 -0
  218. package/dist/node_modules/bullmq/dist/esm/commands/includes/removeListJobs.lua +7 -1
  219. package/dist/node_modules/bullmq/dist/esm/commands/includes/removeParentDependencyKey.lua +5 -5
  220. package/dist/node_modules/bullmq/dist/esm/commands/includes/removeZSetJobs.lua +2 -8
  221. package/dist/node_modules/bullmq/dist/esm/commands/includes/storeJob.lua +2 -2
  222. package/dist/node_modules/bullmq/dist/esm/commands/includes/storeJobScheduler.lua +52 -0
  223. package/dist/node_modules/bullmq/dist/esm/commands/includes/trimEvents.lua +1 -1
  224. package/dist/node_modules/bullmq/dist/esm/commands/includes/updateExistingJobsParent.lua +1 -1
  225. package/dist/node_modules/bullmq/dist/esm/commands/includes/updateJobFields.lua +5 -5
  226. package/dist/node_modules/bullmq/dist/esm/commands/includes/updateParentDepsIfNeeded.lua +2 -2
  227. package/dist/node_modules/bullmq/dist/esm/commands/isFinished-3.lua +2 -2
  228. package/dist/node_modules/bullmq/dist/esm/commands/moveJobFromActiveToWait-9.lua +63 -0
  229. package/dist/node_modules/bullmq/dist/esm/commands/moveStalledJobsToWait-8.lua +109 -0
  230. package/dist/node_modules/bullmq/dist/esm/commands/moveToActive-11.lua +3 -2
  231. package/dist/node_modules/bullmq/dist/esm/commands/moveToFinished-14.lua +52 -52
  232. package/dist/node_modules/bullmq/dist/esm/commands/moveToWaitingChildren-8.lua +106 -0
  233. package/dist/node_modules/bullmq/dist/esm/commands/removeJob-2.lua +18 -66
  234. package/dist/node_modules/bullmq/dist/esm/commands/removeJobScheduler-3.lua +1 -1
  235. package/dist/node_modules/bullmq/dist/esm/commands/removeUnprocessedChildren-2.lua +31 -0
  236. package/dist/node_modules/bullmq/dist/esm/commands/retryJob-11.lua +11 -5
  237. package/dist/node_modules/bullmq/dist/esm/commands/updateJobScheduler-12.lua +90 -0
  238. package/dist/node_modules/bullmq/dist/esm/commands/updateRepeatableJobMillis-1.lua +1 -1
  239. package/dist/node_modules/bullmq/dist/esm/enums/child-command.d.ts +3 -1
  240. package/dist/node_modules/bullmq/dist/esm/enums/child-command.js +2 -0
  241. package/dist/node_modules/bullmq/dist/esm/enums/error-code.d.ts +3 -2
  242. package/dist/node_modules/bullmq/dist/esm/enums/error-code.js +2 -1
  243. package/dist/node_modules/bullmq/dist/esm/enums/parent-command.d.ts +5 -2
  244. package/dist/node_modules/bullmq/dist/esm/enums/parent-command.js +5 -2
  245. package/dist/node_modules/bullmq/dist/esm/interfaces/backoff-options.d.ts +5 -0
  246. package/dist/node_modules/bullmq/dist/esm/interfaces/base-job-options.d.ts +3 -9
  247. package/dist/node_modules/bullmq/dist/esm/interfaces/child-message.d.ts +1 -0
  248. package/dist/node_modules/bullmq/dist/esm/interfaces/index.d.ts +2 -1
  249. package/dist/node_modules/bullmq/dist/esm/interfaces/index.js +2 -1
  250. package/dist/node_modules/bullmq/dist/esm/interfaces/job-json.d.ts +6 -2
  251. package/dist/node_modules/bullmq/dist/esm/interfaces/job-scheduler-json.d.ts +7 -4
  252. package/dist/node_modules/bullmq/dist/esm/interfaces/minimal-job.d.ts +34 -15
  253. package/dist/node_modules/bullmq/dist/esm/interfaces/parent-options.d.ts +11 -0
  254. package/dist/node_modules/bullmq/dist/esm/interfaces/parent-options.js +2 -0
  255. package/dist/node_modules/bullmq/dist/esm/interfaces/parent.d.ts +6 -2
  256. package/dist/node_modules/bullmq/dist/esm/interfaces/queue-options.d.ts +15 -6
  257. package/dist/node_modules/bullmq/dist/esm/interfaces/receiver.d.ts +4 -0
  258. package/dist/node_modules/bullmq/dist/esm/interfaces/receiver.js +2 -0
  259. package/dist/node_modules/bullmq/dist/esm/interfaces/repeat-options.d.ts +1 -2
  260. package/dist/node_modules/bullmq/dist/esm/interfaces/repeatable-options.d.ts +2 -0
  261. package/dist/node_modules/bullmq/dist/esm/interfaces/sandboxed-job.d.ts +3 -2
  262. package/dist/node_modules/bullmq/dist/esm/interfaces/sandboxed-options.d.ts +1 -1
  263. package/dist/node_modules/bullmq/dist/esm/interfaces/telemetry.d.ts +18 -15
  264. package/dist/node_modules/bullmq/dist/esm/interfaces/worker-options.d.ts +10 -10
  265. package/dist/node_modules/bullmq/dist/esm/scripts/addDelayedJob-6.js +163 -84
  266. package/dist/node_modules/bullmq/dist/esm/scripts/addJobScheduler-11.js +462 -0
  267. package/dist/node_modules/bullmq/dist/esm/scripts/{addParentJob-4.js → addParentJob-5.js} +147 -75
  268. package/dist/node_modules/bullmq/dist/esm/scripts/{addPrioritizedJob-8.js → addPrioritizedJob-9.js} +151 -79
  269. package/dist/node_modules/bullmq/dist/esm/scripts/addRepeatableJob-2.js +18 -13
  270. package/dist/node_modules/bullmq/dist/esm/scripts/{addStandardJob-8.js → addStandardJob-9.js} +149 -77
  271. package/dist/node_modules/bullmq/dist/esm/scripts/changeDelay-4.js +7 -7
  272. package/dist/node_modules/bullmq/dist/esm/scripts/changePriority-7.js +8 -2
  273. package/dist/node_modules/bullmq/dist/esm/scripts/cleanJobsInSet-3.js +45 -29
  274. package/dist/node_modules/bullmq/dist/esm/scripts/drain-5.js +49 -35
  275. package/dist/node_modules/bullmq/dist/esm/scripts/getDependencyCounts-4.d.ts +5 -0
  276. package/dist/node_modules/bullmq/dist/esm/scripts/getDependencyCounts-4.js +34 -0
  277. package/dist/node_modules/bullmq/dist/esm/scripts/getState-8.js +5 -5
  278. package/dist/node_modules/bullmq/dist/esm/scripts/getStateV2-8.js +8 -8
  279. package/dist/node_modules/bullmq/dist/esm/scripts/index.d.ts +10 -7
  280. package/dist/node_modules/bullmq/dist/esm/scripts/index.js +10 -7
  281. package/dist/node_modules/bullmq/dist/esm/scripts/isFinished-3.js +2 -2
  282. package/dist/node_modules/bullmq/dist/esm/scripts/{moveJobFromActiveToWait-10.js → moveJobFromActiveToWait-9.js} +57 -37
  283. package/dist/node_modules/bullmq/dist/esm/scripts/moveJobsToWait-8.js +6 -6
  284. package/dist/node_modules/bullmq/dist/esm/scripts/moveStalledJobsToWait-8.js +168 -0
  285. package/dist/node_modules/bullmq/dist/esm/scripts/moveToActive-11.js +18 -8
  286. package/dist/node_modules/bullmq/dist/esm/scripts/moveToDelayed-8.js +12 -12
  287. package/dist/node_modules/bullmq/dist/esm/scripts/moveToFinished-14.js +218 -155
  288. package/dist/node_modules/bullmq/dist/esm/scripts/moveToWaitingChildren-8.js +526 -0
  289. package/dist/node_modules/bullmq/dist/esm/scripts/obliterate-2.js +33 -20
  290. package/dist/node_modules/bullmq/dist/esm/scripts/pause-7.js +1 -1
  291. package/dist/node_modules/bullmq/dist/esm/scripts/promote-9.js +8 -2
  292. package/dist/node_modules/bullmq/dist/esm/scripts/removeChildDependency-1.js +7 -7
  293. package/dist/node_modules/bullmq/dist/esm/scripts/removeJob-2.js +120 -63
  294. package/dist/node_modules/bullmq/dist/esm/scripts/removeJobScheduler-3.js +3 -3
  295. package/dist/node_modules/bullmq/dist/esm/scripts/removeRepeatable-3.js +2 -2
  296. package/dist/node_modules/bullmq/dist/esm/scripts/removeUnprocessedChildren-2.d.ts +5 -0
  297. package/dist/node_modules/bullmq/dist/esm/scripts/removeUnprocessedChildren-2.js +336 -0
  298. package/dist/node_modules/bullmq/dist/esm/scripts/reprocessJob-8.js +6 -6
  299. package/dist/node_modules/bullmq/dist/esm/scripts/retryJob-11.js +47 -26
  300. package/dist/node_modules/bullmq/dist/esm/scripts/updateJobScheduler-12.d.ts +5 -0
  301. package/dist/node_modules/bullmq/dist/esm/scripts/updateJobScheduler-12.js +271 -0
  302. package/dist/node_modules/bullmq/dist/esm/scripts/updateProgress-3.js +6 -6
  303. package/dist/node_modules/bullmq/dist/esm/scripts/updateRepeatableJobMillis-1.js +1 -1
  304. package/dist/node_modules/bullmq/dist/esm/tsconfig.tsbuildinfo +1 -1
  305. package/dist/node_modules/bullmq/dist/esm/types/deduplication-options.d.ts +22 -0
  306. package/dist/node_modules/bullmq/dist/esm/types/deduplication-options.js +2 -0
  307. package/dist/node_modules/bullmq/dist/esm/types/index.d.ts +3 -0
  308. package/dist/node_modules/bullmq/dist/esm/types/index.js +3 -0
  309. package/dist/node_modules/bullmq/dist/esm/types/job-options.d.ts +19 -8
  310. package/dist/node_modules/bullmq/dist/esm/types/job-progress.d.ts +1 -0
  311. package/dist/node_modules/bullmq/dist/esm/types/job-progress.js +2 -0
  312. package/dist/node_modules/bullmq/dist/esm/types/script-queue-context.d.ts +2 -0
  313. package/dist/node_modules/bullmq/dist/esm/types/script-queue-context.js +2 -0
  314. package/dist/node_modules/bullmq/dist/esm/utils.d.ts +25 -5
  315. package/dist/node_modules/bullmq/dist/esm/utils.js +27 -0
  316. package/dist/node_modules/bullmq/dist/esm/version.d.ts +1 -1
  317. package/dist/node_modules/bullmq/dist/esm/version.js +1 -1
  318. package/dist/node_modules/bullmq/package.json +1 -1
  319. package/package.json +7 -7
  320. package/dist/node_modules/bullmq/dist/cjs/commands/addJobScheduler-2.lua +0 -91
  321. package/dist/node_modules/bullmq/dist/cjs/commands/includes/moveParentFromWaitingChildrenToFailed.lua +0 -53
  322. package/dist/node_modules/bullmq/dist/cjs/commands/includes/removeDeduplicationKey.lua +0 -11
  323. package/dist/node_modules/bullmq/dist/cjs/commands/includes/removeDeduplicationKeyIfNeeded.lua +0 -14
  324. package/dist/node_modules/bullmq/dist/cjs/commands/moveJobFromActiveToWait-10.lua +0 -60
  325. package/dist/node_modules/bullmq/dist/cjs/commands/moveStalledJobsToWait-9.lua +0 -156
  326. package/dist/node_modules/bullmq/dist/cjs/commands/moveToWaitingChildren-5.lua +0 -68
  327. package/dist/node_modules/bullmq/dist/cjs/scripts/addJobScheduler-2.js +0 -237
  328. package/dist/node_modules/bullmq/dist/cjs/scripts/moveStalledJobsToWait-9.js +0 -529
  329. package/dist/node_modules/bullmq/dist/cjs/scripts/moveToWaitingChildren-5.js +0 -83
  330. package/dist/node_modules/bullmq/dist/esm/commands/addJobScheduler-2.lua +0 -91
  331. package/dist/node_modules/bullmq/dist/esm/commands/includes/moveParentFromWaitingChildrenToFailed.lua +0 -53
  332. package/dist/node_modules/bullmq/dist/esm/commands/includes/removeDeduplicationKey.lua +0 -11
  333. package/dist/node_modules/bullmq/dist/esm/commands/includes/removeDeduplicationKeyIfNeeded.lua +0 -14
  334. package/dist/node_modules/bullmq/dist/esm/commands/moveJobFromActiveToWait-10.lua +0 -60
  335. package/dist/node_modules/bullmq/dist/esm/commands/moveStalledJobsToWait-9.lua +0 -156
  336. package/dist/node_modules/bullmq/dist/esm/commands/moveToWaitingChildren-5.lua +0 -68
  337. package/dist/node_modules/bullmq/dist/esm/interfaces/debounce-options.d.ts +0 -13
  338. package/dist/node_modules/bullmq/dist/esm/interfaces/debounce-options.js +0 -2
  339. package/dist/node_modules/bullmq/dist/esm/scripts/addJobScheduler-2.js +0 -234
  340. package/dist/node_modules/bullmq/dist/esm/scripts/moveStalledJobsToWait-9.js +0 -526
  341. package/dist/node_modules/bullmq/dist/esm/scripts/moveToWaitingChildren-5.js +0 -80
  342. /package/dist/node_modules/bullmq/dist/esm/scripts/{addJobScheduler-2.d.ts → addJobScheduler-11.d.ts} +0 -0
  343. /package/dist/node_modules/bullmq/dist/esm/scripts/{addParentJob-4.d.ts → addParentJob-5.d.ts} +0 -0
  344. /package/dist/node_modules/bullmq/dist/esm/scripts/{addPrioritizedJob-8.d.ts → addPrioritizedJob-9.d.ts} +0 -0
  345. /package/dist/node_modules/bullmq/dist/esm/scripts/{addStandardJob-8.d.ts → addStandardJob-9.d.ts} +0 -0
  346. /package/dist/node_modules/bullmq/dist/esm/scripts/{moveJobFromActiveToWait-10.d.ts → moveJobFromActiveToWait-9.d.ts} +0 -0
  347. /package/dist/node_modules/bullmq/dist/esm/scripts/{moveStalledJobsToWait-9.d.ts → moveStalledJobsToWait-8.d.ts} +0 -0
  348. /package/dist/node_modules/bullmq/dist/esm/scripts/{moveToWaitingChildren-5.d.ts → moveToWaitingChildren-8.d.ts} +0 -0
@@ -6,8 +6,9 @@ const content = `--[[
6
6
  Input:
7
7
  KEYS[1] 'meta'
8
8
  KEYS[2] 'id'
9
- KEYS[3] 'completed'
10
- KEYS[4] events stream key
9
+ KEYS[3] 'delayed'
10
+ KEYS[4] 'completed'
11
+ KEYS[5] events stream key
11
12
  ARGV[1] msgpacked arguments array
12
13
  [1] key prefix,
13
14
  [2] custom id (will not generate one automatically)
@@ -27,8 +28,8 @@ const content = `--[[
27
28
  ]]
28
29
  local metaKey = KEYS[1]
29
30
  local idKey = KEYS[2]
30
- local completedKey = KEYS[3]
31
- local eventsKey = KEYS[4]
31
+ local completedKey = KEYS[4]
32
+ local eventsKey = KEYS[5]
32
33
  local jobId
33
34
  local jobIdKey
34
35
  local rcall = redis.call
@@ -44,36 +45,85 @@ local parentData
44
45
  --[[
45
46
  Function to debounce a job.
46
47
  ]]
47
- local function deduplicateJob(prefixKey, deduplicationOpts, jobId, deduplicationKey, eventsKey, maxEvents)
48
- local deduplicationId = deduplicationOpts and deduplicationOpts['id']
49
- if deduplicationId then
50
- local ttl = deduplicationOpts['ttl']
51
- local deduplicationKeyExists
52
- if ttl then
53
- deduplicationKeyExists = not rcall('SET', deduplicationKey, jobId, 'PX', ttl, 'NX')
54
- else
55
- deduplicationKeyExists = not rcall('SET', deduplicationKey, jobId, 'NX')
56
- end
57
- if deduplicationKeyExists then
58
- local currentDebounceJobId = rcall('GET', deduplicationKey)
59
- rcall("XADD", eventsKey, "MAXLEN", "~", maxEvents, "*", "event",
60
- "debounced", "jobId", currentDebounceJobId, "debounceId", deduplicationId)
61
- rcall("XADD", eventsKey, "MAXLEN", "~", maxEvents, "*", "event",
62
- "deduplicated", "jobId", currentDebounceJobId, "deduplicationId", deduplicationId)
63
- return currentDebounceJobId
48
+ -- Includes
49
+ --[[
50
+ Function to remove job keys.
51
+ ]]
52
+ local function removeJobKeys(jobKey)
53
+ return rcall("DEL", jobKey, jobKey .. ':logs', jobKey .. ':dependencies',
54
+ jobKey .. ':processed', jobKey .. ':failed', jobKey .. ':unsuccessful')
55
+ end
56
+ local function deduplicateJob(deduplicationOpts, jobId, delayedKey, deduplicationKey, eventsKey, maxEvents,
57
+ prefix)
58
+ local deduplicationId = deduplicationOpts and deduplicationOpts['id']
59
+ if deduplicationId then
60
+ local ttl = deduplicationOpts['ttl']
61
+ if deduplicationOpts['replace'] and ttl and ttl > 0 then
62
+ local currentDebounceJobId = rcall('GET', deduplicationKey)
63
+ if currentDebounceJobId then
64
+ if rcall("ZREM", delayedKey, currentDebounceJobId) > 0 then
65
+ removeJobKeys(prefix .. currentDebounceJobId)
66
+ rcall("XADD", eventsKey, "*", "event", "removed", "jobId", currentDebounceJobId,
67
+ "prev", "delayed")
68
+ if deduplicationOpts['extend'] then
69
+ rcall('SET', deduplicationKey, jobId, 'PX', ttl)
70
+ else
71
+ rcall('SET', deduplicationKey, jobId, 'KEEPTTL')
72
+ end
73
+ rcall("XADD", eventsKey, "MAXLEN", "~", maxEvents, "*", "event", "deduplicated", "jobId",
74
+ jobId, "deduplicationId", deduplicationId, "deduplicatedJobId", currentDebounceJobId)
75
+ return
76
+ else
77
+ return currentDebounceJobId
78
+ end
79
+ else
80
+ rcall('SET', deduplicationKey, jobId, 'PX', ttl)
81
+ return
82
+ end
83
+ else
84
+ local ttl = deduplicationOpts['ttl']
85
+ local deduplicationKeyExists
86
+ if ttl then
87
+ if deduplicationOpts['extend'] then
88
+ local currentDebounceJobId = rcall('GET', deduplicationKey)
89
+ if currentDebounceJobId then
90
+ rcall('SET', deduplicationKey, currentDebounceJobId, 'PX', ttl)
91
+ rcall("XADD", eventsKey, "MAXLEN", "~", maxEvents, "*", "event", "debounced",
92
+ "jobId", currentDebounceJobId, "debounceId", deduplicationId)
93
+ rcall("XADD", eventsKey, "MAXLEN", "~", maxEvents, "*", "event", "deduplicated", "jobId",
94
+ currentDebounceJobId, "deduplicationId", deduplicationId, "deduplicatedJobId", jobId)
95
+ return currentDebounceJobId
96
+ else
97
+ rcall('SET', deduplicationKey, jobId, 'PX', ttl)
98
+ return
99
+ end
100
+ else
101
+ deduplicationKeyExists = not rcall('SET', deduplicationKey, jobId, 'PX', ttl, 'NX')
102
+ end
103
+ else
104
+ deduplicationKeyExists = not rcall('SET', deduplicationKey, jobId, 'NX')
105
+ end
106
+ if deduplicationKeyExists then
107
+ local currentDebounceJobId = rcall('GET', deduplicationKey)
108
+ rcall("XADD", eventsKey, "MAXLEN", "~", maxEvents, "*", "event", "debounced", "jobId",
109
+ currentDebounceJobId, "debounceId", deduplicationId)
110
+ rcall("XADD", eventsKey, "MAXLEN", "~", maxEvents, "*", "event", "deduplicated", "jobId",
111
+ currentDebounceJobId, "deduplicationId", deduplicationId, "deduplicatedJobId", jobId)
112
+ return currentDebounceJobId
113
+ end
114
+ end
64
115
  end
65
- end
66
116
  end
67
117
  --[[
68
118
  Function to get max events value or set by default 10000.
69
119
  ]]
70
120
  local function getOrSetMaxEvents(metaKey)
71
- local maxEvents = rcall("HGET", metaKey, "opts.maxLenEvents")
72
- if not maxEvents then
73
- maxEvents = 10000
74
- rcall("HSET", metaKey, "opts.maxLenEvents", maxEvents)
75
- end
76
- return maxEvents
121
+ local maxEvents = rcall("HGET", metaKey, "opts.maxLenEvents")
122
+ if not maxEvents then
123
+ maxEvents = 10000
124
+ rcall("HSET", metaKey, "opts.maxLenEvents", maxEvents)
125
+ end
126
+ return maxEvents
77
127
  end
78
128
  --[[
79
129
  Function to handle the case when job is duplicated.
@@ -91,7 +141,16 @@ end
91
141
  ]]
92
142
  -- Includes
93
143
  --[[
94
- Validate and move parent to active if needed.
144
+ Validate and move parent to a wait status (waiting, delayed or prioritized)
145
+ if no pending dependencies.
146
+ ]]
147
+ -- Includes
148
+ --[[
149
+ Validate and move parent to a wait status (waiting, delayed or prioritized) if needed.
150
+ ]]
151
+ -- Includes
152
+ --[[
153
+ Move parent to a wait status (wait, prioritized or delayed)
95
154
  ]]
96
155
  -- Includes
97
156
  --[[
@@ -105,7 +164,7 @@ local function getNextDelayedTimestamp(delayedKey)
105
164
  local result = rcall("ZRANGE", delayedKey, 0, 0, "WITHSCORES")
106
165
  if #result then
107
166
  local nextTimestamp = tonumber(result[2])
108
- if nextTimestamp ~= nil then
167
+ if nextTimestamp ~= nil then
109
168
  return nextTimestamp / 0x1000
110
169
  end
111
170
  end
@@ -138,10 +197,16 @@ end
138
197
  Function to add job considering priority.
139
198
  ]]
140
199
  -- Includes
200
+ --[[
201
+ Function to get priority score.
202
+ ]]
203
+ local function getPriorityScore(priority, priorityCounterKey)
204
+ local prioCounter = rcall("INCR", priorityCounterKey)
205
+ return priority * 0x100000000 + prioCounter % 0x100000000
206
+ end
141
207
  local function addJobWithPriority(markerKey, prioritizedKey, priority, jobId, priorityCounterKey,
142
208
  isPausedOrMaxed)
143
- local prioCounter = rcall("INCR", priorityCounterKey)
144
- local score = priority * 0x100000000 + prioCounter % 0x100000000
209
+ local score = getPriorityScore(priority, priorityCounterKey)
145
210
  rcall("ZADD", prioritizedKey, score, jobId)
146
211
  addBaseMarkerIfNeeded(markerKey, isPausedOrMaxed)
147
212
  end
@@ -181,57 +246,64 @@ local function getTargetQueueList(queueMetaKey, activeKey, waitKey, pausedKey)
181
246
  end
182
247
  return waitKey, false
183
248
  end
184
- local function moveParentToWaitIfNeeded(parentQueueKey, parentDependenciesKey,
185
- parentKey, parentId, timestamp)
186
- local isParentActive = rcall("ZSCORE",
187
- parentQueueKey .. ":waiting-children", parentId)
188
- if rcall("SCARD", parentDependenciesKey) == 0 and isParentActive then
189
- rcall("ZREM", parentQueueKey .. ":waiting-children", parentId)
190
- local parentWaitKey = parentQueueKey .. ":wait"
191
- local parentPausedKey = parentQueueKey .. ":paused"
192
- local parentActiveKey = parentQueueKey .. ":active"
193
- local parentMetaKey = parentQueueKey .. ":meta"
194
- local parentMarkerKey = parentQueueKey .. ":marker"
195
- local jobAttributes = rcall("HMGET", parentKey, "priority", "delay")
196
- local priority = tonumber(jobAttributes[1]) or 0
197
- local delay = tonumber(jobAttributes[2]) or 0
198
- if delay > 0 then
199
- local delayedTimestamp = tonumber(timestamp) + delay
200
- local score = delayedTimestamp * 0x1000
201
- local parentDelayedKey = parentQueueKey .. ":delayed"
202
- rcall("ZADD", parentDelayedKey, score, parentId)
203
- rcall("XADD", parentQueueKey .. ":events", "*", "event", "delayed",
204
- "jobId", parentId, "delay", delayedTimestamp)
205
- addDelayMarkerIfNeeded(parentMarkerKey, parentDelayedKey)
249
+ local function moveParentToWait(parentQueueKey, parentKey, parentId, timestamp)
250
+ local parentWaitKey = parentQueueKey .. ":wait"
251
+ local parentPausedKey = parentQueueKey .. ":paused"
252
+ local parentActiveKey = parentQueueKey .. ":active"
253
+ local parentMetaKey = parentQueueKey .. ":meta"
254
+ local parentMarkerKey = parentQueueKey .. ":marker"
255
+ local jobAttributes = rcall("HMGET", parentKey, "priority", "delay")
256
+ local priority = tonumber(jobAttributes[1]) or 0
257
+ local delay = tonumber(jobAttributes[2]) or 0
258
+ if delay > 0 then
259
+ local delayedTimestamp = tonumber(timestamp) + delay
260
+ local score = delayedTimestamp * 0x1000
261
+ local parentDelayedKey = parentQueueKey .. ":delayed"
262
+ rcall("ZADD", parentDelayedKey, score, parentId)
263
+ rcall("XADD", parentQueueKey .. ":events", "*", "event", "delayed", "jobId", parentId, "delay",
264
+ delayedTimestamp)
265
+ addDelayMarkerIfNeeded(parentMarkerKey, parentDelayedKey)
266
+ else
267
+ if priority == 0 then
268
+ local parentTarget, isParentPausedOrMaxed = getTargetQueueList(parentMetaKey, parentActiveKey,
269
+ parentWaitKey, parentPausedKey)
270
+ addJobInTargetList(parentTarget, parentMarkerKey, "RPUSH", isParentPausedOrMaxed, parentId)
206
271
  else
207
- if priority == 0 then
208
- local parentTarget, isParentPausedOrMaxed =
209
- getTargetQueueList(parentMetaKey, parentActiveKey, parentWaitKey,
210
- parentPausedKey)
211
- addJobInTargetList(parentTarget, parentMarkerKey, "RPUSH", isParentPausedOrMaxed,
212
- parentId)
213
- else
214
- local isPausedOrMaxed = isQueuePausedOrMaxed(parentMetaKey, parentActiveKey)
215
- addJobWithPriority(parentMarkerKey,
216
- parentQueueKey .. ":prioritized", priority,
217
- parentId, parentQueueKey .. ":pc", isPausedOrMaxed)
218
- end
219
- rcall("XADD", parentQueueKey .. ":events", "*", "event", "waiting",
220
- "jobId", parentId, "prev", "waiting-children")
272
+ local isPausedOrMaxed = isQueuePausedOrMaxed(parentMetaKey, parentActiveKey)
273
+ addJobWithPriority(parentMarkerKey, parentQueueKey .. ":prioritized", priority, parentId,
274
+ parentQueueKey .. ":pc", isPausedOrMaxed)
221
275
  end
276
+ rcall("XADD", parentQueueKey .. ":events", "*", "event", "waiting", "jobId", parentId, "prev",
277
+ "waiting-children")
278
+ end
279
+ end
280
+ local function moveParentToWaitIfNeeded(parentQueueKey, parentKey, parentId, timestamp)
281
+ if rcall("EXISTS", parentKey) == 1 then
282
+ local parentWaitingChildrenKey = parentQueueKey .. ":waiting-children"
283
+ if rcall("ZSCORE", parentWaitingChildrenKey, parentId) then
284
+ rcall("ZREM", parentWaitingChildrenKey, parentId)
285
+ moveParentToWait(parentQueueKey, parentKey, parentId, timestamp)
222
286
  end
287
+ end
288
+ end
289
+ local function moveParentToWaitIfNoPendingDependencies(parentQueueKey, parentDependenciesKey, parentKey,
290
+ parentId, timestamp)
291
+ local doNotHavePendingDependencies = rcall("SCARD", parentDependenciesKey) == 0
292
+ if doNotHavePendingDependencies then
293
+ moveParentToWaitIfNeeded(parentQueueKey, parentKey, parentId, timestamp)
294
+ end
223
295
  end
224
296
  local function updateParentDepsIfNeeded(parentKey, parentQueueKey, parentDependenciesKey,
225
297
  parentId, jobIdKey, returnvalue, timestamp )
226
298
  local processedSet = parentKey .. ":processed"
227
299
  rcall("HSET", processedSet, jobIdKey, returnvalue)
228
- moveParentToWaitIfNeeded(parentQueueKey, parentDependenciesKey, parentKey, parentId, timestamp)
300
+ moveParentToWaitIfNoPendingDependencies(parentQueueKey, parentDependenciesKey, parentKey, parentId, timestamp)
229
301
  end
230
302
  local function updateExistingJobsParent(parentKey, parent, parentData,
231
303
  parentDependenciesKey, completedKey,
232
304
  jobIdKey, jobId, timestamp)
233
305
  if parentKey ~= nil then
234
- if rcall("ZSCORE", completedKey, jobId) ~= false then
306
+ if rcall("ZSCORE", completedKey, jobId) then
235
307
  local returnvalue = rcall("HGET", jobIdKey, "returnvalue")
236
308
  updateParentDepsIfNeeded(parentKey, parent['queueKey'],
237
309
  parentDependenciesKey, parent['id'],
@@ -277,7 +349,7 @@ local function storeJob(eventsKey, jobIdKey, jobId, name, data, opts, timestamp,
277
349
  table.insert(optionalValues, "parent")
278
350
  table.insert(optionalValues, parentData)
279
351
  end
280
- if repeatJobKey ~= nil then
352
+ if repeatJobKey then
281
353
  table.insert(optionalValues, "rjk")
282
354
  table.insert(optionalValues, repeatJobKey)
283
355
  end
@@ -311,8 +383,8 @@ else
311
383
  maxEvents, timestamp)
312
384
  end
313
385
  end
314
- local deduplicationJobId = deduplicateJob(args[1], opts['de'],
315
- jobId, deduplicationKey, eventsKey, maxEvents)
386
+ local deduplicationJobId = deduplicateJob(opts['de'], jobId, KEYS[3],
387
+ deduplicationKey, eventsKey, maxEvents, args[1])
316
388
  if deduplicationJobId then
317
389
  return deduplicationJobId
318
390
  end
@@ -332,6 +404,6 @@ return jobId .. "" -- convert to string
332
404
  export const addParentJob = {
333
405
  name: 'addParentJob',
334
406
  content,
335
- keys: 4,
407
+ keys: 5,
336
408
  };
337
- //# sourceMappingURL=addParentJob-4.js.map
409
+ //# sourceMappingURL=addParentJob-5.js.map
@@ -8,10 +8,11 @@ const content = `--[[
8
8
  KEYS[2] 'meta'
9
9
  KEYS[3] 'id'
10
10
  KEYS[4] 'prioritized'
11
- KEYS[5] 'completed'
12
- KEYS[6] 'active'
13
- KEYS[7] events stream key
14
- KEYS[8] 'pc' priority counter
11
+ KEYS[5] 'delayed'
12
+ KEYS[6] 'completed'
13
+ KEYS[7] 'active'
14
+ KEYS[8] events stream key
15
+ KEYS[9] 'pc' priority counter
15
16
  ARGV[1] msgpacked arguments array
16
17
  [1] key prefix,
17
18
  [2] custom id (will not generate one automatically)
@@ -32,10 +33,10 @@ const content = `--[[
32
33
  local metaKey = KEYS[2]
33
34
  local idKey = KEYS[3]
34
35
  local priorityKey = KEYS[4]
35
- local completedKey = KEYS[5]
36
- local activeKey = KEYS[6]
37
- local eventsKey = KEYS[7]
38
- local priorityCounterKey = KEYS[8]
36
+ local completedKey = KEYS[6]
37
+ local activeKey = KEYS[7]
38
+ local eventsKey = KEYS[8]
39
+ local priorityCounterKey = KEYS[9]
39
40
  local jobId
40
41
  local jobIdKey
41
42
  local rcall = redis.call
@@ -60,35 +61,90 @@ local function addBaseMarkerIfNeeded(markerKey, isPausedOrMaxed)
60
61
  rcall("ZADD", markerKey, 0, "0")
61
62
  end
62
63
  end
64
+ --[[
65
+ Function to get priority score.
66
+ ]]
67
+ local function getPriorityScore(priority, priorityCounterKey)
68
+ local prioCounter = rcall("INCR", priorityCounterKey)
69
+ return priority * 0x100000000 + prioCounter % 0x100000000
70
+ end
63
71
  local function addJobWithPriority(markerKey, prioritizedKey, priority, jobId, priorityCounterKey,
64
72
  isPausedOrMaxed)
65
- local prioCounter = rcall("INCR", priorityCounterKey)
66
- local score = priority * 0x100000000 + prioCounter % 0x100000000
73
+ local score = getPriorityScore(priority, priorityCounterKey)
67
74
  rcall("ZADD", prioritizedKey, score, jobId)
68
75
  addBaseMarkerIfNeeded(markerKey, isPausedOrMaxed)
69
76
  end
70
77
  --[[
71
78
  Function to debounce a job.
72
79
  ]]
73
- local function deduplicateJob(prefixKey, deduplicationOpts, jobId, deduplicationKey, eventsKey, maxEvents)
74
- local deduplicationId = deduplicationOpts and deduplicationOpts['id']
75
- if deduplicationId then
76
- local ttl = deduplicationOpts['ttl']
77
- local deduplicationKeyExists
78
- if ttl then
79
- deduplicationKeyExists = not rcall('SET', deduplicationKey, jobId, 'PX', ttl, 'NX')
80
- else
81
- deduplicationKeyExists = not rcall('SET', deduplicationKey, jobId, 'NX')
82
- end
83
- if deduplicationKeyExists then
84
- local currentDebounceJobId = rcall('GET', deduplicationKey)
85
- rcall("XADD", eventsKey, "MAXLEN", "~", maxEvents, "*", "event",
86
- "debounced", "jobId", currentDebounceJobId, "debounceId", deduplicationId)
87
- rcall("XADD", eventsKey, "MAXLEN", "~", maxEvents, "*", "event",
88
- "deduplicated", "jobId", currentDebounceJobId, "deduplicationId", deduplicationId)
89
- return currentDebounceJobId
80
+ -- Includes
81
+ --[[
82
+ Function to remove job keys.
83
+ ]]
84
+ local function removeJobKeys(jobKey)
85
+ return rcall("DEL", jobKey, jobKey .. ':logs', jobKey .. ':dependencies',
86
+ jobKey .. ':processed', jobKey .. ':failed', jobKey .. ':unsuccessful')
87
+ end
88
+ local function deduplicateJob(deduplicationOpts, jobId, delayedKey, deduplicationKey, eventsKey, maxEvents,
89
+ prefix)
90
+ local deduplicationId = deduplicationOpts and deduplicationOpts['id']
91
+ if deduplicationId then
92
+ local ttl = deduplicationOpts['ttl']
93
+ if deduplicationOpts['replace'] and ttl and ttl > 0 then
94
+ local currentDebounceJobId = rcall('GET', deduplicationKey)
95
+ if currentDebounceJobId then
96
+ if rcall("ZREM", delayedKey, currentDebounceJobId) > 0 then
97
+ removeJobKeys(prefix .. currentDebounceJobId)
98
+ rcall("XADD", eventsKey, "*", "event", "removed", "jobId", currentDebounceJobId,
99
+ "prev", "delayed")
100
+ if deduplicationOpts['extend'] then
101
+ rcall('SET', deduplicationKey, jobId, 'PX', ttl)
102
+ else
103
+ rcall('SET', deduplicationKey, jobId, 'KEEPTTL')
104
+ end
105
+ rcall("XADD", eventsKey, "MAXLEN", "~", maxEvents, "*", "event", "deduplicated", "jobId",
106
+ jobId, "deduplicationId", deduplicationId, "deduplicatedJobId", currentDebounceJobId)
107
+ return
108
+ else
109
+ return currentDebounceJobId
110
+ end
111
+ else
112
+ rcall('SET', deduplicationKey, jobId, 'PX', ttl)
113
+ return
114
+ end
115
+ else
116
+ local ttl = deduplicationOpts['ttl']
117
+ local deduplicationKeyExists
118
+ if ttl then
119
+ if deduplicationOpts['extend'] then
120
+ local currentDebounceJobId = rcall('GET', deduplicationKey)
121
+ if currentDebounceJobId then
122
+ rcall('SET', deduplicationKey, currentDebounceJobId, 'PX', ttl)
123
+ rcall("XADD", eventsKey, "MAXLEN", "~", maxEvents, "*", "event", "debounced",
124
+ "jobId", currentDebounceJobId, "debounceId", deduplicationId)
125
+ rcall("XADD", eventsKey, "MAXLEN", "~", maxEvents, "*", "event", "deduplicated", "jobId",
126
+ currentDebounceJobId, "deduplicationId", deduplicationId, "deduplicatedJobId", jobId)
127
+ return currentDebounceJobId
128
+ else
129
+ rcall('SET', deduplicationKey, jobId, 'PX', ttl)
130
+ return
131
+ end
132
+ else
133
+ deduplicationKeyExists = not rcall('SET', deduplicationKey, jobId, 'PX', ttl, 'NX')
134
+ end
135
+ else
136
+ deduplicationKeyExists = not rcall('SET', deduplicationKey, jobId, 'NX')
137
+ end
138
+ if deduplicationKeyExists then
139
+ local currentDebounceJobId = rcall('GET', deduplicationKey)
140
+ rcall("XADD", eventsKey, "MAXLEN", "~", maxEvents, "*", "event", "debounced", "jobId",
141
+ currentDebounceJobId, "debounceId", deduplicationId)
142
+ rcall("XADD", eventsKey, "MAXLEN", "~", maxEvents, "*", "event", "deduplicated", "jobId",
143
+ currentDebounceJobId, "deduplicationId", deduplicationId, "deduplicatedJobId", jobId)
144
+ return currentDebounceJobId
145
+ end
146
+ end
90
147
  end
91
- end
92
148
  end
93
149
  --[[
94
150
  Function to store a job
@@ -106,7 +162,7 @@ local function storeJob(eventsKey, jobIdKey, jobId, name, data, opts, timestamp,
106
162
  table.insert(optionalValues, "parent")
107
163
  table.insert(optionalValues, parentData)
108
164
  end
109
- if repeatJobKey ~= nil then
165
+ if repeatJobKey then
110
166
  table.insert(optionalValues, "rjk")
111
167
  table.insert(optionalValues, repeatJobKey)
112
168
  end
@@ -124,12 +180,12 @@ end
124
180
  Function to get max events value or set by default 10000.
125
181
  ]]
126
182
  local function getOrSetMaxEvents(metaKey)
127
- local maxEvents = rcall("HGET", metaKey, "opts.maxLenEvents")
128
- if not maxEvents then
129
- maxEvents = 10000
130
- rcall("HSET", metaKey, "opts.maxLenEvents", maxEvents)
131
- end
132
- return maxEvents
183
+ local maxEvents = rcall("HGET", metaKey, "opts.maxLenEvents")
184
+ if not maxEvents then
185
+ maxEvents = 10000
186
+ rcall("HSET", metaKey, "opts.maxLenEvents", maxEvents)
187
+ end
188
+ return maxEvents
133
189
  end
134
190
  --[[
135
191
  Function to handle the case when job is duplicated.
@@ -147,7 +203,16 @@ end
147
203
  ]]
148
204
  -- Includes
149
205
  --[[
150
- Validate and move parent to active if needed.
206
+ Validate and move parent to a wait status (waiting, delayed or prioritized)
207
+ if no pending dependencies.
208
+ ]]
209
+ -- Includes
210
+ --[[
211
+ Validate and move parent to a wait status (waiting, delayed or prioritized) if needed.
212
+ ]]
213
+ -- Includes
214
+ --[[
215
+ Move parent to a wait status (wait, prioritized or delayed)
151
216
  ]]
152
217
  -- Includes
153
218
  --[[
@@ -161,7 +226,7 @@ local function getNextDelayedTimestamp(delayedKey)
161
226
  local result = rcall("ZRANGE", delayedKey, 0, 0, "WITHSCORES")
162
227
  if #result then
163
228
  local nextTimestamp = tonumber(result[2])
164
- if nextTimestamp ~= nil then
229
+ if nextTimestamp ~= nil then
165
230
  return nextTimestamp / 0x1000
166
231
  end
167
232
  end
@@ -218,57 +283,64 @@ local function getTargetQueueList(queueMetaKey, activeKey, waitKey, pausedKey)
218
283
  end
219
284
  return waitKey, false
220
285
  end
221
- local function moveParentToWaitIfNeeded(parentQueueKey, parentDependenciesKey,
222
- parentKey, parentId, timestamp)
223
- local isParentActive = rcall("ZSCORE",
224
- parentQueueKey .. ":waiting-children", parentId)
225
- if rcall("SCARD", parentDependenciesKey) == 0 and isParentActive then
226
- rcall("ZREM", parentQueueKey .. ":waiting-children", parentId)
227
- local parentWaitKey = parentQueueKey .. ":wait"
228
- local parentPausedKey = parentQueueKey .. ":paused"
229
- local parentActiveKey = parentQueueKey .. ":active"
230
- local parentMetaKey = parentQueueKey .. ":meta"
231
- local parentMarkerKey = parentQueueKey .. ":marker"
232
- local jobAttributes = rcall("HMGET", parentKey, "priority", "delay")
233
- local priority = tonumber(jobAttributes[1]) or 0
234
- local delay = tonumber(jobAttributes[2]) or 0
235
- if delay > 0 then
236
- local delayedTimestamp = tonumber(timestamp) + delay
237
- local score = delayedTimestamp * 0x1000
238
- local parentDelayedKey = parentQueueKey .. ":delayed"
239
- rcall("ZADD", parentDelayedKey, score, parentId)
240
- rcall("XADD", parentQueueKey .. ":events", "*", "event", "delayed",
241
- "jobId", parentId, "delay", delayedTimestamp)
242
- addDelayMarkerIfNeeded(parentMarkerKey, parentDelayedKey)
286
+ local function moveParentToWait(parentQueueKey, parentKey, parentId, timestamp)
287
+ local parentWaitKey = parentQueueKey .. ":wait"
288
+ local parentPausedKey = parentQueueKey .. ":paused"
289
+ local parentActiveKey = parentQueueKey .. ":active"
290
+ local parentMetaKey = parentQueueKey .. ":meta"
291
+ local parentMarkerKey = parentQueueKey .. ":marker"
292
+ local jobAttributes = rcall("HMGET", parentKey, "priority", "delay")
293
+ local priority = tonumber(jobAttributes[1]) or 0
294
+ local delay = tonumber(jobAttributes[2]) or 0
295
+ if delay > 0 then
296
+ local delayedTimestamp = tonumber(timestamp) + delay
297
+ local score = delayedTimestamp * 0x1000
298
+ local parentDelayedKey = parentQueueKey .. ":delayed"
299
+ rcall("ZADD", parentDelayedKey, score, parentId)
300
+ rcall("XADD", parentQueueKey .. ":events", "*", "event", "delayed", "jobId", parentId, "delay",
301
+ delayedTimestamp)
302
+ addDelayMarkerIfNeeded(parentMarkerKey, parentDelayedKey)
303
+ else
304
+ if priority == 0 then
305
+ local parentTarget, isParentPausedOrMaxed = getTargetQueueList(parentMetaKey, parentActiveKey,
306
+ parentWaitKey, parentPausedKey)
307
+ addJobInTargetList(parentTarget, parentMarkerKey, "RPUSH", isParentPausedOrMaxed, parentId)
243
308
  else
244
- if priority == 0 then
245
- local parentTarget, isParentPausedOrMaxed =
246
- getTargetQueueList(parentMetaKey, parentActiveKey, parentWaitKey,
247
- parentPausedKey)
248
- addJobInTargetList(parentTarget, parentMarkerKey, "RPUSH", isParentPausedOrMaxed,
249
- parentId)
250
- else
251
- local isPausedOrMaxed = isQueuePausedOrMaxed(parentMetaKey, parentActiveKey)
252
- addJobWithPriority(parentMarkerKey,
253
- parentQueueKey .. ":prioritized", priority,
254
- parentId, parentQueueKey .. ":pc", isPausedOrMaxed)
255
- end
256
- rcall("XADD", parentQueueKey .. ":events", "*", "event", "waiting",
257
- "jobId", parentId, "prev", "waiting-children")
309
+ local isPausedOrMaxed = isQueuePausedOrMaxed(parentMetaKey, parentActiveKey)
310
+ addJobWithPriority(parentMarkerKey, parentQueueKey .. ":prioritized", priority, parentId,
311
+ parentQueueKey .. ":pc", isPausedOrMaxed)
258
312
  end
313
+ rcall("XADD", parentQueueKey .. ":events", "*", "event", "waiting", "jobId", parentId, "prev",
314
+ "waiting-children")
315
+ end
316
+ end
317
+ local function moveParentToWaitIfNeeded(parentQueueKey, parentKey, parentId, timestamp)
318
+ if rcall("EXISTS", parentKey) == 1 then
319
+ local parentWaitingChildrenKey = parentQueueKey .. ":waiting-children"
320
+ if rcall("ZSCORE", parentWaitingChildrenKey, parentId) then
321
+ rcall("ZREM", parentWaitingChildrenKey, parentId)
322
+ moveParentToWait(parentQueueKey, parentKey, parentId, timestamp)
259
323
  end
324
+ end
325
+ end
326
+ local function moveParentToWaitIfNoPendingDependencies(parentQueueKey, parentDependenciesKey, parentKey,
327
+ parentId, timestamp)
328
+ local doNotHavePendingDependencies = rcall("SCARD", parentDependenciesKey) == 0
329
+ if doNotHavePendingDependencies then
330
+ moveParentToWaitIfNeeded(parentQueueKey, parentKey, parentId, timestamp)
331
+ end
260
332
  end
261
333
  local function updateParentDepsIfNeeded(parentKey, parentQueueKey, parentDependenciesKey,
262
334
  parentId, jobIdKey, returnvalue, timestamp )
263
335
  local processedSet = parentKey .. ":processed"
264
336
  rcall("HSET", processedSet, jobIdKey, returnvalue)
265
- moveParentToWaitIfNeeded(parentQueueKey, parentDependenciesKey, parentKey, parentId, timestamp)
337
+ moveParentToWaitIfNoPendingDependencies(parentQueueKey, parentDependenciesKey, parentKey, parentId, timestamp)
266
338
  end
267
339
  local function updateExistingJobsParent(parentKey, parent, parentData,
268
340
  parentDependenciesKey, completedKey,
269
341
  jobIdKey, jobId, timestamp)
270
342
  if parentKey ~= nil then
271
- if rcall("ZSCORE", completedKey, jobId) ~= false then
343
+ if rcall("ZSCORE", completedKey, jobId) then
272
344
  local returnvalue = rcall("HGET", jobIdKey, "returnvalue")
273
345
  updateParentDepsIfNeeded(parentKey, parent['queueKey'],
274
346
  parentDependenciesKey, parent['id'],
@@ -318,8 +390,8 @@ else
318
390
  maxEvents, timestamp)
319
391
  end
320
392
  end
321
- local deduplicationJobId = deduplicateJob(args[1], opts['de'],
322
- jobId, deduplicationKey, eventsKey, maxEvents)
393
+ local deduplicationJobId = deduplicateJob(opts['de'], jobId, KEYS[5],
394
+ deduplicationKey, eventsKey, maxEvents, args[1])
323
395
  if deduplicationJobId then
324
396
  return deduplicationJobId
325
397
  end
@@ -342,6 +414,6 @@ return jobId .. "" -- convert to string
342
414
  export const addPrioritizedJob = {
343
415
  name: 'addPrioritizedJob',
344
416
  content,
345
- keys: 8,
417
+ keys: 9,
346
418
  };
347
- //# sourceMappingURL=addPrioritizedJob-8.js.map
419
+ //# sourceMappingURL=addPrioritizedJob-9.js.map