@tachybase/plugin-adapter-bullmq 1.3.17 → 1.3.19

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (347) hide show
  1. package/dist/externalVersion.js +2 -2
  2. package/dist/node_modules/@bull-board/api/dist/src/handlers/error.d.ts +4 -2
  3. package/dist/node_modules/@bull-board/api/dist/src/handlers/error.js +2 -2
  4. package/dist/node_modules/@bull-board/api/dist/src/handlers/pauseAll.d.ts +4 -0
  5. package/dist/node_modules/@bull-board/api/dist/src/handlers/pauseAll.js +15 -0
  6. package/dist/node_modules/@bull-board/api/dist/src/handlers/queues.js +4 -0
  7. package/dist/node_modules/@bull-board/api/dist/src/handlers/resumeAll.d.ts +4 -0
  8. package/dist/node_modules/@bull-board/api/dist/src/handlers/resumeAll.js +15 -0
  9. package/dist/node_modules/@bull-board/api/dist/src/index.js +1 -1
  10. package/dist/node_modules/@bull-board/api/dist/src/queueAdapters/base.d.ts +4 -0
  11. package/dist/node_modules/@bull-board/api/dist/src/queueAdapters/base.js +6 -0
  12. package/dist/node_modules/@bull-board/api/dist/src/queueAdapters/bull.js +6 -4
  13. package/dist/node_modules/@bull-board/api/dist/src/routes.js +4 -0
  14. package/dist/node_modules/@bull-board/api/dist/typings/app.d.ts +22 -2
  15. package/dist/node_modules/@bull-board/api/package.json +1 -1
  16. package/dist/node_modules/@bull-board/koa/dist/KoaAdapter.js +1 -1
  17. package/dist/node_modules/@bull-board/koa/dist/index.js +6 -6
  18. package/dist/node_modules/@bull-board/koa/package.json +1 -1
  19. package/dist/node_modules/bullmq/dist/cjs/classes/backoffs.js +18 -5
  20. package/dist/node_modules/bullmq/dist/cjs/classes/child-pool.js +7 -2
  21. package/dist/node_modules/bullmq/dist/cjs/classes/child-processor.js +59 -5
  22. package/dist/node_modules/bullmq/dist/cjs/classes/child.js +3 -1
  23. package/dist/node_modules/bullmq/dist/cjs/classes/errors/index.js +2 -1
  24. package/dist/node_modules/bullmq/dist/cjs/classes/errors/waiting-error.js +19 -0
  25. package/dist/node_modules/bullmq/dist/cjs/classes/flow-producer.js +21 -5
  26. package/dist/node_modules/bullmq/dist/cjs/classes/index.js +1 -0
  27. package/dist/node_modules/bullmq/dist/cjs/classes/job-scheduler.js +88 -62
  28. package/dist/node_modules/bullmq/dist/cjs/classes/job.js +216 -109
  29. package/dist/node_modules/bullmq/dist/cjs/classes/main-base.js +1 -1
  30. package/dist/node_modules/bullmq/dist/cjs/classes/queue-base.js +10 -9
  31. package/dist/node_modules/bullmq/dist/cjs/classes/queue-getters.js +34 -14
  32. package/dist/node_modules/bullmq/dist/cjs/classes/queue.js +19 -13
  33. package/dist/node_modules/bullmq/dist/cjs/classes/redis-connection.js +16 -9
  34. package/dist/node_modules/bullmq/dist/cjs/classes/repeat.js +1 -1
  35. package/dist/node_modules/bullmq/dist/cjs/classes/sandbox.js +54 -28
  36. package/dist/node_modules/bullmq/dist/cjs/classes/scripts.js +141 -39
  37. package/dist/node_modules/bullmq/dist/cjs/classes/worker.js +191 -182
  38. package/dist/node_modules/bullmq/dist/cjs/commands/addDelayedJob-6.lua +6 -17
  39. package/dist/node_modules/bullmq/dist/cjs/commands/addJobScheduler-11.lua +123 -0
  40. package/dist/node_modules/bullmq/dist/{esm/commands/addParentJob-4.lua → cjs/commands/addParentJob-5.lua} +7 -6
  41. package/dist/node_modules/bullmq/dist/cjs/commands/{addPrioritizedJob-8.lua → addPrioritizedJob-9.lua} +11 -10
  42. package/dist/node_modules/bullmq/dist/cjs/commands/addRepeatableJob-2.lua +2 -2
  43. package/dist/node_modules/bullmq/dist/{esm/commands/addStandardJob-8.lua → cjs/commands/addStandardJob-9.lua} +9 -8
  44. package/dist/node_modules/bullmq/dist/cjs/commands/cleanJobsInSet-3.lua +9 -5
  45. package/dist/node_modules/bullmq/dist/cjs/commands/drain-5.lua +16 -16
  46. package/dist/node_modules/bullmq/dist/cjs/commands/getDependencyCounts-4.lua +31 -0
  47. package/dist/node_modules/bullmq/dist/cjs/commands/getState-8.lua +5 -5
  48. package/dist/node_modules/bullmq/dist/cjs/commands/getStateV2-8.lua +8 -8
  49. package/dist/node_modules/bullmq/dist/cjs/commands/includes/addDelayedJob.lua +23 -0
  50. package/dist/node_modules/bullmq/dist/cjs/commands/includes/addJobFromScheduler.lua +37 -0
  51. package/dist/node_modules/bullmq/dist/cjs/commands/includes/addJobWithPriority.lua +2 -2
  52. package/dist/node_modules/bullmq/dist/cjs/commands/includes/cleanList.lua +4 -2
  53. package/dist/node_modules/bullmq/dist/cjs/commands/includes/cleanSet.lua +3 -11
  54. package/dist/node_modules/bullmq/dist/cjs/commands/includes/collectMetrics.lua +1 -1
  55. package/dist/node_modules/bullmq/dist/cjs/commands/includes/deduplicateJob.lua +63 -18
  56. package/dist/node_modules/bullmq/dist/cjs/commands/includes/filterOutJobsToIgnore.lua +14 -0
  57. package/dist/node_modules/bullmq/dist/cjs/commands/includes/getNextDelayedTimestamp.lua +1 -1
  58. package/dist/node_modules/bullmq/dist/cjs/commands/includes/getOrSetMaxEvents.lua +6 -6
  59. package/dist/node_modules/bullmq/dist/cjs/commands/includes/getPriorityScore.lua +8 -0
  60. package/dist/node_modules/bullmq/dist/cjs/commands/includes/isJobSchedulerJob.lua +15 -0
  61. package/dist/node_modules/bullmq/dist/cjs/commands/includes/isLocked.lua +1 -0
  62. package/dist/node_modules/bullmq/dist/cjs/commands/includes/moveChildFromDependenciesIfNeeded.lua +77 -0
  63. package/dist/node_modules/bullmq/dist/cjs/commands/includes/{moveJobFromPriorityToActive.lua → moveJobFromPrioritizedToActive.lua} +1 -1
  64. package/dist/node_modules/bullmq/dist/cjs/commands/includes/moveParentToWait.lua +45 -0
  65. package/dist/node_modules/bullmq/dist/cjs/commands/includes/moveParentToWaitIfNeeded.lua +9 -50
  66. package/dist/node_modules/bullmq/dist/cjs/commands/includes/moveParentToWaitIfNoPendingDependencies.lua +13 -0
  67. package/dist/node_modules/bullmq/dist/cjs/commands/includes/prepareJobForProcessing.lua +2 -1
  68. package/dist/node_modules/bullmq/dist/cjs/commands/includes/promoteDelayedJobs.lua +7 -3
  69. package/dist/node_modules/bullmq/dist/cjs/commands/includes/removeDeduplicationKeyIfNeededOnFinalization.lua +23 -0
  70. package/dist/node_modules/bullmq/dist/cjs/commands/includes/removeDeduplicationKeyIfNeededOnRemoval.lua +16 -0
  71. package/dist/node_modules/bullmq/dist/cjs/commands/includes/removeJob.lua +2 -2
  72. package/dist/node_modules/bullmq/dist/cjs/commands/includes/removeJobKeys.lua +2 -2
  73. package/dist/node_modules/bullmq/dist/cjs/commands/includes/removeJobWithChildren.lua +95 -0
  74. package/dist/node_modules/bullmq/dist/cjs/commands/includes/removeListJobs.lua +7 -1
  75. package/dist/node_modules/bullmq/dist/cjs/commands/includes/removeParentDependencyKey.lua +5 -5
  76. package/dist/node_modules/bullmq/dist/cjs/commands/includes/removeZSetJobs.lua +2 -8
  77. package/dist/node_modules/bullmq/dist/cjs/commands/includes/storeJob.lua +2 -2
  78. package/dist/node_modules/bullmq/dist/cjs/commands/includes/storeJobScheduler.lua +52 -0
  79. package/dist/node_modules/bullmq/dist/cjs/commands/includes/trimEvents.lua +1 -1
  80. package/dist/node_modules/bullmq/dist/cjs/commands/includes/updateExistingJobsParent.lua +1 -1
  81. package/dist/node_modules/bullmq/dist/cjs/commands/includes/updateJobFields.lua +5 -5
  82. package/dist/node_modules/bullmq/dist/cjs/commands/includes/updateParentDepsIfNeeded.lua +2 -2
  83. package/dist/node_modules/bullmq/dist/cjs/commands/isFinished-3.lua +2 -2
  84. package/dist/node_modules/bullmq/dist/cjs/commands/moveJobFromActiveToWait-9.lua +63 -0
  85. package/dist/node_modules/bullmq/dist/cjs/commands/moveStalledJobsToWait-8.lua +109 -0
  86. package/dist/node_modules/bullmq/dist/cjs/commands/moveToActive-11.lua +3 -2
  87. package/dist/node_modules/bullmq/dist/cjs/commands/moveToFinished-14.lua +52 -52
  88. package/dist/node_modules/bullmq/dist/cjs/commands/moveToWaitingChildren-8.lua +106 -0
  89. package/dist/node_modules/bullmq/dist/cjs/commands/removeJob-2.lua +18 -66
  90. package/dist/node_modules/bullmq/dist/cjs/commands/removeJobScheduler-3.lua +1 -1
  91. package/dist/node_modules/bullmq/dist/cjs/commands/removeUnprocessedChildren-2.lua +31 -0
  92. package/dist/node_modules/bullmq/dist/cjs/commands/retryJob-11.lua +11 -5
  93. package/dist/node_modules/bullmq/dist/cjs/commands/updateJobScheduler-12.lua +90 -0
  94. package/dist/node_modules/bullmq/dist/cjs/commands/updateRepeatableJobMillis-1.lua +1 -1
  95. package/dist/node_modules/bullmq/dist/cjs/enums/child-command.js +2 -0
  96. package/dist/node_modules/bullmq/dist/cjs/enums/error-code.js +2 -1
  97. package/dist/node_modules/bullmq/dist/cjs/enums/parent-command.js +5 -2
  98. package/dist/node_modules/bullmq/dist/cjs/index.js +1 -1
  99. package/dist/node_modules/bullmq/dist/cjs/interfaces/index.js +2 -1
  100. package/dist/node_modules/bullmq/dist/cjs/interfaces/{debounce-options.js → parent-options.js} +1 -1
  101. package/dist/node_modules/bullmq/dist/cjs/interfaces/receiver.js +3 -0
  102. package/dist/node_modules/bullmq/dist/cjs/scripts/addDelayedJob-6.js +163 -84
  103. package/dist/node_modules/bullmq/dist/cjs/scripts/addJobScheduler-11.js +465 -0
  104. package/dist/node_modules/bullmq/dist/cjs/scripts/{addParentJob-4.js → addParentJob-5.js} +147 -75
  105. package/dist/node_modules/bullmq/dist/cjs/scripts/{addPrioritizedJob-8.js → addPrioritizedJob-9.js} +151 -79
  106. package/dist/node_modules/bullmq/dist/cjs/scripts/addRepeatableJob-2.js +18 -13
  107. package/dist/node_modules/bullmq/dist/cjs/scripts/{addStandardJob-8.js → addStandardJob-9.js} +149 -77
  108. package/dist/node_modules/bullmq/dist/cjs/scripts/changeDelay-4.js +7 -7
  109. package/dist/node_modules/bullmq/dist/cjs/scripts/changePriority-7.js +8 -2
  110. package/dist/node_modules/bullmq/dist/cjs/scripts/cleanJobsInSet-3.js +45 -29
  111. package/dist/node_modules/bullmq/dist/cjs/scripts/drain-5.js +49 -35
  112. package/dist/node_modules/bullmq/dist/cjs/scripts/getDependencyCounts-4.js +37 -0
  113. package/dist/node_modules/bullmq/dist/cjs/scripts/getState-8.js +5 -5
  114. package/dist/node_modules/bullmq/dist/cjs/scripts/getStateV2-8.js +8 -8
  115. package/dist/node_modules/bullmq/dist/cjs/scripts/index.js +10 -7
  116. package/dist/node_modules/bullmq/dist/cjs/scripts/isFinished-3.js +2 -2
  117. package/dist/node_modules/bullmq/dist/cjs/scripts/{moveJobFromActiveToWait-10.js → moveJobFromActiveToWait-9.js} +57 -37
  118. package/dist/node_modules/bullmq/dist/cjs/scripts/moveJobsToWait-8.js +6 -6
  119. package/dist/node_modules/bullmq/dist/cjs/scripts/moveStalledJobsToWait-8.js +171 -0
  120. package/dist/node_modules/bullmq/dist/cjs/scripts/moveToActive-11.js +18 -8
  121. package/dist/node_modules/bullmq/dist/cjs/scripts/moveToDelayed-8.js +12 -12
  122. package/dist/node_modules/bullmq/dist/cjs/scripts/moveToFinished-14.js +218 -155
  123. package/dist/node_modules/bullmq/dist/cjs/scripts/moveToWaitingChildren-8.js +529 -0
  124. package/dist/node_modules/bullmq/dist/cjs/scripts/obliterate-2.js +33 -20
  125. package/dist/node_modules/bullmq/dist/cjs/scripts/pause-7.js +1 -1
  126. package/dist/node_modules/bullmq/dist/cjs/scripts/promote-9.js +8 -2
  127. package/dist/node_modules/bullmq/dist/cjs/scripts/removeChildDependency-1.js +7 -7
  128. package/dist/node_modules/bullmq/dist/cjs/scripts/removeJob-2.js +120 -63
  129. package/dist/node_modules/bullmq/dist/cjs/scripts/removeJobScheduler-3.js +3 -3
  130. package/dist/node_modules/bullmq/dist/cjs/scripts/removeRepeatable-3.js +2 -2
  131. package/dist/node_modules/bullmq/dist/cjs/scripts/removeUnprocessedChildren-2.js +339 -0
  132. package/dist/node_modules/bullmq/dist/cjs/scripts/reprocessJob-8.js +6 -6
  133. package/dist/node_modules/bullmq/dist/cjs/scripts/retryJob-11.js +47 -26
  134. package/dist/node_modules/bullmq/dist/cjs/scripts/updateJobScheduler-12.js +274 -0
  135. package/dist/node_modules/bullmq/dist/cjs/scripts/updateProgress-3.js +6 -6
  136. package/dist/node_modules/bullmq/dist/cjs/scripts/updateRepeatableJobMillis-1.js +1 -1
  137. package/dist/node_modules/bullmq/dist/cjs/tsconfig-cjs.tsbuildinfo +1 -1
  138. package/dist/node_modules/bullmq/dist/cjs/types/deduplication-options.js +3 -0
  139. package/dist/node_modules/bullmq/dist/cjs/types/index.js +3 -0
  140. package/dist/node_modules/bullmq/dist/cjs/types/job-progress.js +3 -0
  141. package/dist/node_modules/bullmq/dist/cjs/types/script-queue-context.js +3 -0
  142. package/dist/node_modules/bullmq/dist/cjs/utils.js +29 -1
  143. package/dist/node_modules/bullmq/dist/cjs/version.js +1 -1
  144. package/dist/node_modules/bullmq/dist/esm/classes/backoffs.d.ts +1 -1
  145. package/dist/node_modules/bullmq/dist/esm/classes/backoffs.js +18 -5
  146. package/dist/node_modules/bullmq/dist/esm/classes/child-pool.d.ts +1 -1
  147. package/dist/node_modules/bullmq/dist/esm/classes/child-pool.js +7 -2
  148. package/dist/node_modules/bullmq/dist/esm/classes/child-processor.d.ts +3 -2
  149. package/dist/node_modules/bullmq/dist/esm/classes/child-processor.js +59 -5
  150. package/dist/node_modules/bullmq/dist/esm/classes/child.js +3 -1
  151. package/dist/node_modules/bullmq/dist/esm/classes/errors/index.d.ts +2 -1
  152. package/dist/node_modules/bullmq/dist/esm/classes/errors/index.js +2 -1
  153. package/dist/node_modules/bullmq/dist/esm/classes/errors/waiting-error.d.ts +10 -0
  154. package/dist/node_modules/bullmq/dist/esm/classes/errors/waiting-error.js +15 -0
  155. package/dist/node_modules/bullmq/dist/esm/classes/flow-producer.d.ts +3 -9
  156. package/dist/node_modules/bullmq/dist/esm/classes/flow-producer.js +21 -5
  157. package/dist/node_modules/bullmq/dist/esm/classes/index.d.ts +1 -0
  158. package/dist/node_modules/bullmq/dist/esm/classes/index.js +1 -0
  159. package/dist/node_modules/bullmq/dist/esm/classes/job-scheduler.d.ts +2 -2
  160. package/dist/node_modules/bullmq/dist/esm/classes/job-scheduler.js +88 -62
  161. package/dist/node_modules/bullmq/dist/esm/classes/job.d.ts +69 -19
  162. package/dist/node_modules/bullmq/dist/esm/classes/job.js +217 -110
  163. package/dist/node_modules/bullmq/dist/esm/classes/main-base.d.ts +2 -3
  164. package/dist/node_modules/bullmq/dist/esm/classes/main-base.js +1 -1
  165. package/dist/node_modules/bullmq/dist/esm/classes/queue-base.d.ts +2 -5
  166. package/dist/node_modules/bullmq/dist/esm/classes/queue-base.js +11 -10
  167. package/dist/node_modules/bullmq/dist/esm/classes/queue-events-producer.d.ts +2 -2
  168. package/dist/node_modules/bullmq/dist/esm/classes/queue-events.d.ts +118 -29
  169. package/dist/node_modules/bullmq/dist/esm/classes/queue-getters.d.ts +20 -13
  170. package/dist/node_modules/bullmq/dist/esm/classes/queue-getters.js +34 -14
  171. package/dist/node_modules/bullmq/dist/esm/classes/queue.d.ts +19 -16
  172. package/dist/node_modules/bullmq/dist/esm/classes/queue.js +19 -13
  173. package/dist/node_modules/bullmq/dist/esm/classes/redis-connection.d.ts +7 -3
  174. package/dist/node_modules/bullmq/dist/esm/classes/redis-connection.js +16 -9
  175. package/dist/node_modules/bullmq/dist/esm/classes/repeat.js +1 -1
  176. package/dist/node_modules/bullmq/dist/esm/classes/sandbox.js +54 -28
  177. package/dist/node_modules/bullmq/dist/esm/classes/scripts.d.ts +20 -13
  178. package/dist/node_modules/bullmq/dist/esm/classes/scripts.js +141 -39
  179. package/dist/node_modules/bullmq/dist/esm/classes/worker.d.ts +28 -7
  180. package/dist/node_modules/bullmq/dist/esm/classes/worker.js +192 -183
  181. package/dist/node_modules/bullmq/dist/esm/commands/addDelayedJob-6.lua +6 -17
  182. package/dist/node_modules/bullmq/dist/esm/commands/addJobScheduler-11.lua +123 -0
  183. package/dist/node_modules/bullmq/dist/{cjs/commands/addParentJob-4.lua → esm/commands/addParentJob-5.lua} +7 -6
  184. package/dist/node_modules/bullmq/dist/esm/commands/{addPrioritizedJob-8.lua → addPrioritizedJob-9.lua} +11 -10
  185. package/dist/node_modules/bullmq/dist/esm/commands/addRepeatableJob-2.lua +2 -2
  186. package/dist/node_modules/bullmq/dist/{cjs/commands/addStandardJob-8.lua → esm/commands/addStandardJob-9.lua} +9 -8
  187. package/dist/node_modules/bullmq/dist/esm/commands/cleanJobsInSet-3.lua +9 -5
  188. package/dist/node_modules/bullmq/dist/esm/commands/drain-5.lua +16 -16
  189. package/dist/node_modules/bullmq/dist/esm/commands/getDependencyCounts-4.lua +31 -0
  190. package/dist/node_modules/bullmq/dist/esm/commands/getState-8.lua +5 -5
  191. package/dist/node_modules/bullmq/dist/esm/commands/getStateV2-8.lua +8 -8
  192. package/dist/node_modules/bullmq/dist/esm/commands/includes/addDelayedJob.lua +23 -0
  193. package/dist/node_modules/bullmq/dist/esm/commands/includes/addJobFromScheduler.lua +37 -0
  194. package/dist/node_modules/bullmq/dist/esm/commands/includes/addJobWithPriority.lua +2 -2
  195. package/dist/node_modules/bullmq/dist/esm/commands/includes/cleanList.lua +4 -2
  196. package/dist/node_modules/bullmq/dist/esm/commands/includes/cleanSet.lua +3 -11
  197. package/dist/node_modules/bullmq/dist/esm/commands/includes/collectMetrics.lua +1 -1
  198. package/dist/node_modules/bullmq/dist/esm/commands/includes/deduplicateJob.lua +63 -18
  199. package/dist/node_modules/bullmq/dist/esm/commands/includes/filterOutJobsToIgnore.lua +14 -0
  200. package/dist/node_modules/bullmq/dist/esm/commands/includes/getNextDelayedTimestamp.lua +1 -1
  201. package/dist/node_modules/bullmq/dist/esm/commands/includes/getOrSetMaxEvents.lua +6 -6
  202. package/dist/node_modules/bullmq/dist/esm/commands/includes/getPriorityScore.lua +8 -0
  203. package/dist/node_modules/bullmq/dist/esm/commands/includes/isJobSchedulerJob.lua +15 -0
  204. package/dist/node_modules/bullmq/dist/esm/commands/includes/isLocked.lua +1 -0
  205. package/dist/node_modules/bullmq/dist/esm/commands/includes/moveChildFromDependenciesIfNeeded.lua +77 -0
  206. package/dist/node_modules/bullmq/dist/esm/commands/includes/{moveJobFromPriorityToActive.lua → moveJobFromPrioritizedToActive.lua} +1 -1
  207. package/dist/node_modules/bullmq/dist/esm/commands/includes/moveParentToWait.lua +45 -0
  208. package/dist/node_modules/bullmq/dist/esm/commands/includes/moveParentToWaitIfNeeded.lua +9 -50
  209. package/dist/node_modules/bullmq/dist/esm/commands/includes/moveParentToWaitIfNoPendingDependencies.lua +13 -0
  210. package/dist/node_modules/bullmq/dist/esm/commands/includes/prepareJobForProcessing.lua +2 -1
  211. package/dist/node_modules/bullmq/dist/esm/commands/includes/promoteDelayedJobs.lua +7 -3
  212. package/dist/node_modules/bullmq/dist/esm/commands/includes/removeDeduplicationKeyIfNeededOnFinalization.lua +23 -0
  213. package/dist/node_modules/bullmq/dist/esm/commands/includes/removeDeduplicationKeyIfNeededOnRemoval.lua +16 -0
  214. package/dist/node_modules/bullmq/dist/esm/commands/includes/removeJob.lua +2 -2
  215. package/dist/node_modules/bullmq/dist/esm/commands/includes/removeJobKeys.lua +2 -2
  216. package/dist/node_modules/bullmq/dist/esm/commands/includes/removeJobWithChildren.lua +95 -0
  217. package/dist/node_modules/bullmq/dist/esm/commands/includes/removeListJobs.lua +7 -1
  218. package/dist/node_modules/bullmq/dist/esm/commands/includes/removeParentDependencyKey.lua +5 -5
  219. package/dist/node_modules/bullmq/dist/esm/commands/includes/removeZSetJobs.lua +2 -8
  220. package/dist/node_modules/bullmq/dist/esm/commands/includes/storeJob.lua +2 -2
  221. package/dist/node_modules/bullmq/dist/esm/commands/includes/storeJobScheduler.lua +52 -0
  222. package/dist/node_modules/bullmq/dist/esm/commands/includes/trimEvents.lua +1 -1
  223. package/dist/node_modules/bullmq/dist/esm/commands/includes/updateExistingJobsParent.lua +1 -1
  224. package/dist/node_modules/bullmq/dist/esm/commands/includes/updateJobFields.lua +5 -5
  225. package/dist/node_modules/bullmq/dist/esm/commands/includes/updateParentDepsIfNeeded.lua +2 -2
  226. package/dist/node_modules/bullmq/dist/esm/commands/isFinished-3.lua +2 -2
  227. package/dist/node_modules/bullmq/dist/esm/commands/moveJobFromActiveToWait-9.lua +63 -0
  228. package/dist/node_modules/bullmq/dist/esm/commands/moveStalledJobsToWait-8.lua +109 -0
  229. package/dist/node_modules/bullmq/dist/esm/commands/moveToActive-11.lua +3 -2
  230. package/dist/node_modules/bullmq/dist/esm/commands/moveToFinished-14.lua +52 -52
  231. package/dist/node_modules/bullmq/dist/esm/commands/moveToWaitingChildren-8.lua +106 -0
  232. package/dist/node_modules/bullmq/dist/esm/commands/removeJob-2.lua +18 -66
  233. package/dist/node_modules/bullmq/dist/esm/commands/removeJobScheduler-3.lua +1 -1
  234. package/dist/node_modules/bullmq/dist/esm/commands/removeUnprocessedChildren-2.lua +31 -0
  235. package/dist/node_modules/bullmq/dist/esm/commands/retryJob-11.lua +11 -5
  236. package/dist/node_modules/bullmq/dist/esm/commands/updateJobScheduler-12.lua +90 -0
  237. package/dist/node_modules/bullmq/dist/esm/commands/updateRepeatableJobMillis-1.lua +1 -1
  238. package/dist/node_modules/bullmq/dist/esm/enums/child-command.d.ts +3 -1
  239. package/dist/node_modules/bullmq/dist/esm/enums/child-command.js +2 -0
  240. package/dist/node_modules/bullmq/dist/esm/enums/error-code.d.ts +3 -2
  241. package/dist/node_modules/bullmq/dist/esm/enums/error-code.js +2 -1
  242. package/dist/node_modules/bullmq/dist/esm/enums/parent-command.d.ts +5 -2
  243. package/dist/node_modules/bullmq/dist/esm/enums/parent-command.js +5 -2
  244. package/dist/node_modules/bullmq/dist/esm/interfaces/backoff-options.d.ts +5 -0
  245. package/dist/node_modules/bullmq/dist/esm/interfaces/base-job-options.d.ts +3 -9
  246. package/dist/node_modules/bullmq/dist/esm/interfaces/child-message.d.ts +1 -0
  247. package/dist/node_modules/bullmq/dist/esm/interfaces/index.d.ts +2 -1
  248. package/dist/node_modules/bullmq/dist/esm/interfaces/index.js +2 -1
  249. package/dist/node_modules/bullmq/dist/esm/interfaces/job-json.d.ts +6 -2
  250. package/dist/node_modules/bullmq/dist/esm/interfaces/job-scheduler-json.d.ts +7 -4
  251. package/dist/node_modules/bullmq/dist/esm/interfaces/minimal-job.d.ts +34 -15
  252. package/dist/node_modules/bullmq/dist/esm/interfaces/parent-options.d.ts +11 -0
  253. package/dist/node_modules/bullmq/dist/esm/interfaces/parent-options.js +2 -0
  254. package/dist/node_modules/bullmq/dist/esm/interfaces/parent.d.ts +6 -2
  255. package/dist/node_modules/bullmq/dist/esm/interfaces/queue-options.d.ts +15 -6
  256. package/dist/node_modules/bullmq/dist/esm/interfaces/receiver.d.ts +4 -0
  257. package/dist/node_modules/bullmq/dist/esm/interfaces/receiver.js +2 -0
  258. package/dist/node_modules/bullmq/dist/esm/interfaces/repeat-options.d.ts +1 -2
  259. package/dist/node_modules/bullmq/dist/esm/interfaces/repeatable-options.d.ts +2 -0
  260. package/dist/node_modules/bullmq/dist/esm/interfaces/sandboxed-job.d.ts +3 -2
  261. package/dist/node_modules/bullmq/dist/esm/interfaces/sandboxed-options.d.ts +1 -1
  262. package/dist/node_modules/bullmq/dist/esm/interfaces/telemetry.d.ts +18 -15
  263. package/dist/node_modules/bullmq/dist/esm/interfaces/worker-options.d.ts +10 -10
  264. package/dist/node_modules/bullmq/dist/esm/scripts/addDelayedJob-6.js +163 -84
  265. package/dist/node_modules/bullmq/dist/esm/scripts/addJobScheduler-11.js +462 -0
  266. package/dist/node_modules/bullmq/dist/esm/scripts/{addParentJob-4.js → addParentJob-5.js} +147 -75
  267. package/dist/node_modules/bullmq/dist/esm/scripts/{addPrioritizedJob-8.js → addPrioritizedJob-9.js} +151 -79
  268. package/dist/node_modules/bullmq/dist/esm/scripts/addRepeatableJob-2.js +18 -13
  269. package/dist/node_modules/bullmq/dist/esm/scripts/{addStandardJob-8.js → addStandardJob-9.js} +149 -77
  270. package/dist/node_modules/bullmq/dist/esm/scripts/changeDelay-4.js +7 -7
  271. package/dist/node_modules/bullmq/dist/esm/scripts/changePriority-7.js +8 -2
  272. package/dist/node_modules/bullmq/dist/esm/scripts/cleanJobsInSet-3.js +45 -29
  273. package/dist/node_modules/bullmq/dist/esm/scripts/drain-5.js +49 -35
  274. package/dist/node_modules/bullmq/dist/esm/scripts/getDependencyCounts-4.d.ts +5 -0
  275. package/dist/node_modules/bullmq/dist/esm/scripts/getDependencyCounts-4.js +34 -0
  276. package/dist/node_modules/bullmq/dist/esm/scripts/getState-8.js +5 -5
  277. package/dist/node_modules/bullmq/dist/esm/scripts/getStateV2-8.js +8 -8
  278. package/dist/node_modules/bullmq/dist/esm/scripts/index.d.ts +10 -7
  279. package/dist/node_modules/bullmq/dist/esm/scripts/index.js +10 -7
  280. package/dist/node_modules/bullmq/dist/esm/scripts/isFinished-3.js +2 -2
  281. package/dist/node_modules/bullmq/dist/esm/scripts/{moveJobFromActiveToWait-10.js → moveJobFromActiveToWait-9.js} +57 -37
  282. package/dist/node_modules/bullmq/dist/esm/scripts/moveJobsToWait-8.js +6 -6
  283. package/dist/node_modules/bullmq/dist/esm/scripts/moveStalledJobsToWait-8.js +168 -0
  284. package/dist/node_modules/bullmq/dist/esm/scripts/moveToActive-11.js +18 -8
  285. package/dist/node_modules/bullmq/dist/esm/scripts/moveToDelayed-8.js +12 -12
  286. package/dist/node_modules/bullmq/dist/esm/scripts/moveToFinished-14.js +218 -155
  287. package/dist/node_modules/bullmq/dist/esm/scripts/moveToWaitingChildren-8.js +526 -0
  288. package/dist/node_modules/bullmq/dist/esm/scripts/obliterate-2.js +33 -20
  289. package/dist/node_modules/bullmq/dist/esm/scripts/pause-7.js +1 -1
  290. package/dist/node_modules/bullmq/dist/esm/scripts/promote-9.js +8 -2
  291. package/dist/node_modules/bullmq/dist/esm/scripts/removeChildDependency-1.js +7 -7
  292. package/dist/node_modules/bullmq/dist/esm/scripts/removeJob-2.js +120 -63
  293. package/dist/node_modules/bullmq/dist/esm/scripts/removeJobScheduler-3.js +3 -3
  294. package/dist/node_modules/bullmq/dist/esm/scripts/removeRepeatable-3.js +2 -2
  295. package/dist/node_modules/bullmq/dist/esm/scripts/removeUnprocessedChildren-2.d.ts +5 -0
  296. package/dist/node_modules/bullmq/dist/esm/scripts/removeUnprocessedChildren-2.js +336 -0
  297. package/dist/node_modules/bullmq/dist/esm/scripts/reprocessJob-8.js +6 -6
  298. package/dist/node_modules/bullmq/dist/esm/scripts/retryJob-11.js +47 -26
  299. package/dist/node_modules/bullmq/dist/esm/scripts/updateJobScheduler-12.d.ts +5 -0
  300. package/dist/node_modules/bullmq/dist/esm/scripts/updateJobScheduler-12.js +271 -0
  301. package/dist/node_modules/bullmq/dist/esm/scripts/updateProgress-3.js +6 -6
  302. package/dist/node_modules/bullmq/dist/esm/scripts/updateRepeatableJobMillis-1.js +1 -1
  303. package/dist/node_modules/bullmq/dist/esm/tsconfig.tsbuildinfo +1 -1
  304. package/dist/node_modules/bullmq/dist/esm/types/deduplication-options.d.ts +22 -0
  305. package/dist/node_modules/bullmq/dist/esm/types/deduplication-options.js +2 -0
  306. package/dist/node_modules/bullmq/dist/esm/types/index.d.ts +3 -0
  307. package/dist/node_modules/bullmq/dist/esm/types/index.js +3 -0
  308. package/dist/node_modules/bullmq/dist/esm/types/job-options.d.ts +19 -8
  309. package/dist/node_modules/bullmq/dist/esm/types/job-progress.d.ts +1 -0
  310. package/dist/node_modules/bullmq/dist/esm/types/job-progress.js +2 -0
  311. package/dist/node_modules/bullmq/dist/esm/types/script-queue-context.d.ts +2 -0
  312. package/dist/node_modules/bullmq/dist/esm/types/script-queue-context.js +2 -0
  313. package/dist/node_modules/bullmq/dist/esm/utils.d.ts +25 -5
  314. package/dist/node_modules/bullmq/dist/esm/utils.js +27 -0
  315. package/dist/node_modules/bullmq/dist/esm/version.d.ts +1 -1
  316. package/dist/node_modules/bullmq/dist/esm/version.js +1 -1
  317. package/dist/node_modules/bullmq/package.json +1 -1
  318. package/package.json +7 -7
  319. package/dist/node_modules/bullmq/dist/cjs/commands/addJobScheduler-2.lua +0 -91
  320. package/dist/node_modules/bullmq/dist/cjs/commands/includes/moveParentFromWaitingChildrenToFailed.lua +0 -53
  321. package/dist/node_modules/bullmq/dist/cjs/commands/includes/removeDeduplicationKey.lua +0 -11
  322. package/dist/node_modules/bullmq/dist/cjs/commands/includes/removeDeduplicationKeyIfNeeded.lua +0 -14
  323. package/dist/node_modules/bullmq/dist/cjs/commands/moveJobFromActiveToWait-10.lua +0 -60
  324. package/dist/node_modules/bullmq/dist/cjs/commands/moveStalledJobsToWait-9.lua +0 -156
  325. package/dist/node_modules/bullmq/dist/cjs/commands/moveToWaitingChildren-5.lua +0 -68
  326. package/dist/node_modules/bullmq/dist/cjs/scripts/addJobScheduler-2.js +0 -237
  327. package/dist/node_modules/bullmq/dist/cjs/scripts/moveStalledJobsToWait-9.js +0 -529
  328. package/dist/node_modules/bullmq/dist/cjs/scripts/moveToWaitingChildren-5.js +0 -83
  329. package/dist/node_modules/bullmq/dist/esm/commands/addJobScheduler-2.lua +0 -91
  330. package/dist/node_modules/bullmq/dist/esm/commands/includes/moveParentFromWaitingChildrenToFailed.lua +0 -53
  331. package/dist/node_modules/bullmq/dist/esm/commands/includes/removeDeduplicationKey.lua +0 -11
  332. package/dist/node_modules/bullmq/dist/esm/commands/includes/removeDeduplicationKeyIfNeeded.lua +0 -14
  333. package/dist/node_modules/bullmq/dist/esm/commands/moveJobFromActiveToWait-10.lua +0 -60
  334. package/dist/node_modules/bullmq/dist/esm/commands/moveStalledJobsToWait-9.lua +0 -156
  335. package/dist/node_modules/bullmq/dist/esm/commands/moveToWaitingChildren-5.lua +0 -68
  336. package/dist/node_modules/bullmq/dist/esm/interfaces/debounce-options.d.ts +0 -13
  337. package/dist/node_modules/bullmq/dist/esm/interfaces/debounce-options.js +0 -2
  338. package/dist/node_modules/bullmq/dist/esm/scripts/addJobScheduler-2.js +0 -234
  339. package/dist/node_modules/bullmq/dist/esm/scripts/moveStalledJobsToWait-9.js +0 -526
  340. package/dist/node_modules/bullmq/dist/esm/scripts/moveToWaitingChildren-5.js +0 -80
  341. /package/dist/node_modules/bullmq/dist/esm/scripts/{addJobScheduler-2.d.ts → addJobScheduler-11.d.ts} +0 -0
  342. /package/dist/node_modules/bullmq/dist/esm/scripts/{addParentJob-4.d.ts → addParentJob-5.d.ts} +0 -0
  343. /package/dist/node_modules/bullmq/dist/esm/scripts/{addPrioritizedJob-8.d.ts → addPrioritizedJob-9.d.ts} +0 -0
  344. /package/dist/node_modules/bullmq/dist/esm/scripts/{addStandardJob-8.d.ts → addStandardJob-9.d.ts} +0 -0
  345. /package/dist/node_modules/bullmq/dist/esm/scripts/{moveJobFromActiveToWait-10.d.ts → moveJobFromActiveToWait-9.d.ts} +0 -0
  346. /package/dist/node_modules/bullmq/dist/esm/scripts/{moveStalledJobsToWait-9.d.ts → moveStalledJobsToWait-8.d.ts} +0 -0
  347. /package/dist/node_modules/bullmq/dist/esm/scripts/{moveToWaitingChildren-5.d.ts → moveToWaitingChildren-8.d.ts} +0 -0
