bullmq 2.2.0 → 2.3.0

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 (234) hide show
  1. package/dist/cjs/classes/job.d.ts +1 -1
  2. package/dist/cjs/classes/redis-connection.d.ts +6 -2
  3. package/dist/cjs/classes/redis-connection.js +12 -5
  4. package/dist/cjs/classes/redis-connection.js.map +1 -1
  5. package/dist/cjs/scripts/addJob-8.d.ts +5 -0
  6. package/dist/{esm/commands/addJob-8.lua → cjs/scripts/addJob-8.js} +83 -31
  7. package/dist/cjs/scripts/addJob-8.js.map +1 -0
  8. package/dist/cjs/scripts/changeDelay-4.d.ts +5 -0
  9. package/dist/cjs/{commands/changeDelay-4.lua → scripts/changeDelay-4.js} +11 -11
  10. package/dist/cjs/scripts/changeDelay-4.js.map +1 -0
  11. package/dist/cjs/scripts/cleanJobsInSet-2.d.ts +5 -0
  12. package/dist/cjs/scripts/cleanJobsInSet-2.js +264 -0
  13. package/dist/cjs/scripts/cleanJobsInSet-2.js.map +1 -0
  14. package/dist/cjs/scripts/drain-4.d.ts +5 -0
  15. package/dist/cjs/{commands/includes/removeParentDependencyKey.lua → scripts/drain-4.js} +110 -10
  16. package/dist/cjs/scripts/drain-4.js.map +1 -0
  17. package/dist/cjs/scripts/extendLock-2.d.ts +5 -0
  18. package/dist/{esm/commands/extendLock-2.lua → cjs/scripts/extendLock-2.js} +11 -4
  19. package/dist/cjs/scripts/extendLock-2.js.map +1 -0
  20. package/dist/cjs/scripts/getState-7.d.ts +5 -0
  21. package/dist/{esm/commands/getState-7.lua → cjs/scripts/getState-7.js} +22 -12
  22. package/dist/cjs/scripts/getState-7.js.map +1 -0
  23. package/dist/cjs/scripts/getStateV2-7.d.ts +5 -0
  24. package/dist/cjs/{commands/getStateV2-7.lua → scripts/getStateV2-7.js} +11 -10
  25. package/dist/cjs/scripts/getStateV2-7.js.map +1 -0
  26. package/dist/cjs/scripts/index.d.ts +26 -0
  27. package/dist/cjs/scripts/index.js +30 -0
  28. package/dist/cjs/scripts/index.js.map +1 -0
  29. package/dist/cjs/scripts/isFinished-3.d.ts +5 -0
  30. package/dist/cjs/{commands/isFinished-3.lua → scripts/isFinished-3.js} +11 -10
  31. package/dist/cjs/scripts/isFinished-3.js.map +1 -0
  32. package/dist/cjs/scripts/isJobInList-1.d.ts +5 -0
  33. package/dist/cjs/scripts/isJobInList-1.js +32 -0
  34. package/dist/cjs/scripts/isJobInList-1.js.map +1 -0
  35. package/dist/cjs/scripts/moveStalledJobsToWait-8.d.ts +5 -0
  36. package/dist/cjs/scripts/moveStalledJobsToWait-8.js +291 -0
  37. package/dist/cjs/scripts/moveStalledJobsToWait-8.js.map +1 -0
  38. package/dist/cjs/scripts/moveToActive-9.d.ts +5 -0
  39. package/dist/cjs/scripts/moveToActive-9.js +207 -0
  40. package/dist/cjs/scripts/moveToActive-9.js.map +1 -0
  41. package/dist/cjs/scripts/moveToDelayed-5.d.ts +5 -0
  42. package/dist/cjs/{commands/moveToDelayed-5.lua → scripts/moveToDelayed-5.js} +11 -13
  43. package/dist/cjs/scripts/moveToDelayed-5.js.map +1 -0
  44. package/dist/cjs/scripts/moveToFinished-12.d.ts +5 -0
  45. package/dist/cjs/scripts/moveToFinished-12.js +538 -0
  46. package/dist/cjs/scripts/moveToFinished-12.js.map +1 -0
  47. package/dist/cjs/scripts/moveToWaitingChildren-4.d.ts +5 -0
  48. package/dist/cjs/{commands/moveToWaitingChildren-4.lua → scripts/moveToWaitingChildren-4.js} +11 -14
  49. package/dist/cjs/scripts/moveToWaitingChildren-4.js.map +1 -0
  50. package/dist/cjs/scripts/obliterate-2.d.ts +5 -0
  51. package/dist/cjs/scripts/obliterate-2.js +241 -0
  52. package/dist/cjs/scripts/obliterate-2.js.map +1 -0
  53. package/dist/cjs/scripts/pause-4.d.ts +5 -0
  54. package/dist/{esm/commands/pause-4.lua → cjs/scripts/pause-4.js} +11 -7
  55. package/dist/cjs/scripts/pause-4.js.map +1 -0
  56. package/dist/cjs/scripts/promote-6.d.ts +5 -0
  57. package/dist/cjs/{commands/promote-6.lua → scripts/promote-6.js} +22 -14
  58. package/dist/cjs/scripts/promote-6.js.map +1 -0
  59. package/dist/cjs/scripts/releaseLock-1.d.ts +5 -0
  60. package/dist/{esm/commands/releaseLock-1.lua → cjs/scripts/releaseLock-1.js} +11 -5
  61. package/dist/cjs/scripts/releaseLock-1.js.map +1 -0
  62. package/dist/cjs/scripts/removeJob-1.d.ts +5 -0
  63. package/dist/cjs/scripts/removeJob-1.js +206 -0
  64. package/dist/cjs/scripts/removeJob-1.js.map +1 -0
  65. package/dist/cjs/scripts/removeRepeatable-2.d.ts +5 -0
  66. package/dist/cjs/{commands/removeRepeatable-2.lua → scripts/removeRepeatable-2.js} +11 -7
  67. package/dist/cjs/scripts/removeRepeatable-2.js.map +1 -0
  68. package/dist/cjs/scripts/reprocessJob-4.d.ts +5 -0
  69. package/dist/{esm/commands/reprocessJob-4.lua → cjs/scripts/reprocessJob-4.js} +11 -5
  70. package/dist/cjs/scripts/reprocessJob-4.js.map +1 -0
  71. package/dist/cjs/scripts/retryJob-6.d.ts +5 -0
  72. package/dist/{esm/commands/retryJob-6.lua → cjs/scripts/retryJob-6.js} +22 -13
  73. package/dist/cjs/scripts/retryJob-6.js.map +1 -0
  74. package/dist/cjs/scripts/retryJobs-6.d.ts +5 -0
  75. package/dist/cjs/{commands/retryJobs-6.lua → scripts/retryJobs-6.js} +38 -15
  76. package/dist/cjs/scripts/retryJobs-6.js.map +1 -0
  77. package/dist/cjs/scripts/takeLock-1.d.ts +5 -0
  78. package/dist/cjs/{commands/takeLock-1.lua → scripts/takeLock-1.js} +11 -4
  79. package/dist/cjs/scripts/takeLock-1.js.map +1 -0
  80. package/dist/cjs/scripts/updateData-1.d.ts +5 -0
  81. package/dist/cjs/scripts/updateData-1.js +23 -0
  82. package/dist/cjs/scripts/updateData-1.js.map +1 -0
  83. package/dist/cjs/scripts/updateProgress-2.d.ts +5 -0
  84. package/dist/{esm/commands/updateProgress-2.lua → cjs/scripts/updateProgress-2.js} +11 -5
  85. package/dist/cjs/scripts/updateProgress-2.js.map +1 -0
  86. package/dist/esm/classes/job.d.ts +1 -1
  87. package/dist/esm/classes/redis-connection.d.ts +6 -2
  88. package/dist/esm/classes/redis-connection.js +12 -5
  89. package/dist/esm/classes/redis-connection.js.map +1 -1
  90. package/dist/esm/scripts/addJob-8.d.ts +5 -0
  91. package/dist/{cjs/commands/addJob-8.lua → esm/scripts/addJob-8.js} +80 -31
  92. package/dist/esm/scripts/addJob-8.js.map +1 -0
  93. package/dist/esm/scripts/changeDelay-4.d.ts +5 -0
  94. package/dist/esm/{commands/changeDelay-4.lua → scripts/changeDelay-4.js} +8 -11
  95. package/dist/esm/scripts/changeDelay-4.js.map +1 -0
  96. package/dist/esm/scripts/cleanJobsInSet-2.d.ts +5 -0
  97. package/dist/esm/scripts/cleanJobsInSet-2.js +261 -0
  98. package/dist/esm/scripts/cleanJobsInSet-2.js.map +1 -0
  99. package/dist/esm/scripts/drain-4.d.ts +5 -0
  100. package/dist/esm/{commands/includes/removeParentDependencyKey.lua → scripts/drain-4.js} +107 -10
  101. package/dist/esm/scripts/drain-4.js.map +1 -0
  102. package/dist/esm/scripts/extendLock-2.d.ts +5 -0
  103. package/dist/{cjs/commands/extendLock-2.lua → esm/scripts/extendLock-2.js} +8 -4
  104. package/dist/esm/scripts/extendLock-2.js.map +1 -0
  105. package/dist/esm/scripts/getState-7.d.ts +5 -0
  106. package/dist/{cjs/commands/getState-7.lua → esm/scripts/getState-7.js} +19 -12
  107. package/dist/esm/scripts/getState-7.js.map +1 -0
  108. package/dist/esm/scripts/getStateV2-7.d.ts +5 -0
  109. package/dist/esm/{commands/getStateV2-7.lua → scripts/getStateV2-7.js} +8 -10
  110. package/dist/esm/scripts/getStateV2-7.js.map +1 -0
  111. package/dist/esm/scripts/index.d.ts +26 -0
  112. package/dist/esm/scripts/index.js +27 -0
  113. package/dist/esm/scripts/index.js.map +1 -0
  114. package/dist/esm/scripts/isFinished-3.d.ts +5 -0
  115. package/dist/esm/{commands/isFinished-3.lua → scripts/isFinished-3.js} +8 -10
  116. package/dist/esm/scripts/isFinished-3.js.map +1 -0
  117. package/dist/esm/scripts/isJobInList-1.d.ts +5 -0
  118. package/dist/esm/scripts/isJobInList-1.js +29 -0
  119. package/dist/esm/scripts/isJobInList-1.js.map +1 -0
  120. package/dist/esm/scripts/moveStalledJobsToWait-8.d.ts +5 -0
  121. package/dist/esm/scripts/moveStalledJobsToWait-8.js +288 -0
  122. package/dist/esm/scripts/moveStalledJobsToWait-8.js.map +1 -0
  123. package/dist/esm/scripts/moveToActive-9.d.ts +5 -0
  124. package/dist/esm/scripts/moveToActive-9.js +204 -0
  125. package/dist/esm/scripts/moveToActive-9.js.map +1 -0
  126. package/dist/esm/scripts/moveToDelayed-5.d.ts +5 -0
  127. package/dist/esm/{commands/moveToDelayed-5.lua → scripts/moveToDelayed-5.js} +8 -13
  128. package/dist/esm/scripts/moveToDelayed-5.js.map +1 -0
  129. package/dist/esm/scripts/moveToFinished-12.d.ts +5 -0
  130. package/dist/esm/scripts/moveToFinished-12.js +535 -0
  131. package/dist/esm/scripts/moveToFinished-12.js.map +1 -0
  132. package/dist/esm/scripts/moveToWaitingChildren-4.d.ts +5 -0
  133. package/dist/esm/{commands/moveToWaitingChildren-4.lua → scripts/moveToWaitingChildren-4.js} +8 -14
  134. package/dist/esm/scripts/moveToWaitingChildren-4.js.map +1 -0
  135. package/dist/esm/scripts/obliterate-2.d.ts +5 -0
  136. package/dist/esm/scripts/obliterate-2.js +238 -0
  137. package/dist/esm/scripts/obliterate-2.js.map +1 -0
  138. package/dist/esm/scripts/pause-4.d.ts +5 -0
  139. package/dist/{cjs/commands/pause-4.lua → esm/scripts/pause-4.js} +8 -7
  140. package/dist/esm/scripts/pause-4.js.map +1 -0
  141. package/dist/esm/scripts/promote-6.d.ts +5 -0
  142. package/dist/esm/{commands/promote-6.lua → scripts/promote-6.js} +19 -14
  143. package/dist/esm/scripts/promote-6.js.map +1 -0
  144. package/dist/esm/scripts/releaseLock-1.d.ts +5 -0
  145. package/dist/{cjs/commands/releaseLock-1.lua → esm/scripts/releaseLock-1.js} +8 -5
  146. package/dist/esm/scripts/releaseLock-1.js.map +1 -0
  147. package/dist/esm/scripts/removeJob-1.d.ts +5 -0
  148. package/dist/esm/scripts/removeJob-1.js +203 -0
  149. package/dist/esm/scripts/removeJob-1.js.map +1 -0
  150. package/dist/esm/scripts/removeRepeatable-2.d.ts +5 -0
  151. package/dist/esm/{commands/removeRepeatable-2.lua → scripts/removeRepeatable-2.js} +8 -7
  152. package/dist/esm/scripts/removeRepeatable-2.js.map +1 -0
  153. package/dist/esm/scripts/reprocessJob-4.d.ts +5 -0
  154. package/dist/{cjs/commands/reprocessJob-4.lua → esm/scripts/reprocessJob-4.js} +8 -5
  155. package/dist/esm/scripts/reprocessJob-4.js.map +1 -0
  156. package/dist/esm/scripts/retryJob-6.d.ts +5 -0
  157. package/dist/{cjs/commands/retryJob-6.lua → esm/scripts/retryJob-6.js} +19 -13
  158. package/dist/esm/scripts/retryJob-6.js.map +1 -0
  159. package/dist/esm/scripts/retryJobs-6.d.ts +5 -0
  160. package/dist/esm/{commands/retryJobs-6.lua → scripts/retryJobs-6.js} +35 -15
  161. package/dist/esm/scripts/retryJobs-6.js.map +1 -0
  162. package/dist/esm/scripts/takeLock-1.d.ts +5 -0
  163. package/dist/esm/{commands/takeLock-1.lua → scripts/takeLock-1.js} +8 -4
  164. package/dist/esm/scripts/takeLock-1.js.map +1 -0
  165. package/dist/esm/scripts/updateData-1.d.ts +5 -0
  166. package/dist/esm/{commands/updateData-1.lua → scripts/updateData-1.js} +8 -4
  167. package/dist/esm/scripts/updateData-1.js.map +1 -0
  168. package/dist/esm/scripts/updateProgress-2.d.ts +5 -0
  169. package/dist/{cjs/commands/updateProgress-2.lua → esm/scripts/updateProgress-2.js} +8 -5
  170. package/dist/esm/scripts/updateProgress-2.js.map +1 -0
  171. package/package.json +4 -2
  172. package/dist/cjs/commands/cleanJobsInSet-2.lua +0 -46
  173. package/dist/cjs/commands/drain-4.lua +0 -25
  174. package/dist/cjs/commands/includes/addJobWithPriority.lua +0 -16
  175. package/dist/cjs/commands/includes/batches.lua +0 -18
  176. package/dist/cjs/commands/includes/checkItemInList.lua +0 -12
  177. package/dist/cjs/commands/includes/checkStalledJobs.lua +0 -137
  178. package/dist/cjs/commands/includes/cleanList.lua +0 -50
  179. package/dist/cjs/commands/includes/cleanSet.lua +0 -50
  180. package/dist/cjs/commands/includes/collectMetrics.lua +0 -46
  181. package/dist/cjs/commands/includes/destructureJobKey.lua +0 -12
  182. package/dist/cjs/commands/includes/getNextDelayedTimestamp.lua +0 -13
  183. package/dist/cjs/commands/includes/getTargetQueueList.lua +0 -12
  184. package/dist/cjs/commands/includes/getTimestamp.lua +0 -19
  185. package/dist/cjs/commands/includes/getZSetItems.lua +0 -7
  186. package/dist/cjs/commands/includes/isLocked.lua +0 -31
  187. package/dist/cjs/commands/includes/moveJobFromWaitToActive.lua +0 -84
  188. package/dist/cjs/commands/includes/moveParentFromWaitingChildrenToFailed.lua +0 -25
  189. package/dist/cjs/commands/includes/promoteDelayedJobs.lua +0 -49
  190. package/dist/cjs/commands/includes/removeJob.lua +0 -13
  191. package/dist/cjs/commands/includes/removeJobFromAnyState.lua +0 -26
  192. package/dist/cjs/commands/includes/removeJobs.lua +0 -38
  193. package/dist/cjs/commands/includes/removeJobsByMaxAge.lua +0 -15
  194. package/dist/cjs/commands/includes/removeJobsByMaxCount.lua +0 -15
  195. package/dist/cjs/commands/includes/trimEvents.lua +0 -12
  196. package/dist/cjs/commands/includes/updateParentDepsIfNeeded.lua +0 -28
  197. package/dist/cjs/commands/isJobInList-1.lua +0 -16
  198. package/dist/cjs/commands/moveStalledJobsToWait-8.lua +0 -24
  199. package/dist/cjs/commands/moveToActive-9.lua +0 -67
  200. package/dist/cjs/commands/moveToFinished-12.lua +0 -201
  201. package/dist/cjs/commands/obliterate-2.lua +0 -94
  202. package/dist/cjs/commands/removeJob-1.lua +0 -72
  203. package/dist/cjs/commands/updateData-1.lua +0 -16
  204. package/dist/esm/commands/cleanJobsInSet-2.lua +0 -46
  205. package/dist/esm/commands/drain-4.lua +0 -25
  206. package/dist/esm/commands/includes/addJobWithPriority.lua +0 -16
  207. package/dist/esm/commands/includes/batches.lua +0 -18
  208. package/dist/esm/commands/includes/checkItemInList.lua +0 -12
  209. package/dist/esm/commands/includes/checkStalledJobs.lua +0 -137
  210. package/dist/esm/commands/includes/cleanList.lua +0 -50
  211. package/dist/esm/commands/includes/cleanSet.lua +0 -50
  212. package/dist/esm/commands/includes/collectMetrics.lua +0 -46
  213. package/dist/esm/commands/includes/destructureJobKey.lua +0 -12
  214. package/dist/esm/commands/includes/getNextDelayedTimestamp.lua +0 -13
  215. package/dist/esm/commands/includes/getTargetQueueList.lua +0 -12
  216. package/dist/esm/commands/includes/getTimestamp.lua +0 -19
  217. package/dist/esm/commands/includes/getZSetItems.lua +0 -7
  218. package/dist/esm/commands/includes/isLocked.lua +0 -31
  219. package/dist/esm/commands/includes/moveJobFromWaitToActive.lua +0 -84
  220. package/dist/esm/commands/includes/moveParentFromWaitingChildrenToFailed.lua +0 -25
  221. package/dist/esm/commands/includes/promoteDelayedJobs.lua +0 -49
  222. package/dist/esm/commands/includes/removeJob.lua +0 -13
  223. package/dist/esm/commands/includes/removeJobFromAnyState.lua +0 -26
  224. package/dist/esm/commands/includes/removeJobs.lua +0 -38
  225. package/dist/esm/commands/includes/removeJobsByMaxAge.lua +0 -15
  226. package/dist/esm/commands/includes/removeJobsByMaxCount.lua +0 -15
  227. package/dist/esm/commands/includes/trimEvents.lua +0 -12
  228. package/dist/esm/commands/includes/updateParentDepsIfNeeded.lua +0 -28
  229. package/dist/esm/commands/isJobInList-1.lua +0 -16
  230. package/dist/esm/commands/moveStalledJobsToWait-8.lua +0 -24
  231. package/dist/esm/commands/moveToActive-9.lua +0 -67
  232. package/dist/esm/commands/moveToFinished-12.lua +0 -201
  233. package/dist/esm/commands/obliterate-2.lua +0 -94
  234. package/dist/esm/commands/removeJob-1.lua +0 -72
