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