@@ -0,0 +1,123 @@
1
+ --[[
2
+ Adds a job scheduler, i.e. a job factory that creates jobs based on a given schedule (repeat options).
3
+
4
+ Input:
5
+ KEYS[1] 'repeat' key
6
+ KEYS[2] 'delayed' key
7
+ KEYS[3] 'wait' key
8
+ KEYS[4] 'paused' key
9
+ KEYS[5] 'meta' key
10
+ KEYS[6] 'prioritized' key
11
+ KEYS[7] 'marker' key
12
+ KEYS[8] 'id' key
13
+ KEYS[9] 'events' key
14
+ KEYS[10] 'pc' priority counter
15
+ KEYS[11] 'active' key
16
+
17
+ ARGV[1] next milliseconds
18
+ ARGV[2] msgpacked options
19
+ [1] name
20
+ [2] tz?
21
+ [3] patten?
22
+ [4] endDate?
23
+ [5] every?
24
+ ARGV[3] jobs scheduler id
25
+ ARGV[4] Json stringified template data
26
+ ARGV[5] mspacked template opts
27
+ ARGV[6] msgpacked delayed opts
28
+ ARGV[7] timestamp
29
+ ARGV[8] prefix key
30
+ ARGV[9] producer key
31
+
32
+ Output:
33
+ repeatableKey - OK
34
+ ]]
35
+ local rcall = redis.call
36
+ local repeatKey = KEYS[1]
37
+ local delayedKey = KEYS[2]
38
+ local waitKey = KEYS[3]
39
+ local pausedKey = KEYS[4]
40
+ local metaKey = KEYS[5]
41
+ local prioritizedKey = KEYS[6]
42
+ local eventsKey = KEYS[9]
43
+
44
+ local nextMillis = ARGV[1]
45
+ local jobSchedulerId = ARGV[3]
46
+ local templateOpts = cmsgpack.unpack(ARGV[5])
47
+ local prefixKey = ARGV[8]
48
+
49
+ -- Includes
50
+ --- @include "includes/addJobFromScheduler"
51
+ --- @include "includes/getOrSetMaxEvents"
52
+ --- @include "includes/isQueuePaused"
53
+ --- @include "includes/removeJob"
54
+ --- @include "includes/storeJobScheduler"
55
+
56
+ -- If we are overriding a repeatable job we must delete the delayed job for
57
+ -- the next iteration.
58
+ local schedulerKey = repeatKey .. ":" .. jobSchedulerId
59
+ local nextDelayedJobKey = schedulerKey .. ":" .. nextMillis
60
+ local nextDelayedJobId = "repeat:" .. jobSchedulerId .. ":" .. nextMillis
61
+
62
+ local maxEvents = getOrSetMaxEvents(metaKey)
63
+
64
+ local function removeJobFromScheduler(prefixKey, delayedKey, prioritizedKey, waitKey, pausedKey, jobId,
65
+ metaKey, eventsKey)
66
+ if rcall("ZSCORE", delayedKey, jobId) then
67
+ removeJob(jobId, true, prefixKey, true --[[remove debounce key]] )
68
+ rcall("ZREM", delayedKey, jobId)
69
+ return true
70
+ elseif rcall("ZSCORE", prioritizedKey, jobId) then
71
+ removeJob(jobId, true, prefixKey, true --[[remove debounce key]] )
72
+ rcall("ZREM", prioritizedKey, jobId)
73
+ return true
74
+ else
75
+ local pausedOrWaitKey = waitKey
76
+ if isQueuePaused(metaKey) then
77
+ pausedOrWaitKey = pausedKey
78
+ end
79
+
80
+ if rcall("LREM", pausedOrWaitKey, 1, jobId) > 0 then
81
+ removeJob(jobId, true, prefixKey, true --[[remove debounce key]] )
82
+ return true
83
+ end
84
+ end
85
+ return false
86
+ end
87
+
88
+ if rcall("EXISTS", nextDelayedJobKey) == 1 then
89
+ if not removeJobFromScheduler(prefixKey, delayedKey, prioritizedKey, waitKey, pausedKey,
90
+ nextDelayedJobId, metaKey, eventsKey) then
91
+ rcall("XADD", eventsKey, "MAXLEN", "~", maxEvents, "*", "event",
92
+ "duplicated", "jobId", nextDelayedJobId)
93
+
94
+ return nextDelayedJobId .. "" -- convert to string
95
+ end
96
+ end
97
+
98
+ local prevMillis = rcall("ZSCORE", repeatKey, jobSchedulerId)
99
+
100
+ if prevMillis then
101
+ local currentJobId = "repeat:" .. jobSchedulerId .. ":" .. prevMillis
102
+ local currentDelayedJobKey = schedulerKey .. ":" .. prevMillis
103
+
104
+ if currentJobId ~= nextDelayedJobId and rcall("EXISTS", currentDelayedJobKey) == 1 then
105
+ removeJobFromScheduler(prefixKey, delayedKey, prioritizedKey, waitKey, pausedKey,
106
+ currentJobId, metaKey, eventsKey)
107
+ end
108
+ end
109
+
110
+ local schedulerOpts = cmsgpack.unpack(ARGV[2])
111
+ storeJobScheduler(jobSchedulerId, schedulerKey, repeatKey, nextMillis, schedulerOpts, ARGV[4], templateOpts)
112
+
113
+ rcall("INCR", KEYS[8])
114
+
115
+ addJobFromScheduler(nextDelayedJobKey, nextDelayedJobId, ARGV[6], waitKey, pausedKey,
116
+ KEYS[11], metaKey, prioritizedKey, KEYS[10], delayedKey, KEYS[7], eventsKey,
117
+ schedulerOpts['name'], maxEvents, ARGV[7], ARGV[4], jobSchedulerId)
118
+
119
+ if ARGV[9] ~= "" then
120
+ rcall("HSET", ARGV[9], "nrjid", nextDelayedJobId)
121
+ end
122
+
123
+ return nextDelayedJobId .. "" -- convert to string
@@ -7,8 +7,9 @@
7
7
  Input:
