@tachybase/plugin-adapter-bullmq 1.3.17 → 1.3.18

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (347) hide show
  1. package/dist/externalVersion.js +2 -2
  2. package/dist/node_modules/@bull-board/api/dist/src/handlers/error.d.ts +4 -2
  3. package/dist/node_modules/@bull-board/api/dist/src/handlers/error.js +2 -2
  4. package/dist/node_modules/@bull-board/api/dist/src/handlers/pauseAll.d.ts +4 -0
  5. package/dist/node_modules/@bull-board/api/dist/src/handlers/pauseAll.js +15 -0
  6. package/dist/node_modules/@bull-board/api/dist/src/handlers/queues.js +4 -0
  7. package/dist/node_modules/@bull-board/api/dist/src/handlers/resumeAll.d.ts +4 -0
  8. package/dist/node_modules/@bull-board/api/dist/src/handlers/resumeAll.js +15 -0
  9. package/dist/node_modules/@bull-board/api/dist/src/index.js +1 -1
  10. package/dist/node_modules/@bull-board/api/dist/src/queueAdapters/base.d.ts +4 -0
  11. package/dist/node_modules/@bull-board/api/dist/src/queueAdapters/base.js +6 -0
  12. package/dist/node_modules/@bull-board/api/dist/src/queueAdapters/bull.js +6 -4
  13. package/dist/node_modules/@bull-board/api/dist/src/routes.js +4 -0
  14. package/dist/node_modules/@bull-board/api/dist/typings/app.d.ts +22 -2
  15. package/dist/node_modules/@bull-board/api/package.json +1 -1
  16. package/dist/node_modules/@bull-board/koa/dist/KoaAdapter.js +1 -1
  17. package/dist/node_modules/@bull-board/koa/dist/index.js +101 -101
  18. package/dist/node_modules/@bull-board/koa/package.json +1 -1
  19. package/dist/node_modules/bullmq/dist/cjs/classes/backoffs.js +18 -5
  20. package/dist/node_modules/bullmq/dist/cjs/classes/child-pool.js +7 -2
  21. package/dist/node_modules/bullmq/dist/cjs/classes/child-processor.js +59 -5
  22. package/dist/node_modules/bullmq/dist/cjs/classes/child.js +3 -1
  23. package/dist/node_modules/bullmq/dist/cjs/classes/errors/index.js +2 -1
  24. package/dist/node_modules/bullmq/dist/cjs/classes/errors/waiting-error.js +19 -0
  25. package/dist/node_modules/bullmq/dist/cjs/classes/flow-producer.js +21 -5
  26. package/dist/node_modules/bullmq/dist/cjs/classes/index.js +1 -0
  27. package/dist/node_modules/bullmq/dist/cjs/classes/job-scheduler.js +88 -62
  28. package/dist/node_modules/bullmq/dist/cjs/classes/job.js +216 -109
  29. package/dist/node_modules/bullmq/dist/cjs/classes/main-base.js +1 -1
  30. package/dist/node_modules/bullmq/dist/cjs/classes/queue-base.js +10 -9
  31. package/dist/node_modules/bullmq/dist/cjs/classes/queue-getters.js +34 -14
  32. package/dist/node_modules/bullmq/dist/cjs/classes/queue.js +19 -13
  33. package/dist/node_modules/bullmq/dist/cjs/classes/redis-connection.js +16 -9
  34. package/dist/node_modules/bullmq/dist/cjs/classes/repeat.js +1 -1
  35. package/dist/node_modules/bullmq/dist/cjs/classes/sandbox.js +54 -28
  36. package/dist/node_modules/bullmq/dist/cjs/classes/scripts.js +141 -39
  37. package/dist/node_modules/bullmq/dist/cjs/classes/worker.js +191 -182
  38. package/dist/node_modules/bullmq/dist/cjs/commands/addDelayedJob-6.lua +6 -17
  39. package/dist/node_modules/bullmq/dist/cjs/commands/addJobScheduler-11.lua +123 -0
  40. package/dist/node_modules/bullmq/dist/{esm/commands/addParentJob-4.lua → cjs/commands/addParentJob-5.lua} +7 -6
  41. package/dist/node_modules/bullmq/dist/cjs/commands/{addPrioritizedJob-8.lua → addPrioritizedJob-9.lua} +11 -10
  42. package/dist/node_modules/bullmq/dist/cjs/commands/addRepeatableJob-2.lua +2 -2
  43. package/dist/node_modules/bullmq/dist/{esm/commands/addStandardJob-8.lua → cjs/commands/addStandardJob-9.lua} +9 -8
  44. package/dist/node_modules/bullmq/dist/cjs/commands/cleanJobsInSet-3.lua +9 -5
  45. package/dist/node_modules/bullmq/dist/cjs/commands/drain-5.lua +16 -16
  46. package/dist/node_modules/bullmq/dist/cjs/commands/getDependencyCounts-4.lua +31 -0
  47. package/dist/node_modules/bullmq/dist/cjs/commands/getState-8.lua +5 -5
  48. package/dist/node_modules/bullmq/dist/cjs/commands/getStateV2-8.lua +8 -8
  49. package/dist/node_modules/bullmq/dist/cjs/commands/includes/addDelayedJob.lua +23 -0
  50. package/dist/node_modules/bullmq/dist/cjs/commands/includes/addJobFromScheduler.lua +37 -0
  51. package/dist/node_modules/bullmq/dist/cjs/commands/includes/addJobWithPriority.lua +2 -2
  52. package/dist/node_modules/bullmq/dist/cjs/commands/includes/cleanList.lua +4 -2
  53. package/dist/node_modules/bullmq/dist/cjs/commands/includes/cleanSet.lua +3 -11
  54. package/dist/node_modules/bullmq/dist/cjs/commands/includes/collectMetrics.lua +1 -1
  55. package/dist/node_modules/bullmq/dist/cjs/commands/includes/deduplicateJob.lua +63 -18
  56. package/dist/node_modules/bullmq/dist/cjs/commands/includes/filterOutJobsToIgnore.lua +14 -0
  57. package/dist/node_modules/bullmq/dist/cjs/commands/includes/getNextDelayedTimestamp.lua +1 -1
  58. package/dist/node_modules/bullmq/dist/cjs/commands/includes/getOrSetMaxEvents.lua +6 -6
  59. package/dist/node_modules/bullmq/dist/cjs/commands/includes/getPriorityScore.lua +8 -0
  60. package/dist/node_modules/bullmq/dist/cjs/commands/includes/isJobSchedulerJob.lua +15 -0
  61. package/dist/node_modules/bullmq/dist/cjs/commands/includes/isLocked.lua +1 -0
  62. package/dist/node_modules/bullmq/dist/cjs/commands/includes/moveChildFromDependenciesIfNeeded.lua +77 -0
  63. package/dist/node_modules/bullmq/dist/cjs/commands/includes/{moveJobFromPriorityToActive.lua → moveJobFromPrioritizedToActive.lua} +1 -1
  64. package/dist/node_modules/bullmq/dist/cjs/commands/includes/moveParentToWait.lua +45 -0
  65. package/dist/node_modules/bullmq/dist/cjs/commands/includes/moveParentToWaitIfNeeded.lua +9 -50
  66. package/dist/node_modules/bullmq/dist/cjs/commands/includes/moveParentToWaitIfNoPendingDependencies.lua +13 -0
  67. package/dist/node_modules/bullmq/dist/cjs/commands/includes/prepareJobForProcessing.lua +2 -1
  68. package/dist/node_modules/bullmq/dist/cjs/commands/includes/promoteDelayedJobs.lua +7 -3
  69. package/dist/node_modules/bullmq/dist/cjs/commands/includes/removeDeduplicationKeyIfNeededOnFinalization.lua +23 -0
  70. package/dist/node_modules/bullmq/dist/cjs/commands/includes/removeDeduplicationKeyIfNeededOnRemoval.lua +16 -0
  71. package/dist/node_modules/bullmq/dist/cjs/commands/includes/removeJob.lua +2 -2
  72. package/dist/node_modules/bullmq/dist/cjs/commands/includes/removeJobKeys.lua +2 -2
  73. package/dist/node_modules/bullmq/dist/cjs/commands/includes/removeJobWithChildren.lua +95 -0
  74. package/dist/node_modules/bullmq/dist/cjs/commands/includes/removeListJobs.lua +7 -1
  75. package/dist/node_modules/bullmq/dist/cjs/commands/includes/removeParentDependencyKey.lua +5 -5
  76. package/dist/node_modules/bullmq/dist/cjs/commands/includes/removeZSetJobs.lua +2 -8
  77. package/dist/node_modules/bullmq/dist/cjs/commands/includes/storeJob.lua +2 -2
  78. package/dist/node_modules/bullmq/dist/cjs/commands/includes/storeJobScheduler.lua +52 -0
  79. package/dist/node_modules/bullmq/dist/cjs/commands/includes/trimEvents.lua +1 -1
  80. package/dist/node_modules/bullmq/dist/cjs/commands/includes/updateExistingJobsParent.lua +1 -1
  81. package/dist/node_modules/bullmq/dist/cjs/commands/includes/updateJobFields.lua +5 -5
  82. package/dist/node_modules/bullmq/dist/cjs/commands/includes/updateParentDepsIfNeeded.lua +2 -2
  83. package/dist/node_modules/bullmq/dist/cjs/commands/isFinished-3.lua +2 -2
  84. package/dist/node_modules/bullmq/dist/cjs/commands/moveJobFromActiveToWait-9.lua +63 -0
  85. package/dist/node_modules/bullmq/dist/cjs/commands/moveStalledJobsToWait-8.lua +109 -0
  86. package/dist/node_modules/bullmq/dist/cjs/commands/moveToActive-11.lua +3 -2
  87. package/dist/node_modules/bullmq/dist/cjs/commands/moveToFinished-14.lua +52 -52
  88. package/dist/node_modules/bullmq/dist/cjs/commands/moveToWaitingChildren-8.lua +106 -0
  89. package/dist/node_modules/bullmq/dist/cjs/commands/removeJob-2.lua +18 -66
  90. package/dist/node_modules/bullmq/dist/cjs/commands/removeJobScheduler-3.lua +1 -1
  91. package/dist/node_modules/bullmq/dist/cjs/commands/removeUnprocessedChildren-2.lua +31 -0
  92. package/dist/node_modules/bullmq/dist/cjs/commands/retryJob-11.lua +11 -5
  93. package/dist/node_modules/bullmq/dist/cjs/commands/updateJobScheduler-12.lua +90 -0
  94. package/dist/node_modules/bullmq/dist/cjs/commands/updateRepeatableJobMillis-1.lua +1 -1
  95. package/dist/node_modules/bullmq/dist/cjs/enums/child-command.js +2 -0
  96. package/dist/node_modules/bullmq/dist/cjs/enums/error-code.js +2 -1
  97. package/dist/node_modules/bullmq/dist/cjs/enums/parent-command.js +5 -2
  98. package/dist/node_modules/bullmq/dist/cjs/index.js +1 -1
  99. package/dist/node_modules/bullmq/dist/cjs/interfaces/index.js +2 -1
  100. package/dist/node_modules/bullmq/dist/cjs/interfaces/{debounce-options.js → parent-options.js} +1 -1
  101. package/dist/node_modules/bullmq/dist/cjs/interfaces/receiver.js +3 -0
  102. package/dist/node_modules/bullmq/dist/cjs/scripts/addDelayedJob-6.js +163 -84
  103. package/dist/node_modules/bullmq/dist/cjs/scripts/addJobScheduler-11.js +465 -0
  104. package/dist/node_modules/bullmq/dist/cjs/scripts/{addParentJob-4.js → addParentJob-5.js} +147 -75
  105. package/dist/node_modules/bullmq/dist/cjs/scripts/{addPrioritizedJob-8.js → addPrioritizedJob-9.js} +151 -79
  106. package/dist/node_modules/bullmq/dist/cjs/scripts/addRepeatableJob-2.js +18 -13
  107. package/dist/node_modules/bullmq/dist/cjs/scripts/{addStandardJob-8.js → addStandardJob-9.js} +149 -77
  108. package/dist/node_modules/bullmq/dist/cjs/scripts/changeDelay-4.js +7 -7
  109. package/dist/node_modules/bullmq/dist/cjs/scripts/changePriority-7.js +8 -2
  110. package/dist/node_modules/bullmq/dist/cjs/scripts/cleanJobsInSet-3.js +45 -29
  111. package/dist/node_modules/bullmq/dist/cjs/scripts/drain-5.js +49 -35
  112. package/dist/node_modules/bullmq/dist/cjs/scripts/getDependencyCounts-4.js +37 -0
  113. package/dist/node_modules/bullmq/dist/cjs/scripts/getState-8.js +5 -5
  114. package/dist/node_modules/bullmq/dist/cjs/scripts/getStateV2-8.js +8 -8
  115. package/dist/node_modules/bullmq/dist/cjs/scripts/index.js +10 -7
  116. package/dist/node_modules/bullmq/dist/cjs/scripts/isFinished-3.js +2 -2
  117. package/dist/node_modules/bullmq/dist/cjs/scripts/{moveJobFromActiveToWait-10.js → moveJobFromActiveToWait-9.js} +57 -37
  118. package/dist/node_modules/bullmq/dist/cjs/scripts/moveJobsToWait-8.js +6 -6
  119. package/dist/node_modules/bullmq/dist/cjs/scripts/moveStalledJobsToWait-8.js +171 -0
  120. package/dist/node_modules/bullmq/dist/cjs/scripts/moveToActive-11.js +18 -8
  121. package/dist/node_modules/bullmq/dist/cjs/scripts/moveToDelayed-8.js +12 -12
  122. package/dist/node_modules/bullmq/dist/cjs/scripts/moveToFinished-14.js +218 -155
  123. package/dist/node_modules/bullmq/dist/cjs/scripts/moveToWaitingChildren-8.js +529 -0
  124. package/dist/node_modules/bullmq/dist/cjs/scripts/obliterate-2.js +33 -20
  125. package/dist/node_modules/bullmq/dist/cjs/scripts/pause-7.js +1 -1
  126. package/dist/node_modules/bullmq/dist/cjs/scripts/promote-9.js +8 -2
  127. package/dist/node_modules/bullmq/dist/cjs/scripts/removeChildDependency-1.js +7 -7
  128. package/dist/node_modules/bullmq/dist/cjs/scripts/removeJob-2.js +120 -63
  129. package/dist/node_modules/bullmq/dist/cjs/scripts/removeJobScheduler-3.js +3 -3
  130. package/dist/node_modules/bullmq/dist/cjs/scripts/removeRepeatable-3.js +2 -2
  131. package/dist/node_modules/bullmq/dist/cjs/scripts/removeUnprocessedChildren-2.js +339 -0
  132. package/dist/node_modules/bullmq/dist/cjs/scripts/reprocessJob-8.js +6 -6
  133. package/dist/node_modules/bullmq/dist/cjs/scripts/retryJob-11.js +47 -26
  134. package/dist/node_modules/bullmq/dist/cjs/scripts/updateJobScheduler-12.js +274 -0
  135. package/dist/node_modules/bullmq/dist/cjs/scripts/updateProgress-3.js +6 -6
  136. package/dist/node_modules/bullmq/dist/cjs/scripts/updateRepeatableJobMillis-1.js +1 -1
  137. package/dist/node_modules/bullmq/dist/cjs/tsconfig-cjs.tsbuildinfo +1 -1
  138. package/dist/node_modules/bullmq/dist/cjs/types/deduplication-options.js +3 -0
  139. package/dist/node_modules/bullmq/dist/cjs/types/index.js +3 -0
  140. package/dist/node_modules/bullmq/dist/cjs/types/job-progress.js +3 -0
  141. package/dist/node_modules/bullmq/dist/cjs/types/script-queue-context.js +3 -0
  142. package/dist/node_modules/bullmq/dist/cjs/utils.js +29 -1
  143. package/dist/node_modules/bullmq/dist/cjs/version.js +1 -1
  144. package/dist/node_modules/bullmq/dist/esm/classes/backoffs.d.ts +1 -1
  145. package/dist/node_modules/bullmq/dist/esm/classes/backoffs.js +18 -5
  146. package/dist/node_modules/bullmq/dist/esm/classes/child-pool.d.ts +1 -1
  147. package/dist/node_modules/bullmq/dist/esm/classes/child-pool.js +7 -2
  148. package/dist/node_modules/bullmq/dist/esm/classes/child-processor.d.ts +3 -2
  149. package/dist/node_modules/bullmq/dist/esm/classes/child-processor.js +59 -5
  150. package/dist/node_modules/bullmq/dist/esm/classes/child.js +3 -1
  151. package/dist/node_modules/bullmq/dist/esm/classes/errors/index.d.ts +2 -1
  152. package/dist/node_modules/bullmq/dist/esm/classes/errors/index.js +2 -1
  153. package/dist/node_modules/bullmq/dist/esm/classes/errors/waiting-error.d.ts +10 -0
  154. package/dist/node_modules/bullmq/dist/esm/classes/errors/waiting-error.js +15 -0
  155. package/dist/node_modules/bullmq/dist/esm/classes/flow-producer.d.ts +3 -9
  156. package/dist/node_modules/bullmq/dist/esm/classes/flow-producer.js +21 -5
  157. package/dist/node_modules/bullmq/dist/esm/classes/index.d.ts +1 -0
  158. package/dist/node_modules/bullmq/dist/esm/classes/index.js +1 -0
  159. package/dist/node_modules/bullmq/dist/esm/classes/job-scheduler.d.ts +2 -2
  160. package/dist/node_modules/bullmq/dist/esm/classes/job-scheduler.js +88 -62
  161. package/dist/node_modules/bullmq/dist/esm/classes/job.d.ts +69 -19
  162. package/dist/node_modules/bullmq/dist/esm/classes/job.js +217 -110
  163. package/dist/node_modules/bullmq/dist/esm/classes/main-base.d.ts +2 -3
  164. package/dist/node_modules/bullmq/dist/esm/classes/main-base.js +1 -1
  165. package/dist/node_modules/bullmq/dist/esm/classes/queue-base.d.ts +2 -5
  166. package/dist/node_modules/bullmq/dist/esm/classes/queue-base.js +11 -10
  167. package/dist/node_modules/bullmq/dist/esm/classes/queue-events-producer.d.ts +2 -2
  168. package/dist/node_modules/bullmq/dist/esm/classes/queue-events.d.ts +118 -29
  169. package/dist/node_modules/bullmq/dist/esm/classes/queue-getters.d.ts +20 -13
  170. package/dist/node_modules/bullmq/dist/esm/classes/queue-getters.js +34 -14
  171. package/dist/node_modules/bullmq/dist/esm/classes/queue.d.ts +19 -16
  172. package/dist/node_modules/bullmq/dist/esm/classes/queue.js +19 -13
  173. package/dist/node_modules/bullmq/dist/esm/classes/redis-connection.d.ts +7 -3
  174. package/dist/node_modules/bullmq/dist/esm/classes/redis-connection.js +16 -9
  175. package/dist/node_modules/bullmq/dist/esm/classes/repeat.js +1 -1
  176. package/dist/node_modules/bullmq/dist/esm/classes/sandbox.js +54 -28
  177. package/dist/node_modules/bullmq/dist/esm/classes/scripts.d.ts +20 -13
  178. package/dist/node_modules/bullmq/dist/esm/classes/scripts.js +141 -39
  179. package/dist/node_modules/bullmq/dist/esm/classes/worker.d.ts +28 -7
  180. package/dist/node_modules/bullmq/dist/esm/classes/worker.js +192 -183
  181. package/dist/node_modules/bullmq/dist/esm/commands/addDelayedJob-6.lua +6 -17
  182. package/dist/node_modules/bullmq/dist/esm/commands/addJobScheduler-11.lua +123 -0
  183. package/dist/node_modules/bullmq/dist/{cjs/commands/addParentJob-4.lua → esm/commands/addParentJob-5.lua} +7 -6
  184. package/dist/node_modules/bullmq/dist/esm/commands/{addPrioritizedJob-8.lua → addPrioritizedJob-9.lua} +11 -10
  185. package/dist/node_modules/bullmq/dist/esm/commands/addRepeatableJob-2.lua +2 -2
  186. package/dist/node_modules/bullmq/dist/{cjs/commands/addStandardJob-8.lua → esm/commands/addStandardJob-9.lua} +9 -8
  187. package/dist/node_modules/bullmq/dist/esm/commands/cleanJobsInSet-3.lua +9 -5
  188. package/dist/node_modules/bullmq/dist/esm/commands/drain-5.lua +16 -16
  189. package/dist/node_modules/bullmq/dist/esm/commands/getDependencyCounts-4.lua +31 -0
  190. package/dist/node_modules/bullmq/dist/esm/commands/getState-8.lua +5 -5
  191. package/dist/node_modules/bullmq/dist/esm/commands/getStateV2-8.lua +8 -8
  192. package/dist/node_modules/bullmq/dist/esm/commands/includes/addDelayedJob.lua +23 -0
  193. package/dist/node_modules/bullmq/dist/esm/commands/includes/addJobFromScheduler.lua +37 -0
  194. package/dist/node_modules/bullmq/dist/esm/commands/includes/addJobWithPriority.lua +2 -2
  195. package/dist/node_modules/bullmq/dist/esm/commands/includes/cleanList.lua +4 -2
  196. package/dist/node_modules/bullmq/dist/esm/commands/includes/cleanSet.lua +3 -11
  197. package/dist/node_modules/bullmq/dist/esm/commands/includes/collectMetrics.lua +1 -1
  198. package/dist/node_modules/bullmq/dist/esm/commands/includes/deduplicateJob.lua +63 -18
  199. package/dist/node_modules/bullmq/dist/esm/commands/includes/filterOutJobsToIgnore.lua +14 -0
  200. package/dist/node_modules/bullmq/dist/esm/commands/includes/getNextDelayedTimestamp.lua +1 -1
  201. package/dist/node_modules/bullmq/dist/esm/commands/includes/getOrSetMaxEvents.lua +6 -6
  202. package/dist/node_modules/bullmq/dist/esm/commands/includes/getPriorityScore.lua +8 -0
  203. package/dist/node_modules/bullmq/dist/esm/commands/includes/isJobSchedulerJob.lua +15 -0
  204. package/dist/node_modules/bullmq/dist/esm/commands/includes/isLocked.lua +1 -0
  205. package/dist/node_modules/bullmq/dist/esm/commands/includes/moveChildFromDependenciesIfNeeded.lua +77 -0
  206. package/dist/node_modules/bullmq/dist/esm/commands/includes/{moveJobFromPriorityToActive.lua → moveJobFromPrioritizedToActive.lua} +1 -1
  207. package/dist/node_modules/bullmq/dist/esm/commands/includes/moveParentToWait.lua +45 -0
  208. package/dist/node_modules/bullmq/dist/esm/commands/includes/moveParentToWaitIfNeeded.lua +9 -50
  209. package/dist/node_modules/bullmq/dist/esm/commands/includes/moveParentToWaitIfNoPendingDependencies.lua +13 -0
  210. package/dist/node_modules/bullmq/dist/esm/commands/includes/prepareJobForProcessing.lua +2 -1
  211. package/dist/node_modules/bullmq/dist/esm/commands/includes/promoteDelayedJobs.lua +7 -3
  212. package/dist/node_modules/bullmq/dist/esm/commands/includes/removeDeduplicationKeyIfNeededOnFinalization.lua +23 -0
  213. package/dist/node_modules/bullmq/dist/esm/commands/includes/removeDeduplicationKeyIfNeededOnRemoval.lua +16 -0
  214. package/dist/node_modules/bullmq/dist/esm/commands/includes/removeJob.lua +2 -2
  215. package/dist/node_modules/bullmq/dist/esm/commands/includes/removeJobKeys.lua +2 -2
  216. package/dist/node_modules/bullmq/dist/esm/commands/includes/removeJobWithChildren.lua +95 -0
  217. package/dist/node_modules/bullmq/dist/esm/commands/includes/removeListJobs.lua +7 -1
  218. package/dist/node_modules/bullmq/dist/esm/commands/includes/removeParentDependencyKey.lua +5 -5
  219. package/dist/node_modules/bullmq/dist/esm/commands/includes/removeZSetJobs.lua +2 -8
  220. package/dist/node_modules/bullmq/dist/esm/commands/includes/storeJob.lua +2 -2
  221. package/dist/node_modules/bullmq/dist/esm/commands/includes/storeJobScheduler.lua +52 -0
  222. package/dist/node_modules/bullmq/dist/esm/commands/includes/trimEvents.lua +1 -1
  223. package/dist/node_modules/bullmq/dist/esm/commands/includes/updateExistingJobsParent.lua +1 -1
  224. package/dist/node_modules/bullmq/dist/esm/commands/includes/updateJobFields.lua +5 -5
  225. package/dist/node_modules/bullmq/dist/esm/commands/includes/updateParentDepsIfNeeded.lua +2 -2
  226. package/dist/node_modules/bullmq/dist/esm/commands/isFinished-3.lua +2 -2
  227. package/dist/node_modules/bullmq/dist/esm/commands/moveJobFromActiveToWait-9.lua +63 -0
  228. package/dist/node_modules/bullmq/dist/esm/commands/moveStalledJobsToWait-8.lua +109 -0
  229. package/dist/node_modules/bullmq/dist/esm/commands/moveToActive-11.lua +3 -2
  230. package/dist/node_modules/bullmq/dist/esm/commands/moveToFinished-14.lua +52 -52
  231. package/dist/node_modules/bullmq/dist/esm/commands/moveToWaitingChildren-8.lua +106 -0
  232. package/dist/node_modules/bullmq/dist/esm/commands/removeJob-2.lua +18 -66
  233. package/dist/node_modules/bullmq/dist/esm/commands/removeJobScheduler-3.lua +1 -1
  234. package/dist/node_modules/bullmq/dist/esm/commands/removeUnprocessedChildren-2.lua +31 -0
  235. package/dist/node_modules/bullmq/dist/esm/commands/retryJob-11.lua +11 -5
  236. package/dist/node_modules/bullmq/dist/esm/commands/updateJobScheduler-12.lua +90 -0
  237. package/dist/node_modules/bullmq/dist/esm/commands/updateRepeatableJobMillis-1.lua +1 -1
  238. package/dist/node_modules/bullmq/dist/esm/enums/child-command.d.ts +3 -1
  239. package/dist/node_modules/bullmq/dist/esm/enums/child-command.js +2 -0
  240. package/dist/node_modules/bullmq/dist/esm/enums/error-code.d.ts +3 -2
  241. package/dist/node_modules/bullmq/dist/esm/enums/error-code.js +2 -1
  242. package/dist/node_modules/bullmq/dist/esm/enums/parent-command.d.ts +5 -2
  243. package/dist/node_modules/bullmq/dist/esm/enums/parent-command.js +5 -2
  244. package/dist/node_modules/bullmq/dist/esm/interfaces/backoff-options.d.ts +5 -0
  245. package/dist/node_modules/bullmq/dist/esm/interfaces/base-job-options.d.ts +3 -9
  246. package/dist/node_modules/bullmq/dist/esm/interfaces/child-message.d.ts +1 -0
  247. package/dist/node_modules/bullmq/dist/esm/interfaces/index.d.ts +2 -1
  248. package/dist/node_modules/bullmq/dist/esm/interfaces/index.js +2 -1
  249. package/dist/node_modules/bullmq/dist/esm/interfaces/job-json.d.ts +6 -2
  250. package/dist/node_modules/bullmq/dist/esm/interfaces/job-scheduler-json.d.ts +7 -4
  251. package/dist/node_modules/bullmq/dist/esm/interfaces/minimal-job.d.ts +34 -15
  252. package/dist/node_modules/bullmq/dist/esm/interfaces/parent-options.d.ts +11 -0
  253. package/dist/node_modules/bullmq/dist/esm/interfaces/parent-options.js +2 -0
  254. package/dist/node_modules/bullmq/dist/esm/interfaces/parent.d.ts +6 -2
  255. package/dist/node_modules/bullmq/dist/esm/interfaces/queue-options.d.ts +15 -6
  256. package/dist/node_modules/bullmq/dist/esm/interfaces/receiver.d.ts +4 -0
  257. package/dist/node_modules/bullmq/dist/esm/interfaces/receiver.js +2 -0
  258. package/dist/node_modules/bullmq/dist/esm/interfaces/repeat-options.d.ts +1 -2
  259. package/dist/node_modules/bullmq/dist/esm/interfaces/repeatable-options.d.ts +2 -0
  260. package/dist/node_modules/bullmq/dist/esm/interfaces/sandboxed-job.d.ts +3 -2
  261. package/dist/node_modules/bullmq/dist/esm/interfaces/sandboxed-options.d.ts +1 -1
  262. package/dist/node_modules/bullmq/dist/esm/interfaces/telemetry.d.ts +18 -15
  263. package/dist/node_modules/bullmq/dist/esm/interfaces/worker-options.d.ts +10 -10
  264. package/dist/node_modules/bullmq/dist/esm/scripts/addDelayedJob-6.js +163 -84
  265. package/dist/node_modules/bullmq/dist/esm/scripts/addJobScheduler-11.js +462 -0
  266. package/dist/node_modules/bullmq/dist/esm/scripts/{addParentJob-4.js → addParentJob-5.js} +147 -75
  267. package/dist/node_modules/bullmq/dist/esm/scripts/{addPrioritizedJob-8.js → addPrioritizedJob-9.js} +151 -79
  268. package/dist/node_modules/bullmq/dist/esm/scripts/addRepeatableJob-2.js +18 -13
  269. package/dist/node_modules/bullmq/dist/esm/scripts/{addStandardJob-8.js → addStandardJob-9.js} +149 -77
  270. package/dist/node_modules/bullmq/dist/esm/scripts/changeDelay-4.js +7 -7
  271. package/dist/node_modules/bullmq/dist/esm/scripts/changePriority-7.js +8 -2
  272. package/dist/node_modules/bullmq/dist/esm/scripts/cleanJobsInSet-3.js +45 -29
  273. package/dist/node_modules/bullmq/dist/esm/scripts/drain-5.js +49 -35
  274. package/dist/node_modules/bullmq/dist/esm/scripts/getDependencyCounts-4.d.ts +5 -0
  275. package/dist/node_modules/bullmq/dist/esm/scripts/getDependencyCounts-4.js +34 -0
  276. package/dist/node_modules/bullmq/dist/esm/scripts/getState-8.js +5 -5
  277. package/dist/node_modules/bullmq/dist/esm/scripts/getStateV2-8.js +8 -8
  278. package/dist/node_modules/bullmq/dist/esm/scripts/index.d.ts +10 -7
  279. package/dist/node_modules/bullmq/dist/esm/scripts/index.js +10 -7
  280. package/dist/node_modules/bullmq/dist/esm/scripts/isFinished-3.js +2 -2
  281. package/dist/node_modules/bullmq/dist/esm/scripts/{moveJobFromActiveToWait-10.js → moveJobFromActiveToWait-9.js} +57 -37
  282. package/dist/node_modules/bullmq/dist/esm/scripts/moveJobsToWait-8.js +6 -6
  283. package/dist/node_modules/bullmq/dist/esm/scripts/moveStalledJobsToWait-8.js +168 -0
  284. package/dist/node_modules/bullmq/dist/esm/scripts/moveToActive-11.js +18 -8
  285. package/dist/node_modules/bullmq/dist/esm/scripts/moveToDelayed-8.js +12 -12
  286. package/dist/node_modules/bullmq/dist/esm/scripts/moveToFinished-14.js +218 -155
  287. package/dist/node_modules/bullmq/dist/esm/scripts/moveToWaitingChildren-8.js +526 -0
  288. package/dist/node_modules/bullmq/dist/esm/scripts/obliterate-2.js +33 -20
  289. package/dist/node_modules/bullmq/dist/esm/scripts/pause-7.js +1 -1
  290. package/dist/node_modules/bullmq/dist/esm/scripts/promote-9.js +8 -2
  291. package/dist/node_modules/bullmq/dist/esm/scripts/removeChildDependency-1.js +7 -7
  292. package/dist/node_modules/bullmq/dist/esm/scripts/removeJob-2.js +120 -63
  293. package/dist/node_modules/bullmq/dist/esm/scripts/removeJobScheduler-3.js +3 -3
  294. package/dist/node_modules/bullmq/dist/esm/scripts/removeRepeatable-3.js +2 -2
  295. package/dist/node_modules/bullmq/dist/esm/scripts/removeUnprocessedChildren-2.d.ts +5 -0
  296. package/dist/node_modules/bullmq/dist/esm/scripts/removeUnprocessedChildren-2.js +336 -0
  297. package/dist/node_modules/bullmq/dist/esm/scripts/reprocessJob-8.js +6 -6
  298. package/dist/node_modules/bullmq/dist/esm/scripts/retryJob-11.js +47 -26
  299. package/dist/node_modules/bullmq/dist/esm/scripts/updateJobScheduler-12.d.ts +5 -0
  300. package/dist/node_modules/bullmq/dist/esm/scripts/updateJobScheduler-12.js +271 -0
  301. package/dist/node_modules/bullmq/dist/esm/scripts/updateProgress-3.js +6 -6
  302. package/dist/node_modules/bullmq/dist/esm/scripts/updateRepeatableJobMillis-1.js +1 -1
  303. package/dist/node_modules/bullmq/dist/esm/tsconfig.tsbuildinfo +1 -1
  304. package/dist/node_modules/bullmq/dist/esm/types/deduplication-options.d.ts +22 -0
  305. package/dist/node_modules/bullmq/dist/esm/types/deduplication-options.js +2 -0
  306. package/dist/node_modules/bullmq/dist/esm/types/index.d.ts +3 -0
  307. package/dist/node_modules/bullmq/dist/esm/types/index.js +3 -0
  308. package/dist/node_modules/bullmq/dist/esm/types/job-options.d.ts +19 -8
  309. package/dist/node_modules/bullmq/dist/esm/types/job-progress.d.ts +1 -0
  310. package/dist/node_modules/bullmq/dist/esm/types/job-progress.js +2 -0
  311. package/dist/node_modules/bullmq/dist/esm/types/script-queue-context.d.ts +2 -0
  312. package/dist/node_modules/bullmq/dist/esm/types/script-queue-context.js +2 -0
  313. package/dist/node_modules/bullmq/dist/esm/utils.d.ts +25 -5
  314. package/dist/node_modules/bullmq/dist/esm/utils.js +27 -0
  315. package/dist/node_modules/bullmq/dist/esm/version.d.ts +1 -1
  316. package/dist/node_modules/bullmq/dist/esm/version.js +1 -1
  317. package/dist/node_modules/bullmq/package.json +1 -1
  318. package/package.json +7 -7
  319. package/dist/node_modules/bullmq/dist/cjs/commands/addJobScheduler-2.lua +0 -91
  320. package/dist/node_modules/bullmq/dist/cjs/commands/includes/moveParentFromWaitingChildrenToFailed.lua +0 -53
  321. package/dist/node_modules/bullmq/dist/cjs/commands/includes/removeDeduplicationKey.lua +0 -11
  322. package/dist/node_modules/bullmq/dist/cjs/commands/includes/removeDeduplicationKeyIfNeeded.lua +0 -14
  323. package/dist/node_modules/bullmq/dist/cjs/commands/moveJobFromActiveToWait-10.lua +0 -60
  324. package/dist/node_modules/bullmq/dist/cjs/commands/moveStalledJobsToWait-9.lua +0 -156
  325. package/dist/node_modules/bullmq/dist/cjs/commands/moveToWaitingChildren-5.lua +0 -68
  326. package/dist/node_modules/bullmq/dist/cjs/scripts/addJobScheduler-2.js +0 -237
  327. package/dist/node_modules/bullmq/dist/cjs/scripts/moveStalledJobsToWait-9.js +0 -529
  328. package/dist/node_modules/bullmq/dist/cjs/scripts/moveToWaitingChildren-5.js +0 -83
  329. package/dist/node_modules/bullmq/dist/esm/commands/addJobScheduler-2.lua +0 -91
  330. package/dist/node_modules/bullmq/dist/esm/commands/includes/moveParentFromWaitingChildrenToFailed.lua +0 -53
  331. package/dist/node_modules/bullmq/dist/esm/commands/includes/removeDeduplicationKey.lua +0 -11
  332. package/dist/node_modules/bullmq/dist/esm/commands/includes/removeDeduplicationKeyIfNeeded.lua +0 -14
  333. package/dist/node_modules/bullmq/dist/esm/commands/moveJobFromActiveToWait-10.lua +0 -60
  334. package/dist/node_modules/bullmq/dist/esm/commands/moveStalledJobsToWait-9.lua +0 -156
  335. package/dist/node_modules/bullmq/dist/esm/commands/moveToWaitingChildren-5.lua +0 -68
  336. package/dist/node_modules/bullmq/dist/esm/interfaces/debounce-options.d.ts +0 -13
  337. package/dist/node_modules/bullmq/dist/esm/interfaces/debounce-options.js +0 -2
  338. package/dist/node_modules/bullmq/dist/esm/scripts/addJobScheduler-2.js +0 -234
  339. package/dist/node_modules/bullmq/dist/esm/scripts/moveStalledJobsToWait-9.js +0 -526
  340. package/dist/node_modules/bullmq/dist/esm/scripts/moveToWaitingChildren-5.js +0 -80
  341. /package/dist/node_modules/bullmq/dist/esm/scripts/{addJobScheduler-2.d.ts → addJobScheduler-11.d.ts} +0 -0
  342. /package/dist/node_modules/bullmq/dist/esm/scripts/{addParentJob-4.d.ts → addParentJob-5.d.ts} +0 -0
  343. /package/dist/node_modules/bullmq/dist/esm/scripts/{addPrioritizedJob-8.d.ts → addPrioritizedJob-9.d.ts} +0 -0
  344. /package/dist/node_modules/bullmq/dist/esm/scripts/{addStandardJob-8.d.ts → addStandardJob-9.d.ts} +0 -0
  345. /package/dist/node_modules/bullmq/dist/esm/scripts/{moveJobFromActiveToWait-10.d.ts → moveJobFromActiveToWait-9.d.ts} +0 -0
  346. /package/dist/node_modules/bullmq/dist/esm/scripts/{moveStalledJobsToWait-9.d.ts → moveStalledJobsToWait-8.d.ts} +0 -0
  347. /package/dist/node_modules/bullmq/dist/esm/scripts/{moveToWaitingChildren-5.d.ts → moveToWaitingChildren-8.d.ts} +0 -0