@@ -1,22 +1,82 @@
1
+ const content = `--[[
2
+ Drains the queue, removes all jobs that are waiting
3
+ or delayed, but not active, completed or failed
4
+ Input:
5
+ KEYS[1] 'wait',
6
+ KEYS[2] 'paused'
7
+ KEYS[3] 'delayed'
8
+ KEYS[4] 'priority'
9
+ ARGV[1] queue key prefix
10
+ ]]
11
+ local rcall = redis.call
12
+ local queueBaseKey = ARGV[1]
13
+ --[[
14
+ Functions to remove jobs.
15
+ ]]
16
+ -- Includes
17
+ --[[
18
+ Function to loop in batches.
19
+ Just a bit of warning, some commands as ZREM
20
+ could receive a maximum of 7000 parameters per call.
21
+ ]]
22
+ local function batches(n, batchSize)
23
+ local i = 0
24
+ return function()
25
+ local from = i * batchSize + 1
26
+ i = i + 1
27
+ if (from <= n) then
28
+ local to = math.min(from + batchSize - 1, n)
29
+ return from, to
30
+ end
31
+ end
32
+ end
33
+ local function getListItems(keyName, max)
34
+ return rcall('LRANGE', keyName, 0, max - 1)
35
+ end
36
+ --[[
37
+ Function to get ZSet items.
38
+ ]]
39
+ local function getZSetItems(keyName, max)
40
+ return rcall('ZRANGE', keyName, 0, max - 1)
41
+ end
42
+ --[[
43
+ Function to remove job.
44
+ ]]
45
+ -- Includes
1
46
  --[[
2
47
  Check if this job has a parent. If so we will just remove it from
3
48
  the parent child list, but if it is the last child we should move the parent to "wait/paused"
4
49
  which requires code from "moveToFinished"
5
50
  ]]
6
-
7
- --- @include "destructureJobKey"
8
- --- @include "getTargetQueueList"
9
-
51
+ --[[
52
+ Functions to destructure job key.
53
+ Just a bit of warning, these functions may be a bit slow and affect performance significantly.
54
+ ]]
55
+ local getJobIdFromKey = function (jobKey)
56
+ return string.match(jobKey, ".*:(.*)")
57
+ end
58
+ local getJobKeyPrefix = function (jobKey, jobId)
59
+ return string.sub(jobKey, 0, #jobKey - #jobId)
60
+ end
61
+ --[[
62
+ Function to check for the meta.paused key to decide if we are paused or not
63
+ (since an empty list and !EXISTS are not really the same).
64
+ ]]
65
+ local function getTargetQueueList(queueMetaKey, waitKey, pausedKey)
66
+ if rcall("HEXISTS", queueMetaKey, "paused") ~= 1 then
67
+ return waitKey
68
+ else
69
+ return pausedKey
70
+ end
71
+ end
10
72
  local function moveParentToWait(parentPrefix, parentId, emitEvent)
11
73
  local parentTarget = getTargetQueueList(parentPrefix .. "meta", parentPrefix .. "wait", parentPrefix .. "paused")
12
74
  rcall("RPUSH", parentTarget, parentId)
13
-
14
75
  if emitEvent then
15
76
  local parentEventStream = parentPrefix .. "events"
16
77
  rcall("XADD", parentEventStream, "*", "event", "waiting", "jobId", parentId, "prev", "waiting-children")
17
78
  end
18
79
  end
19
-
20
80
  local function removeParentDependencyKey(jobKey, hard, parentKey, baseKey)
21
81
  if parentKey then
22
82
  local parentProcessedKey = parentKey .. ":processed"
@@ -28,9 +88,7 @@ local function removeParentDependencyKey(jobKey, hard, parentKey, baseKey)
28
88
  if pendingDependencies == 0 then
29
89
  local parentId = getJobIdFromKey(parentKey)
30
90
  local parentPrefix = getJobKeyPrefix(parentKey, parentId)
31
-
32
91
  local numRemovedElements = rcall("ZREM", parentPrefix .. "waiting-children", parentId)
33
-
34
92
  if numRemovedElements == 1 then
35
93
  if hard then
36
94
  if parentPrefix == baseKey then
@@ -58,9 +116,7 @@ local function removeParentDependencyKey(jobKey, hard, parentKey, baseKey)
58
116
  if pendingDependencies == 0 then
59
117
  local parentId = getJobIdFromKey(missedParentKey)
60
118
  local parentPrefix = getJobKeyPrefix(missedParentKey, parentId)
61
-
62
119
  local numRemovedElements = rcall("ZREM", parentPrefix .. "waiting-children", parentId)
63
-
64
120
  if numRemovedElements == 1 then
65
121
  if hard then
66
122
  if parentPrefix == baseKey then
@@ -79,3 +135,44 @@ local function removeParentDependencyKey(jobKey, hard, parentKey, baseKey)
79
135
  end
80
136
  end
81
137
  end
138
+ local function removeJob(jobId, hard, baseKey)
139
+ local jobKey = baseKey .. jobId
140
+ removeParentDependencyKey(jobKey, hard, nil, baseKey)
141
+ rcall("DEL", jobKey, jobKey .. ':logs',
142
+ jobKey .. ':dependencies', jobKey .. ':processed')
143
+ end
144
+ local function removeJobs(keys, hard, baseKey, max)
145
+ for i, key in ipairs(keys) do
146
+ removeJob(key, hard, baseKey)
147
+ end
148
+ return max - #keys
149
+ end
150
+ local function removeListJobs(keyName, hard, baseKey, max)
151
+ local jobs = getListItems(keyName, max)
152
+ local count = removeJobs(jobs, hard, baseKey, max)
153
+ rcall("LTRIM", keyName, #jobs, -1)
154
+ return count
155
+ end
156
+ local function removeZSetJobs(keyName, hard, baseKey, max)
157
+ local jobs = getZSetItems(keyName, max)
158
+ local count = removeJobs(jobs, hard, baseKey, max)
159
+ if(#jobs > 0) then
160
+ for from, to in batches(#jobs, 7000) do
161
+ rcall("ZREM", keyName, unpack(jobs))
162
+ end
163
+ end
164
+ return count
165
+ end
166
+ removeListJobs(KEYS[1], true, queueBaseKey, 0) --wait
167
+ removeListJobs(KEYS[2], true, queueBaseKey, 0) --paused
168
+ if KEYS[3] ~= "" then
169
+ removeZSetJobs(KEYS[3], true, queueBaseKey, 0) --delayed
170
+ end
171
+ rcall("DEL", KEYS[4])
172
+ `;
173
+ export const drain = {
174
+ name: 'drain',
175
+ content,
176
+ keys: 4,
177
+ };
178
+ //# sourceMappingURL=drain-4.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"drain-4.js","sourceRoot":"","sources":["../../../src/scripts/drain-4.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2Kf,CAAC;AACF,MAAM,CAAC,MAAM,KAAK,GAAG;IACnB,IAAI,EAAE,OAAO;IACb,OAAO;IACP,IAAI,EAAE,CAAC;CACR,CAAC"}
@@ -0,0 +1,5 @@
1
+ export declare const extendLock: {
2
+ name: string;
3
+ content: string;
4
+ keys: number;
5
+ };
@@ -1,14 +1,11 @@
1
- --[[
1
+ const content = `--[[
2
2
  Extend lock and removes the job from the stalled set.
3
-
4
3
  Input:
5
4
  KEYS[1] 'lock',
6
5
  KEYS[2] 'stalled'
7
-
8
6
  ARGV[1] token
9
7
  ARGV[2] lock duration in milliseconds
10
8
  ARGV[3] jobid
11
-
12
9
  Output:
13
10
  "1" if lock extented succesfully.
14
11
  ]]
@@ -21,3 +18,10 @@ if rcall("GET", KEYS[1]) == ARGV[1] then
21
18
  end
22
19
  end
23
20
  return 0
21
+ `;
22
+ export const extendLock = {
23
+ name: 'extendLock',
24
+ content,
25
+ keys: 2,
26
+ };
27
+ //# sourceMappingURL=extendLock-2.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extendLock-2.js","sourceRoot":"","sources":["../../../src/scripts/extendLock-2.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,GAAG;;;;;;;;;;;;;;;;;;;;CAoBf,CAAC;AACF,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,IAAI,EAAE,YAAY;IAClB,OAAO;IACP,IAAI,EAAE,CAAC;CACR,CAAC"}
@@ -0,0 +1,5 @@
1
+ export declare const getState: {
2
+ name: string;
3
+ content: string;
4
+ keys: number;
5
+ };
@@ -1,6 +1,5 @@
1
- --[[
1
+ const content = `--[[
2
2
  Get a job state
3
-
4
3
  Input:
5
4
  KEYS[1] 'completed' key,
6
5
  KEYS[2] 'failed' key
@@ -9,7 +8,6 @@
9
8
  KEYS[5] 'wait' key
10
9
  KEYS[6] 'paused' key
11
10
  KEYS[7] waitChildrenKey key
12
-
13
11
  ARGV[1] job id
14
12
  Output:
15
13
  'completed'
@@ -23,35 +21,44 @@
23
21
  if redis.call("ZSCORE", KEYS[1], ARGV[1]) ~= false then
24
22
  return "completed"
25
23
  end
26
-
27
24
  if redis.call("ZSCORE", KEYS[2], ARGV[1]) ~= false then
28
25
  return "failed"
29
26
  end
30
-
31
27
  if redis.call("ZSCORE", KEYS[3], ARGV[1]) ~= false then
32
28
  return "delayed"
33
29
  end
34
-
35
30
  -- Includes
36
- --- @include "includes/checkItemInList"
37
-
31
+ --[[
32
+ Functions to check if a item belongs to a list.
33
+ ]]
34
+ local function checkItemInList(list, item)
35
+ for _, v in pairs(list) do
36
+ if v == item then
37
+ return 1
38
+ end
39
+ end
40
+ return nil
41
+ end
38
42
  local active_items = redis.call("LRANGE", KEYS[4] , 0, -1)
39
43
  if checkItemInList(active_items, ARGV[1]) ~= nil then
40
44
  return "active"
41
45
  end
42
-
43
46
  local wait_items = redis.call("LRANGE", KEYS[5] , 0, -1)
44
47
  if checkItemInList(wait_items, ARGV[1]) ~= nil then
45
48
  return "waiting"
46
49
  end
47
-
48
50
  local paused_items = redis.call("LRANGE", KEYS[6] , 0, -1)
49
51
  if checkItemInList(paused_items, ARGV[1]) ~= nil then
50
52
  return "waiting"
51
53
  end
52
-
53
54
  if redis.call("ZSCORE", KEYS[7], ARGV[1]) ~= false then
54
55
  return "waiting-children"
55
56
  end
56
-
57
57
  return "unknown"
58
+ `;
59
+ export const getState = {
60
+ name: 'getState',
61
+ content,
62
+ keys: 7,
63
+ };
64
+ //# sourceMappingURL=getState-7.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getState-7.js","sourceRoot":"","sources":["../../../src/scripts/getState-7.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyDf,CAAC;AACF,MAAM,CAAC,MAAM,QAAQ,GAAG;IACtB,IAAI,EAAE,UAAU;IAChB,OAAO;IACP,IAAI,EAAE,CAAC;CACR,CAAC"}
@@ -0,0 +1,5 @@
1
+ export declare const getStateV2: {
2
+ name: string;
3
+ content: string;
4
+ keys: number;
5
+ };
@@ -1,6 +1,5 @@
1
- --[[
1
+ const content = `--[[
2
2
  Get a job state
3
-
4
3
  Input:
5
4
  KEYS[1] 'completed' key,
6
5
  KEYS[2] 'failed' key
@@ -9,7 +8,6 @@
9
8
  KEYS[5] 'wait' key
10
9
  KEYS[6] 'paused' key
11
10
  KEYS[7] waitChildrenKey key
12
-
13
11
  ARGV[1] job id
14
12
  Output:
15
13
  'completed'
@@ -23,29 +21,29 @@
23
21
  if redis.call("ZSCORE", KEYS[1], ARGV[1]) ~= false then
24
22
  return "completed"
25
23
  end
26
-
27
24
  if redis.call("ZSCORE", KEYS[2], ARGV[1]) ~= false then
28
25
  return "failed"
29
26
  end
30
-
31
27
  if redis.call("ZSCORE", KEYS[3], ARGV[1]) ~= false then
32
28
  return "delayed"
33
29
  end
34
-
35
30
  if redis.call("LPOS", KEYS[4] , ARGV[1]) ~= false then
36
31
  return "active"
37
32
  end
38
-
39
33
  if redis.call("LPOS", KEYS[5] , ARGV[1]) ~= false then
40
34
  return "waiting"
41
35
  end
42
-
43
36
  if redis.call("LPOS", KEYS[6] , ARGV[1]) ~= false then
44
37
  return "waiting"
45
38
  end
46
-
47
39
  if redis.call("ZSCORE", KEYS[7] , ARGV[1]) ~= false then
48
40
  return "waiting-children"
49
41
  end
50
-
51
42
  return "unknown"
43
+ `;
44
+ export const getStateV2 = {
45
+ name: 'getStateV2',
46
+ content,
47
+ keys: 7,
48
+ };
49
+ //# sourceMappingURL=getStateV2-7.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getStateV2-7.js","sourceRoot":"","sources":["../../../src/scripts/getStateV2-7.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA0Cf,CAAC;AACF,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,IAAI,EAAE,YAAY;IAClB,OAAO;IACP,IAAI,EAAE,CAAC;CACR,CAAC"}
@@ -0,0 +1,26 @@
1
+ export * from './addJob-8';
2
+ export * from './changeDelay-4';
3
+ export * from './cleanJobsInSet-2';
4
+ export * from './drain-4';
5
+ export * from './extendLock-2';
6
+ export * from './getState-7';
7
+ export * from './getStateV2-7';
8
+ export * from './isFinished-3';
9
+ export * from './isJobInList-1';
10
+ export * from './moveStalledJobsToWait-8';
11
+ export * from './moveToActive-9';
12
+ export * from './moveToDelayed-5';
13
+ export * from './moveToFinished-12';
14
+ export * from './moveToWaitingChildren-4';
15
+ export * from './obliterate-2';
16
+ export * from './pause-4';
17
+ export * from './promote-6';
18
+ export * from './releaseLock-1';
19
+ export * from './removeJob-1';
20
+ export * from './removeRepeatable-2';
21
+ export * from './reprocessJob-4';
22
+ export * from './retryJob-6';
23
+ export * from './retryJobs-6';
24
+ export * from './takeLock-1';
25
+ export * from './updateData-1';
26
+ export * from './updateProgress-2';
@@ -0,0 +1,27 @@
1
+ export * from './addJob-8';
2
+ export * from './changeDelay-4';
3
+ export * from './cleanJobsInSet-2';
4
+ export * from './drain-4';
5
+ export * from './extendLock-2';
6
+ export * from './getState-7';
7
+ export * from './getStateV2-7';
8
+ export * from './isFinished-3';
9
+ export * from './isJobInList-1';
10
+ export * from './moveStalledJobsToWait-8';
11
+ export * from './moveToActive-9';
12
+ export * from './moveToDelayed-5';
13
+ export * from './moveToFinished-12';
14
+ export * from './moveToWaitingChildren-4';
15
+ export * from './obliterate-2';
16
+ export * from './pause-4';
17
+ export * from './promote-6';
18
+ export * from './releaseLock-1';
19
+ export * from './removeJob-1';
20
+ export * from './removeRepeatable-2';
21
+ export * from './reprocessJob-4';
22
+ export * from './retryJob-6';
23
+ export * from './retryJobs-6';
24
+ export * from './takeLock-1';
25
+ export * from './updateData-1';
26
+ export * from './updateProgress-2';
27
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/scripts/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,cAAc,WAAW,CAAC;AAC1B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,gBAAgB,CAAC;AAC/B,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC;AACjC,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC"}
@@ -0,0 +1,5 @@
1
+ export declare const isFinished: {
2
+ name: string;
3
+ content: string;
4
+ keys: number;
5
+ };
@@ -1,11 +1,9 @@
1
- --[[
1
+ const content = `--[[
2
2
  Checks if a job is finished (.i.e. is in the completed or failed set)
3
-
4
3
  Input:
5
4
  KEYS[1] completed key
6
5
  KEYS[2] failed key
7
6
  KEYS[3] job key
8
-
9
7
  ARGV[1] job id
10
8
  ARGV[2] return value?
11
9
  Output:
@@ -17,32 +15,32 @@
17
15
  local rcall = redis.call
18
16
  if rcall("EXISTS", KEYS[3]) ~= 1 then
19
17
  if ARGV[2] == "1" then
20
-
21
18
  return {-5,"Missing key for job " .. KEYS[3] .. ". isFinished"}
22
19
  end
23
20
  return -5
24
21
  end
25
-
26
22
  if rcall("ZSCORE", KEYS[1], ARGV[1]) ~= false then
27
23
  if ARGV[2] == "1" then
28
24
  local returnValue = rcall("HGET", KEYS[3], "returnvalue")
29
-
30
25
  return {1,returnValue}
31
26
  end
32
27
  return 1
33
28
  end
34
-
35
29
  if rcall("ZSCORE", KEYS[2], ARGV[1]) ~= false then
36
30
  if ARGV[2] == "1" then
37
31
  local failedReason = rcall("HGET", KEYS[3], "failedReason")
38
-
39
32
  return {2,failedReason}
40
33
  end
41
34
  return 2
42
35
  end
43
-
44
36
  if ARGV[2] == "1" then
45
37
  return {0}
46
38
  end
47
-
48
39
  return 0
40
+ `;
41
+ export const isFinished = {
42
+ name: 'isFinished',
43
+ content,
44
+ keys: 3,
45
+ };
46
+ //# sourceMappingURL=isFinished-3.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"isFinished-3.js","sourceRoot":"","sources":["../../../src/scripts/isFinished-3.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAuCf,CAAC;AACF,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,IAAI,EAAE,YAAY;IAClB,OAAO;IACP,IAAI,EAAE,CAAC;CACR,CAAC"}
@@ -0,0 +1,5 @@
1
+ export declare const isJobInList: {
2
+ name: string;
3
+ content: string;
4
+ keys: number;
5
+ };
@@ -0,0 +1,29 @@
1
+ const content = `--[[
2
+ Checks if job is in a given list.
3
+ Input:
4
+ KEYS[1]
5
+ ARGV[1]
6
+ Output:
7
+ 1 if element found in the list.
8
+ ]]
9
+ -- Includes
10
+ --[[
11
+ Functions to check if a item belongs to a list.
12
+ ]]
13
+ local function checkItemInList(list, item)
14
+ for _, v in pairs(list) do
15
+ if v == item then
16
+ return 1
17
+ end
18
+ end
19
+ return nil
20
+ end
21
+ local items = redis.call("LRANGE", KEYS[1] , 0, -1)
22
+ return checkItemInList(items, ARGV[1])
23
+ `;
24
+ export const isJobInList = {
25
+ name: 'isJobInList',
26
+ content,
27
+ keys: 1,
28
+ };
29
+ //# sourceMappingURL=isJobInList-1.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"isJobInList-1.js","sourceRoot":"","sources":["../../../src/scripts/isJobInList-1.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,GAAG;;;;;;;;;;;;;;;;;;;;;;CAsBf,CAAC;AACF,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,IAAI,EAAE,aAAa;IACnB,OAAO;IACP,IAAI,EAAE,CAAC;CACR,CAAC"}
@@ -0,0 +1,5 @@
1
+ export declare const moveStalledJobsToWait: {
2
+ name: string;
3
+ content: string;
4
+ keys: number;
5
+ };