8
8
  KEYS[1] 'meta'
9
9
  KEYS[2] 'id'
10
- KEYS[3] 'completed'
11
- KEYS[4] events stream key
10
+ KEYS[3] 'delayed'
11
+ KEYS[4] 'completed'
12
+ KEYS[5] events stream key
12
13
 
13
14
  ARGV[1] msgpacked arguments array
14
15
  [1] key prefix,
@@ -32,8 +33,8 @@
32
33
  local metaKey = KEYS[1]
33
34
  local idKey = KEYS[2]
34
35
 
35
- local completedKey = KEYS[3]
36
- local eventsKey = KEYS[4]
36
+ local completedKey = KEYS[4]
37
+ local eventsKey = KEYS[5]
37
38
 
38
39
  local jobId
39
40
  local jobIdKey
@@ -81,8 +82,8 @@ else
81
82
  end
82
83
  end
83
84
 
84
- local deduplicationJobId = deduplicateJob(args[1], opts['de'],
85
- jobId, deduplicationKey, eventsKey, maxEvents)
85
+ local deduplicationJobId = deduplicateJob(opts['de'], jobId, KEYS[3],
86
+ deduplicationKey, eventsKey, maxEvents, args[1])
86
87
  if deduplicationJobId then
87
88
  return deduplicationJobId