@@ -0,0 +1,465 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.addJobScheduler = void 0;
4
+ const content = `--[[
5
+ Adds a job scheduler, i.e. a job factory that creates jobs based on a given schedule (repeat options).
6
+ Input:
7
+ KEYS[1] 'repeat' key
8
+ KEYS[2] 'delayed' key
9
+ KEYS[3] 'wait' key
10
+ KEYS[4] 'paused' key
11
+ KEYS[5] 'meta' key
12
+ KEYS[6] 'prioritized' key
13
+ KEYS[7] 'marker' key
14
+ KEYS[8] 'id' key
15
+ KEYS[9] 'events' key
16
+ KEYS[10] 'pc' priority counter
17
+ KEYS[11] 'active' key
18
+ ARGV[1] next milliseconds
19
+ ARGV[2] msgpacked options
20
+ [1] name
21
+ [2] tz?
22
+ [3] patten?
23
+ [4] endDate?
24
+ [5] every?
25
+ ARGV[3] jobs scheduler id
26
+ ARGV[4] Json stringified template data
27
+ ARGV[5] mspacked template opts
28
+ ARGV[6] msgpacked delayed opts
29
+ ARGV[7] timestamp
30
+ ARGV[8] prefix key
31
+ ARGV[9] producer key
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
+ local nextMillis = ARGV[1]
44
+ local jobSchedulerId = ARGV[3]
45
+ local templateOpts = cmsgpack.unpack(ARGV[5])
46
+ local prefixKey = ARGV[8]
47
+ -- Includes
48
+ --[[
49
+ Add delay marker if needed.
50
+ ]]
51
+ -- Includes
52
+ --[[
53
+ Adds a delayed job to the queue by doing the following:
54
+ - Creates a new job key with the job data.
55
+ - adds to delayed zset.
56
+ - Emits a global event 'delayed' if the job is delayed.
57
+ ]]
58
+ -- Includes
59
+ --[[
60
+ Add delay marker if needed.
61
+ ]]
62
+ -- Includes
63
+ --[[
64
+ Function to return the next delayed job timestamp.
65
+ ]]
66
+ local function getNextDelayedTimestamp(delayedKey)
67
+ local result = rcall("ZRANGE", delayedKey, 0, 0, "WITHSCORES")
68
+ if #result then
69
+ local nextTimestamp = tonumber(result[2])
70
+ if nextTimestamp ~= nil then
71
+ return nextTimestamp / 0x1000
72
+ end
73
+ end
74
+ end
75
+ local function addDelayMarkerIfNeeded(markerKey, delayedKey)
76
+ local nextTimestamp = getNextDelayedTimestamp(delayedKey)
77
+ if nextTimestamp ~= nil then
78
+ -- Replace the score of the marker with the newest known
79
+ -- next timestamp.
80
+ rcall("ZADD", markerKey, nextTimestamp, "1")
81
+ end
82
+ end
83
+ --[[
84
+ Bake in the job id first 12 bits into the timestamp
85
+ to guarantee correct execution order of delayed jobs
86
+ (up to 4096 jobs per given timestamp or 4096 jobs apart per timestamp)
87
+ WARNING: Jobs that are so far apart that they wrap around will cause FIFO to fail
88
+ ]]
89
+ local function getDelayedScore(delayedKey, timestamp, delay)
90
+ local delayedTimestamp = (delay > 0 and (tonumber(timestamp) + delay)) or tonumber(timestamp)
91
+ local minScore = delayedTimestamp * 0x1000
92
+ local maxScore = (delayedTimestamp + 1 ) * 0x1000 - 1
93
+ local result = rcall("ZREVRANGEBYSCORE", delayedKey, maxScore,
94
+ minScore, "WITHSCORES","LIMIT", 0, 1)
95
+ if #result then
96
+ local currentMaxScore = tonumber(result[2])
97
+ if currentMaxScore ~= nil then
98
+ if currentMaxScore >= maxScore then
99
+ return maxScore, delayedTimestamp
100
+ else
101
+ return currentMaxScore + 1, delayedTimestamp
102
+ end
103
+ end
104
+ end
105
+ return minScore, delayedTimestamp
106
+ end
107
+ local function addDelayedJob(jobId, delayedKey, eventsKey, timestamp,
108
+ maxEvents, markerKey, delay)
109
+ local score, delayedTimestamp = getDelayedScore(delayedKey, timestamp, tonumber(delay))
110
+ rcall("ZADD", delayedKey, score, jobId)
111
+ rcall("XADD", eventsKey, "MAXLEN", "~", maxEvents, "*", "event", "delayed",
112
+ "jobId", jobId, "delay", delayedTimestamp)
113
+ -- mark that a delayed job is available
114
+ addDelayMarkerIfNeeded(markerKey, delayedKey)
115
+ end
116
+ --[[
117
+ Function to add job considering priority.
118
+ ]]
119
+ -- Includes
120
+ --[[
121
+ Add marker if needed when a job is available.
122
+ ]]
123
+ local function addBaseMarkerIfNeeded(markerKey, isPausedOrMaxed)
124
+ if not isPausedOrMaxed then
125
+ rcall("ZADD", markerKey, 0, "0")
126
+ end
127
+ end
128
+ --[[
129
+ Function to get priority score.
130
+ ]]
131
+ local function getPriorityScore(priority, priorityCounterKey)
132
+ local prioCounter = rcall("INCR", priorityCounterKey)
133
+ return priority * 0x100000000 + prioCounter % 0x100000000
134
+ end
135
+ local function addJobWithPriority(markerKey, prioritizedKey, priority, jobId, priorityCounterKey,
136
+ isPausedOrMaxed)
137
+ local score = getPriorityScore(priority, priorityCounterKey)
138
+ rcall("ZADD", prioritizedKey, score, jobId)
139
+ addBaseMarkerIfNeeded(markerKey, isPausedOrMaxed)
140
+ end
141
+ --[[
142
+ Function to check for the meta.paused key to decide if we are paused or not
143
+ (since an empty list and !EXISTS are not really the same).
144
+ ]]
145
+ local function isQueuePaused(queueMetaKey)
146
+ return rcall("HEXISTS", queueMetaKey, "paused") == 1
147
+ end
148
+ --[[
149
+ Function to store a job
150
+ ]]
151
+ local function storeJob(eventsKey, jobIdKey, jobId, name, data, opts, timestamp,
152
+ parentKey, parentData, repeatJobKey)
153
+ local jsonOpts = cjson.encode(opts)
154
+ local delay = opts['delay'] or 0
155
+ local priority = opts['priority'] or 0
156
+ local debounceId = opts['de'] and opts['de']['id']
157
+ local optionalValues = {}
158
+ if parentKey ~= nil then
159
+ table.insert(optionalValues, "parentKey")
160
+ table.insert(optionalValues, parentKey)
161
+ table.insert(optionalValues, "parent")
162
+ table.insert(optionalValues, parentData)
163
+ end
164
+ if repeatJobKey then
165
+ table.insert(optionalValues, "rjk")
166
+ table.insert(optionalValues, repeatJobKey)
167
+ end
168
+ if debounceId then
169
+ table.insert(optionalValues, "deid")
170
+ table.insert(optionalValues, debounceId)
171
+ end
172
+ rcall("HMSET", jobIdKey, "name", name, "data", data, "opts", jsonOpts,
173
+ "timestamp", timestamp, "delay", delay, "priority", priority,
174
+ unpack(optionalValues))
175
+ rcall("XADD", eventsKey, "*", "event", "added", "jobId", jobId, "name", name)
176
+ return delay, priority
177
+ end
178
+ --[[
179
+ Function to check for the meta.paused key to decide if we are paused or not
180
+ (since an empty list and !EXISTS are not really the same).
181
+ ]]
182
+ local function getTargetQueueList(queueMetaKey, activeKey, waitKey, pausedKey)
183
+ local queueAttributes = rcall("HMGET", queueMetaKey, "paused", "concurrency")
184
+ if queueAttributes[1] then
185
+ return pausedKey, true
186
+ else
187
+ if queueAttributes[2] then
188
+ local activeCount = rcall("LLEN", activeKey)
189
+ if activeCount >= tonumber(queueAttributes[2]) then
190
+ return waitKey, true
191
+ else
192
+ return waitKey, false
193
+ end
194
+ end
195
+ end
196
+ return waitKey, false
197
+ end
198
+ --[[
199
+ Function to add job in target list and add marker if needed.
200
+ ]]
201
+ -- Includes
202
+ local function addJobInTargetList(targetKey, markerKey, pushCmd, isPausedOrMaxed, jobId)
203
+ rcall(pushCmd, targetKey, jobId)
204
+ addBaseMarkerIfNeeded(markerKey, isPausedOrMaxed)
205
+ end
206
+ local function addJobFromScheduler(jobKey, jobId, rawOpts, waitKey, pausedKey, activeKey, metaKey,
207
+ prioritizedKey, priorityCounter, delayedKey, markerKey, eventsKey, name, maxEvents, timestamp,
208
+ data, jobSchedulerId)
209
+ local opts = cmsgpack.unpack(rawOpts)
210
+ local delay, priority = storeJob(eventsKey, jobKey, jobId, name, data,
211
+ opts, timestamp, nil, nil, jobSchedulerId)
212
+ if delay ~= 0 then
213
+ addDelayedJob(jobId, delayedKey, eventsKey, timestamp, maxEvents, markerKey, delay)
214
+ else
215
+ local target, isPausedOrMaxed = getTargetQueueList(metaKey, activeKey, waitKey, pausedKey)
216
+ -- Standard or priority add
217
+ if priority == 0 then
218
+ local pushCmd = opts['lifo'] and 'RPUSH' or 'LPUSH'
219
+ addJobInTargetList(target, markerKey, pushCmd, isPausedOrMaxed, jobId)
220
+ else
221
+ -- Priority add
222
+ addJobWithPriority(markerKey, prioritizedKey, priority, jobId, priorityCounter, isPausedOrMaxed)
223
+ end
224
+ -- Emit waiting event
225
+ rcall("XADD", eventsKey, "MAXLEN", "~", maxEvents, "*", "event", "waiting", "jobId", jobId)
226
+ end
227
+ end
228
+ --[[
229
+ Function to get max events value or set by default 10000.
230
+ ]]
231
+ local function getOrSetMaxEvents(metaKey)
232
+ local maxEvents = rcall("HGET", metaKey, "opts.maxLenEvents")
233
+ if not maxEvents then
234
+ maxEvents = 10000
235
+ rcall("HSET", metaKey, "opts.maxLenEvents", maxEvents)
236
+ end
237
+ return maxEvents
238
+ end
239
+ --[[
240
+ Function to remove job.
241
+ ]]
242
+ -- Includes
243
+ --[[
244
+ Function to remove deduplication key if needed
245
+ when a job is being removed.
246
+ ]]
247
+ local function removeDeduplicationKeyIfNeededOnRemoval(prefixKey,
248
+ jobKey, jobId)
249
+ local deduplicationId = rcall("HGET", jobKey, "deid")
250
+ if deduplicationId then
251
+ local deduplicationKey = prefixKey .. "de:" .. deduplicationId
252
+ local currentJobId = rcall('GET', deduplicationKey)
253
+ if currentJobId and currentJobId == jobId then
254
+ return rcall("DEL", deduplicationKey)
255
+ end
256
+ end
257
+ end
258
+ --[[
259
+ Function to remove job keys.
260
+ ]]
261
+ local function removeJobKeys(jobKey)
262
+ return rcall("DEL", jobKey, jobKey .. ':logs', jobKey .. ':dependencies',
263
+ jobKey .. ':processed', jobKey .. ':failed', jobKey .. ':unsuccessful')
264
+ end
265
+ --[[
266
+ Check if this job has a parent. If so we will just remove it from
267
+ the parent child list, but if it is the last child we should move the parent to "wait/paused"
268
+ which requires code from "moveToFinished"
269
+ ]]
270
+ -- Includes
271
+ --[[
272
+ Functions to destructure job key.
273
+ Just a bit of warning, these functions may be a bit slow and affect performance significantly.
274
+ ]]
275
+ local getJobIdFromKey = function (jobKey)
276
+ return string.match(jobKey, ".*:(.*)")
277
+ end
278
+ local getJobKeyPrefix = function (jobKey, jobId)
279
+ return string.sub(jobKey, 0, #jobKey - #jobId)
280
+ end
281
+ local function _moveParentToWait(parentPrefix, parentId, emitEvent)
282
+ local parentTarget, isPausedOrMaxed = getTargetQueueList(parentPrefix .. "meta", parentPrefix .. "active",
283
+ parentPrefix .. "wait", parentPrefix .. "paused")
284
+ addJobInTargetList(parentTarget, parentPrefix .. "marker", "RPUSH", isPausedOrMaxed, parentId)
285
+ if emitEvent then
286
+ local parentEventStream = parentPrefix .. "events"
287
+ rcall("XADD", parentEventStream, "*", "event", "waiting", "jobId", parentId, "prev", "waiting-children")
288
+ end
289
+ end
290
+ local function removeParentDependencyKey(jobKey, hard, parentKey, baseKey, debounceId)
291
+ if parentKey then
292
+ local parentDependenciesKey = parentKey .. ":dependencies"
293
+ local result = rcall("SREM", parentDependenciesKey, jobKey)
294
+ if result > 0 then
295
+ local pendingDependencies = rcall("SCARD", parentDependenciesKey)
296
+ if pendingDependencies == 0 then
297
+ local parentId = getJobIdFromKey(parentKey)
298
+ local parentPrefix = getJobKeyPrefix(parentKey, parentId)
299
+ local numRemovedElements = rcall("ZREM", parentPrefix .. "waiting-children", parentId)
300
+ if numRemovedElements == 1 then
301
+ if hard then -- remove parent in same queue
302
+ if parentPrefix == baseKey then
303
+ removeParentDependencyKey(parentKey, hard, nil, baseKey, nil)
304
+ removeJobKeys(parentKey)
305
+ if debounceId then
306
+ rcall("DEL", parentPrefix .. "de:" .. debounceId)
307
+ end
308
+ else
309
+ _moveParentToWait(parentPrefix, parentId)
310
+ end
311
+ else
312
+ _moveParentToWait(parentPrefix, parentId, true)
313
+ end
314
+ end
315
+ end
316
+ return true
317
+ end
318
+ else
319
+ local parentAttributes = rcall("HMGET", jobKey, "parentKey", "deid")
320
+ local missedParentKey = parentAttributes[1]
321
+ if( (type(missedParentKey) == "string") and missedParentKey ~= ""
322
+ and (rcall("EXISTS", missedParentKey) == 1)) then
323
+ local parentDependenciesKey = missedParentKey .. ":dependencies"
324
+ local result = rcall("SREM", parentDependenciesKey, jobKey)
325
+ if result > 0 then
326
+ local pendingDependencies = rcall("SCARD", parentDependenciesKey)
327
+ if pendingDependencies == 0 then
328
+ local parentId = getJobIdFromKey(missedParentKey)
329
+ local parentPrefix = getJobKeyPrefix(missedParentKey, parentId)
330
+ local numRemovedElements = rcall("ZREM", parentPrefix .. "waiting-children", parentId)
331
+ if numRemovedElements == 1 then
332
+ if hard then
333
+ if parentPrefix == baseKey then
334
+ removeParentDependencyKey(missedParentKey, hard, nil, baseKey, nil)
335
+ removeJobKeys(missedParentKey)
336
+ if parentAttributes[2] then
337
+ rcall("DEL", parentPrefix .. "de:" .. parentAttributes[2])
338
+ end
339
+ else
340
+ _moveParentToWait(parentPrefix, parentId)
341
+ end
342
+ else
343
+ _moveParentToWait(parentPrefix, parentId, true)
344
+ end
345
+ end
346
+ end
347
+ return true
348
+ end
349
+ end
350
+ end
351
+ return false
352
+ end
353
+ local function removeJob(jobId, hard, baseKey, shouldRemoveDeduplicationKey)
354
+ local jobKey = baseKey .. jobId
355
+ removeParentDependencyKey(jobKey, hard, nil, baseKey)
356
+ if shouldRemoveDeduplicationKey then
357
+ removeDeduplicationKeyIfNeededOnRemoval(baseKey, jobKey, jobId)
358
+ end
359
+ removeJobKeys(jobKey)
360
+ end
361
+ --[[
362
+ Function to store a job scheduler
363
+ ]]
364
+ local function storeJobScheduler(schedulerId, schedulerKey, repeatKey, nextMillis, opts,
365
+ templateData, templateOpts)
366
+ rcall("ZADD", repeatKey, nextMillis, schedulerId)
367
+ local optionalValues = {}
368
+ if opts['tz'] then
369
+ table.insert(optionalValues, "tz")
370
+ table.insert(optionalValues, opts['tz'])
371
+ end
372
+ if opts['limit'] then
373
+ table.insert(optionalValues, "limit")
374
+ table.insert(optionalValues, opts['limit'])
375
+ end
376
+ if opts['pattern'] then
377
+ table.insert(optionalValues, "pattern")
378
+ table.insert(optionalValues, opts['pattern'])
379
+ end
380
+ if opts['endDate'] then
381
+ table.insert(optionalValues, "endDate")
382
+ table.insert(optionalValues, opts['endDate'])
383
+ end
384
+ if opts['every'] then
385
+ table.insert(optionalValues, "every")
386
+ table.insert(optionalValues, opts['every'])
387
+ end
388
+ if opts['offset'] then
389
+ table.insert(optionalValues, "offset")
390
+ table.insert(optionalValues, opts['offset'])
391
+ end
392
+ local jsonTemplateOpts = cjson.encode(templateOpts)
393
+ if jsonTemplateOpts and jsonTemplateOpts ~= '{}' then
394
+ table.insert(optionalValues, "opts")
395
+ table.insert(optionalValues, jsonTemplateOpts)
396
+ end
397
+ if templateData and templateData ~= '{}' then
398
+ table.insert(optionalValues, "data")
399
+ table.insert(optionalValues, templateData)
400
+ end
401
+ rcall("DEL", schedulerKey) -- remove all attributes and then re-insert new ones
402
+ rcall("HMSET", schedulerKey, "name", opts['name'], "ic", 1, unpack(optionalValues))
403
+ end
404
+ -- If we are overriding a repeatable job we must delete the delayed job for
405
+ -- the next iteration.
406
+ local schedulerKey = repeatKey .. ":" .. jobSchedulerId
407
+ local nextDelayedJobKey = schedulerKey .. ":" .. nextMillis
408
+ local nextDelayedJobId = "repeat:" .. jobSchedulerId .. ":" .. nextMillis
409
+ local maxEvents = getOrSetMaxEvents(metaKey)
410
+ local function removeJobFromScheduler(prefixKey, delayedKey, prioritizedKey, waitKey, pausedKey, jobId,
411
+ metaKey, eventsKey)
412
+ if rcall("ZSCORE", delayedKey, jobId) then
413
+ removeJob(jobId, true, prefixKey, true --[[remove debounce key]] )
414
+ rcall("ZREM", delayedKey, jobId)
415
+ return true
416
+ elseif rcall("ZSCORE", prioritizedKey, jobId) then
417
+ removeJob(jobId, true, prefixKey, true --[[remove debounce key]] )
418
+ rcall("ZREM", prioritizedKey, jobId)
419
+ return true
420
+ else
421
+ local pausedOrWaitKey = waitKey
422
+ if isQueuePaused(metaKey) then
423
+ pausedOrWaitKey = pausedKey
424
+ end
425
+ if rcall("LREM", pausedOrWaitKey, 1, jobId) > 0 then
426
+ removeJob(jobId, true, prefixKey, true --[[remove debounce key]] )
427
+ return true
428
+ end
429
+ end
430
+ return false
431
+ end
432
+ if rcall("EXISTS", nextDelayedJobKey) == 1 then
433
+ if not removeJobFromScheduler(prefixKey, delayedKey, prioritizedKey, waitKey, pausedKey,
434
+ nextDelayedJobId, metaKey, eventsKey) then
435
+ rcall("XADD", eventsKey, "MAXLEN", "~", maxEvents, "*", "event",
436
+ "duplicated", "jobId", nextDelayedJobId)
437
+ return nextDelayedJobId .. "" -- convert to string
438
+ end
439
+ end
440
+ local prevMillis = rcall("ZSCORE", repeatKey, jobSchedulerId)
441
+ if prevMillis then
442
+ local currentJobId = "repeat:" .. jobSchedulerId .. ":" .. prevMillis
443
+ local currentDelayedJobKey = schedulerKey .. ":" .. prevMillis
444
+ if currentJobId ~= nextDelayedJobId and rcall("EXISTS", currentDelayedJobKey) == 1 then
445
+ removeJobFromScheduler(prefixKey, delayedKey, prioritizedKey, waitKey, pausedKey,
446
+ currentJobId, metaKey, eventsKey)
447
+ end
448
+ end
449
+ local schedulerOpts = cmsgpack.unpack(ARGV[2])
450
+ storeJobScheduler(jobSchedulerId, schedulerKey, repeatKey, nextMillis, schedulerOpts, ARGV[4], templateOpts)
451
+ rcall("INCR", KEYS[8])
452
+ addJobFromScheduler(nextDelayedJobKey, nextDelayedJobId, ARGV[6], waitKey, pausedKey,
453
+ KEYS[11], metaKey, prioritizedKey, KEYS[10], delayedKey, KEYS[7], eventsKey,
454
+ schedulerOpts['name'], maxEvents, ARGV[7], ARGV[4], jobSchedulerId)
455
+ if ARGV[9] ~= "" then
456
+ rcall("HSET", ARGV[9], "nrjid", nextDelayedJobId)
457
+ end
458
+ return nextDelayedJobId .. "" -- convert to string
459
+ `;
460
+ exports.addJobScheduler = {
461
+ name: 'addJobScheduler',
462
+ content,
463
+ keys: 11,
464
+ };
465
+ //# sourceMappingURL=addJobScheduler-11.js.map