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