88
89
  end
@@ -9,10 +9,11 @@
9
9
  KEYS[2] 'meta'
10
10
  KEYS[3] 'id'
11
11
  KEYS[4] 'prioritized'
12
- KEYS[5] 'completed'
13
- KEYS[6] 'active'
14
- KEYS[7] events stream key
15
- KEYS[8] 'pc' priority counter
12
+ KEYS[5] 'delayed'
13
+ KEYS[6] 'completed'
14
+ KEYS[7] 'active'
15
+ KEYS[8] events stream key
16
+ KEYS[9] 'pc' priority counter
16
17
 
17
18
  ARGV[1] msgpacked arguments array
18
19
  [1] key prefix,
@@ -37,10 +38,10 @@ local metaKey = KEYS[2]
37
38
  local idKey = KEYS[3]
38
39
  local priorityKey = KEYS[4]
39
40
 
40
- local completedKey = KEYS[5]
41
- local activeKey = KEYS[6]
42
- local eventsKey = KEYS[7]
43
- local priorityCounterKey = KEYS[8]
41
+ local completedKey = KEYS[6]
42
+ local activeKey = KEYS[7]
43
+ local eventsKey = KEYS[8]
44
+ local priorityCounterKey = KEYS[9]
44
45
 
45
46
  local jobId
46
47
  local jobIdKey
@@ -90,8 +91,8 @@ else
90
91
  end
91
92
  end
92
93
 
93
- local deduplicationJobId = deduplicateJob(args[1], opts['de'],
94
- jobId, deduplicationKey, eventsKey, maxEvents)
94
+ local deduplicationJobId = deduplicateJob(opts['de'], jobId, KEYS[5],
95
+ deduplicationKey, eventsKey, maxEvents, args[1])
95
96
  if deduplicationJobId then
96
97
  return deduplicationJobId
97
98
  end
@@ -65,11 +65,11 @@ end
65
65
  -- If we are overriding a repeatable job we must delete the delayed job for
66
66
  -- the next iteration.
67
67
  local prevMillis = rcall("ZSCORE", repeatKey, customKey)
68
- if prevMillis ~= false then
68
+ if prevMillis then
69
69
  local delayedJobId = "repeat:" .. customKey .. ":" .. prevMillis
70
70
  local nextDelayedJobId = repeatKey .. ":" .. customKey .. ":" .. nextMillis
71
71
 
72
- if rcall("ZSCORE", delayedKey, delayedJobId) ~= false
72
+ if rcall("ZSCORE", delayedKey, delayedJobId)
73
73
  and rcall("EXISTS", nextDelayedJobId) ~= 1 then
74
74
  removeJob(delayedJobId, true, prefixKey, true --[[remove debounce key]])
75
75
  rcall("ZREM", delayedKey, delayedJobId)
@@ -20,9 +20,10 @@
20
20
  KEYS[3] 'meta'
21
21
  KEYS[4] 'id'
22
22
  KEYS[5] 'completed'
23
- KEYS[6] 'active'
24
- KEYS[7] events stream key
25
- KEYS[8] marker key
23
+ KEYS[6] 'delayed'
24
+ KEYS[7] 'active'
25
+ KEYS[8] events stream key
26
+ KEYS[9] marker key
26
27
 
27
28
  ARGV[1] msgpacked arguments array
28
29
  [1] key prefix,
@@ -43,7 +44,7 @@
43
44
  jobId - OK
44
45
  -5 - Missing parent key
45
46
  ]]
46
- local eventsKey = KEYS[7]
47
+ local eventsKey = KEYS[8]
47
48
 
48
49
  local jobId
49
50
  local jobIdKey
@@ -94,8 +95,8 @@ else
94
95
  end
95
96
  end
96
97
 
97
- local deduplicationJobId = deduplicateJob(args[1], opts['de'],
98
- jobId, deduplicationKey, eventsKey, maxEvents)
98
+ local deduplicationJobId = deduplicateJob(opts['de'], jobId, KEYS[6],
99
+ deduplicationKey, eventsKey, maxEvents, args[1])
99
100
  if deduplicationJobId then
100
101
  return deduplicationJobId
101
102
  end
@@ -104,11 +105,11 @@ end
104
105
  storeJob(eventsKey, jobIdKey, jobId, args[3], ARGV[2], opts, timestamp,
105
106
  parentKey, parentData, repeatJobKey)
106
107
 
107
- local target, isPausedOrMaxed = getTargetQueueList(metaKey, KEYS[6], KEYS[1], KEYS[2])
108
+ local target, isPausedOrMaxed = getTargetQueueList(metaKey, KEYS[7], KEYS[1], KEYS[2])
108
109
 
109
110
  -- LIFO or FIFO
110
111
  local pushCmd = opts['lifo'] and 'RPUSH' or 'LPUSH'
111
- addJobInTargetList(target, KEYS[8], pushCmd, isPausedOrMaxed, jobId)
112
+ addJobInTargetList(target, KEYS[9], pushCmd, isPausedOrMaxed, jobId)
112
113
 
113
114
  -- Emit waiting event
114
115
  rcall("XADD", eventsKey, "MAXLEN", "~", maxEvents, "*", "event", "waiting",
@@ -4,7 +4,7 @@
4
4
  Input:
5
5
  KEYS[1] set key,
6
6
  KEYS[2] events stream key
7
- KEYS[3] job schedulers key
7
+ KEYS[3] repeat key
8
8
 
9
9
  ARGV[1] jobKey prefix
10
10
  ARGV[2] timestamp
@@ -12,6 +12,7 @@
12
12
  ARGV[4] set name, can be any of 'wait', 'active', 'paused', 'delayed', 'completed', or 'failed'
13
13
  ]]
14
14
  local rcall = redis.call
15
+ local repeatKey = KEYS[3]
15
16
  local rangeStart = 0
16
17
  local rangeEnd = -1
17
18
 
@@ -33,19 +34,22 @@ end
33
34
 
34
35
  local result
35
36
  if ARGV[4] == "active" then
36
- result = cleanList(KEYS[1], ARGV[1], rangeStart, rangeEnd, ARGV[2], false --[[ hasFinished ]])
37
+ result = cleanList(KEYS[1], ARGV[1], rangeStart, rangeEnd, ARGV[2], false --[[ hasFinished ]],
38
+ repeatKey)
37
39
  elseif ARGV[4] == "delayed" then
38
40
  rangeEnd = "+inf"
39
41
  result = cleanSet(KEYS[1], ARGV[1], rangeEnd, ARGV[2], limit,
40
- {"processedOn", "timestamp"}, false --[[ hasFinished ]], KEYS[3])
42
+ {"processedOn", "timestamp"}, false --[[ hasFinished ]], repeatKey)
41
43
  elseif ARGV[4] == "prioritized" then
42
44
  rangeEnd = "+inf"
43
45
  result = cleanSet(KEYS[1], ARGV[1], rangeEnd, ARGV[2], limit,
44
- {"timestamp"}, false --[[ hasFinished ]])
46
+ {"timestamp"}, false --[[ hasFinished ]], repeatKey)
45
47
  elseif ARGV[4] == "wait" or ARGV[4] == "paused" then
46
- result = cleanList(KEYS[1], ARGV[1], rangeStart, rangeEnd, ARGV[2], true --[[ hasFinished ]])
48
+ result = cleanList(KEYS[1], ARGV[1], rangeStart, rangeEnd, ARGV[2], true --[[ hasFinished ]],
49
+ repeatKey)
47
50
  else
48
51
  rangeEnd = ARGV[2]
52
+ -- No need to pass repeat key as in that moment job won't be related to a job scheduler
49
53
  result = cleanSet(KEYS[1], ARGV[1], rangeEnd, ARGV[2], limit,
50
54
  {"finishedOn"}, true --[[ hasFinished ]])
51
55
  end
@@ -10,6 +10,7 @@
10
10
  KEYS[5] 'jobschedulers' (repeat)
11
11
 
12
12
  ARGV[1] queue key prefix
13
+ ARGV[2] should clean delayed jobs
13
14
  ]]
14
15
  local rcall = redis.call
15
16
  local queueBaseKey = ARGV[1]
@@ -17,25 +18,24 @@ local queueBaseKey = ARGV[1]
17
18
  --- @include "includes/removeListJobs"
18
19
  --- @include "includes/removeZSetJobs"
19
20
 
20
- removeListJobs(KEYS[1], true, queueBaseKey, 0) -- wait
21
- removeListJobs(KEYS[2], true, queueBaseKey, 0) -- paused
21
+ -- We must not remove delayed jobs if they are associated to a job scheduler.
22
+ local scheduledJobs = {}
23
+ local jobSchedulers = rcall("ZRANGE", KEYS[5], 0, -1, "WITHSCORES")
22
24
 
23
- if KEYS[3] ~= "" then
25
+ -- For every job scheduler, get the current delayed job id.
26
+ for i = 1, #jobSchedulers, 2 do
27
+ local jobSchedulerId = jobSchedulers[i]
28
+ local jobSchedulerMillis = jobSchedulers[i + 1]
24
29
 
25
- -- We must not remove delayed jobs if they are associated to a job scheduler.
26
- local scheduledJobs = {}
27
- local jobSchedulers = rcall("ZRANGE", KEYS[5], 0, -1, "WITHSCORES")
28
-
29
- -- For every job scheduler, get the current delayed job id.
30
- for i = 1, #jobSchedulers, 2 do
31
- local jobSchedulerId = jobSchedulers[i]
32
- local jobSchedulerMillis = jobSchedulers[i + 1]
30
+ local delayedJobId = "repeat:" .. jobSchedulerId .. ":" .. jobSchedulerMillis
31
+ scheduledJobs[delayedJobId] = true
32
+ end
33
33
 
34
- local delayedJobId = "repeat:" .. jobSchedulerId .. ":" .. jobSchedulerMillis
35
- scheduledJobs[delayedJobId] = true
36
- end
34
+ removeListJobs(KEYS[1], true, queueBaseKey, 0, scheduledJobs) -- wait
35
+ removeListJobs(KEYS[2], true, queueBaseKey, 0, scheduledJobs) -- paused
37
36
 
38
- removeZSetJobs(KEYS[3], true, queueBaseKey, 0, scheduledJobs) -- delayed
37
+ if ARGV[2] == "1" then
38
+ removeZSetJobs(KEYS[3], true, queueBaseKey, 0, scheduledJobs) -- delayed
39
39
  end
40
40
 
41
- removeZSetJobs(KEYS[4], true, queueBaseKey, 0) -- prioritized
41
+ removeZSetJobs(KEYS[4], true, queueBaseKey, 0, scheduledJobs) -- prioritized
@@ -0,0 +1,31 @@
1
+ --[[
2
+ Get counts per child states
3
+
4
+ Input:
5
+ KEYS[1] processed key
6
+ KEYS[2] unprocessed key
7
+ KEYS[3] ignored key
8
+ KEYS[4] failed key
9
+
10
+ ARGV[1...] types
11
+ ]]
12
+ local rcall = redis.call;
13
+ local processedKey = KEYS[1]
14
+ local unprocessedKey = KEYS[2]
15
+ local ignoredKey = KEYS[3]
16
+ local failedKey = KEYS[4]
17
+ local results = {}
18
+
19
+ for i = 1, #ARGV do
20
+ if ARGV[i] == "processed" then
21
+ results[#results+1] = rcall("HLEN", processedKey)
22
+ elseif ARGV[i] == "unprocessed" then
23
+ results[#results+1] = rcall("SCARD", unprocessedKey)
24
+ elseif ARGV[i] == "ignored" then
25
+ results[#results+1] = rcall("HLEN", ignoredKey)
26
+ else
27
+ results[#results+1] = rcall("ZCARD", failedKey)
28
+ end
29
+ end
30
+
31
+ return results
@@ -24,19 +24,19 @@
24
24
  ]]
25
25
  local rcall = redis.call
26
26
 
27
- if rcall("ZSCORE", KEYS[1], ARGV[1]) ~= false then
27
+ if rcall("ZSCORE", KEYS[1], ARGV[1]) then
28
28
  return "completed"
29
29
  end
30
30
 
31
- if rcall("ZSCORE", KEYS[2], ARGV[1]) ~= false then
31
+ if rcall("ZSCORE", KEYS[2], ARGV[1]) then
32
32
  return "failed"
33
33
  end
34
34
 
35
- if rcall("ZSCORE", KEYS[3], ARGV[1]) ~= false then
35
+ if rcall("ZSCORE", KEYS[3], ARGV[1]) then
36
36
  return "delayed"
37
37
  end
38
38
 
39
- if rcall("ZSCORE", KEYS[8], ARGV[1]) ~= false then
39
+ if rcall("ZSCORE", KEYS[8], ARGV[1]) then
40
40
  return "prioritized"
41
41
  end
42
42
 
@@ -58,7 +58,7 @@ if checkItemInList(paused_items, ARGV[1]) ~= nil then
58
58
  return "waiting"
59
59
  end
60
60
 
61
- if rcall("ZSCORE", KEYS[7], ARGV[1]) ~= false then
61
+ if rcall("ZSCORE", KEYS[7], ARGV[1]) then
62
62
  return "waiting-children"
63
63
  end
64
64
 
@@ -23,35 +23,35 @@
23
23
  ]]
24
24
  local rcall = redis.call
25
25
 
26
- if rcall("ZSCORE", KEYS[1], ARGV[1]) ~= false then
26
+ if rcall("ZSCORE", KEYS[1], ARGV[1]) then
27
27
  return "completed"
28
28
  end
29
29
 
30
- if rcall("ZSCORE", KEYS[2], ARGV[1]) ~= false then
30
+ if rcall("ZSCORE", KEYS[2], ARGV[1]) then
31
31
  return "failed"
32
32
  end
33
33
 
34
- if rcall("ZSCORE", KEYS[3], ARGV[1]) ~= false then
34
+ if rcall("ZSCORE", KEYS[3], ARGV[1]) then
35
35
  return "delayed"
36
36
  end
37
37
 
38
- if rcall("ZSCORE", KEYS[8], ARGV[1]) ~= false then
38
+ if rcall("ZSCORE", KEYS[8], ARGV[1]) then
39
39
  return "prioritized"
40
40
  end
41
41
 
42
- if rcall("LPOS", KEYS[4] , ARGV[1]) ~= false then
42
+ if rcall("LPOS", KEYS[4] , ARGV[1]) then
43
43
  return "active"
44
44
  end
45
45
 
46
- if rcall("LPOS", KEYS[5] , ARGV[1]) ~= false then
46
+ if rcall("LPOS", KEYS[5] , ARGV[1]) then
47
47
  return "waiting"
48
48
  end
49
49
 
50
- if rcall("LPOS", KEYS[6] , ARGV[1]) ~= false then
50
+ if rcall("LPOS", KEYS[6] , ARGV[1]) then
51
51
  return "waiting"
52
52
  end
53
53
 
54
- if rcall("ZSCORE", KEYS[7] , ARGV[1]) ~= false then
54
+ if rcall("ZSCORE", KEYS[7] , ARGV[1]) then
55
55
  return "waiting-children"
56
56
  end
57
57
 
@@ -0,0 +1,23 @@
1
+ --[[
2
+ Adds a delayed job to the queue by doing the following:
3
+ - Creates a new job key with the job data.
4
+ - adds to delayed zset.
5
+ - Emits a global event 'delayed' if the job is delayed.
6
+ ]]
7
+
8
+ -- Includes
9
+ --- @include "addDelayMarkerIfNeeded"
10
+ --- @include "getDelayedScore"
11
+
12
+ local function addDelayedJob(jobId, delayedKey, eventsKey, timestamp,
13
+ maxEvents, markerKey, delay)
14
+
15
+ local score, delayedTimestamp = getDelayedScore(delayedKey, timestamp, tonumber(delay))
16
+
17
+ rcall("ZADD", delayedKey, score, jobId)
18
+ rcall("XADD", eventsKey, "MAXLEN", "~", maxEvents, "*", "event", "delayed",
19
+ "jobId", jobId, "delay", delayedTimestamp)
20
+
21
+ -- mark that a delayed job is available
22
+ addDelayMarkerIfNeeded(markerKey, delayedKey)
23
+ end
@@ -0,0 +1,37 @@
1
+ --[[
2
+ Add delay marker if needed.
3
+ ]]
4
+
5
+ -- Includes
6
+ --- @include "addDelayedJob"
7
+ --- @include "addJobWithPriority"
8
+ --- @include "isQueuePaused"
9
+ --- @include "storeJob"
10
+ --- @include "getTargetQueueList"
11
+ --- @include "addJobInTargetList"
12
+
13
+ local function addJobFromScheduler(jobKey, jobId, rawOpts, waitKey, pausedKey, activeKey, metaKey,
14
+ prioritizedKey, priorityCounter, delayedKey, markerKey, eventsKey, name, maxEvents, timestamp,
15
+ data, jobSchedulerId)
16
+ local opts = cmsgpack.unpack(rawOpts)
17
+
18
+ local delay, priority = storeJob(eventsKey, jobKey, jobId, name, data,
19
+ opts, timestamp, nil, nil, jobSchedulerId)
20
+
21
+ if delay ~= 0 then
22
+ addDelayedJob(jobId, delayedKey, eventsKey, timestamp, maxEvents, markerKey, delay)
23
+ else
24
+ local target, isPausedOrMaxed = getTargetQueueList(metaKey, activeKey, waitKey, pausedKey)
25
+
26
+ -- Standard or priority add
27
+ if priority == 0 then
28
+ local pushCmd = opts['lifo'] and 'RPUSH' or 'LPUSH'
29
+ addJobInTargetList(target, markerKey, pushCmd, isPausedOrMaxed, jobId)
30
+ else
31
+ -- Priority add
32
+ addJobWithPriority(markerKey, prioritizedKey, priority, jobId, priorityCounter, isPausedOrMaxed)
33
+ end
34
+ -- Emit waiting event
35
+ rcall("XADD", eventsKey, "MAXLEN", "~", maxEvents, "*", "event", "waiting", "jobId", jobId)
36
+ end
37
+ end
@@ -4,11 +4,11 @@
4
4
 
5
5
  -- Includes
6
6
  --- @include "addBaseMarkerIfNeeded"
7
+ --- @include "getPriorityScore"
7
8
 
8
9
  local function addJobWithPriority(markerKey, prioritizedKey, priority, jobId, priorityCounterKey,
9
10
  isPausedOrMaxed)
10
- local prioCounter = rcall("INCR", priorityCounterKey)
11
- local score = priority * 0x100000000 + prioCounter % 0x100000000
11
+ local score = getPriorityScore(priority, priorityCounterKey)
12
12
  rcall("ZADD", prioritizedKey, score, jobId)
13
13
  addBaseMarkerIfNeeded(markerKey, isPausedOrMaxed)
14
14
  end
@@ -5,10 +5,11 @@
5
5
 
6
6
  -- Includes
7
7
  --- @include "getTimestamp"
8
+ --- @include "isJobSchedulerJob"
8
9
  --- @include "removeJob"
9
10
 
10
11
  local function cleanList(listKey, jobKeyPrefix, rangeStart, rangeEnd,
11
- timestamp, isWaiting)
12
+ timestamp, isWaiting, jobSchedulersKey)
12
13
  local jobs = rcall("LRANGE", listKey, rangeStart, rangeEnd)
13
14
  local deleted = {}
14
15
  local deletedCount = 0
@@ -21,7 +22,8 @@ local function cleanList(listKey, jobKeyPrefix, rangeStart, rangeEnd,
21
22
  end
22
23
 
23
24
  local jobKey = jobKeyPrefix .. job
24
- if (isWaiting or rcall("EXISTS", jobKey .. ":lock") == 0) then
25
+ if (isWaiting or rcall("EXISTS", jobKey .. ":lock") == 0) and
26
+ not isJobSchedulerJob(job, jobKey, jobSchedulersKey) then
25
27
  -- Find the right timestamp of the job to compare to maxTimestamp:
26
28
  -- * finishedOn says when the job was completed, but it isn't set unless the job has actually completed
27
29
  -- * processedOn represents when the job was last attempted, but it doesn't get populated until
@@ -7,16 +7,8 @@
7
7
  --- @include "batches"
8
8
  --- @include "getJobsInZset"
9
9
  --- @include "getTimestamp"
10
+ --- @include "isJobSchedulerJob"
10
11
  --- @include "removeJob"
11
- local function isJobSchedulerJob(jobId, jobSchedulersKey)
12
- if jobSchedulersKey then
13
- local jobSchedulerId = jobId:match("repeat:(.*):%d+")
14
- if jobSchedulerId then
15
- return rcall("ZSCORE", jobSchedulersKey, jobSchedulerId)
16
- end
17
- end
18
- return false
19
- end
20
12
 
21
13
  local function cleanSet(
22
14
  setKey,
@@ -36,10 +28,10 @@ local function cleanSet(
36
28
  break
37
29
  end
38
30
 
31
+ local jobKey = jobKeyPrefix .. job
39
32
  -- Extract a Job Scheduler Id from jobId ("repeat:job-scheduler-id:millis")
40
33
  -- and check if it is in the scheduled jobs
41
- if not isJobSchedulerJob(job, jobSchedulersKey) then
42
- local jobKey = jobKeyPrefix .. job
34
+ if not (jobSchedulersKey and isJobSchedulerJob(job, jobKey, jobSchedulersKey)) then
43
35
  if isFinished then
44
36
  removeJob(job, true, jobKeyPrefix, true --[[remove debounce key]] )
45
37
  deletedCount = deletedCount + 1
@@ -1,7 +1,7 @@
1
1
  --[[
2
2
  Functions to collect metrics based on a current and previous count of jobs.
3
3
  Granualarity is fixed at 1 minute.
4
- ]]
4
+ ]]
5
5
  --- @include "batches"
6
6
  local function collectMetrics(metaKey, dataPointsList, maxDataPoints,
7
7
  timestamp)