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,85 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.drain = void 0;
4
+ const content = `--[[
5
+ Drains the queue, removes all jobs that are waiting
6
+ or delayed, but not active, completed or failed
7
+ Input:
8
+ KEYS[1] 'wait',
9
+ KEYS[2] 'paused'
10
+ KEYS[3] 'delayed'
11
+ KEYS[4] 'priority'
12
+ ARGV[1] queue key prefix
13
+ ]]
14
+ local rcall = redis.call
15
+ local queueBaseKey = ARGV[1]
16
+ --[[
17
+ Functions to remove jobs.
18
+ ]]
19
+ -- Includes
20
+ --[[
21
+ Function to loop in batches.
22
+ Just a bit of warning, some commands as ZREM
23
+ could receive a maximum of 7000 parameters per call.
24
+ ]]
25
+ local function batches(n, batchSize)
26
+ local i = 0
27
+ return function()
28
+ local from = i * batchSize + 1
29
+ i = i + 1
30
+ if (from <= n) then
31
+ local to = math.min(from + batchSize - 1, n)
32
+ return from, to
33
+ end
34
+ end
35
+ end
36
+ local function getListItems(keyName, max)
37
+ return rcall('LRANGE', keyName, 0, max - 1)
38
+ end
39
+ --[[
40
+ Function to get ZSet items.
41
+ ]]
42
+ local function getZSetItems(keyName, max)
43
+ return rcall('ZRANGE', keyName, 0, max - 1)
44
+ end
45
+ --[[
46
+ Function to remove job.
47
+ ]]
48
+ -- Includes
1
49
  --[[
2
50
  Check if this job has a parent. If so we will just remove it from
3
51
  the parent child list, but if it is the last child we should move the parent to "wait/paused"
4
52
  which requires code from "moveToFinished"
5
53
  ]]
6
-
7
- --- @include "destructureJobKey"
8
- --- @include "getTargetQueueList"
9
-
54
+ --[[
55
+ Functions to destructure job key.
56
+ Just a bit of warning, these functions may be a bit slow and affect performance significantly.
57
+ ]]
58
+ local getJobIdFromKey = function (jobKey)
59
+ return string.match(jobKey, ".*:(.*)")
60
+ end
61
+ local getJobKeyPrefix = function (jobKey, jobId)
62
+ return string.sub(jobKey, 0, #jobKey - #jobId)
63
+ end
64
+ --[[
65
+ Function to check for the meta.paused key to decide if we are paused or not
66
+ (since an empty list and !EXISTS are not really the same).
67
+ ]]
68
+ local function getTargetQueueList(queueMetaKey, waitKey, pausedKey)
69
+ if rcall("HEXISTS", queueMetaKey, "paused") ~= 1 then
70
+ return waitKey
71
+ else
72
+ return pausedKey
73
+ end
74
+ end
10
75
  local function moveParentToWait(parentPrefix, parentId, emitEvent)
11
76
  local parentTarget = getTargetQueueList(parentPrefix .. "meta", parentPrefix .. "wait", parentPrefix .. "paused")
12
77
  rcall("RPUSH", parentTarget, parentId)
13
-
14
78
  if emitEvent then
15
79
  local parentEventStream = parentPrefix .. "events"
16
80
  rcall("XADD", parentEventStream, "*", "event", "waiting", "jobId", parentId, "prev", "waiting-children")
17
81
  end
18
82
  end
19
-
20
83
  local function removeParentDependencyKey(jobKey, hard, parentKey, baseKey)
21
84
  if parentKey then
22
85
  local parentProcessedKey = parentKey .. ":processed"
@@ -28,9 +91,7 @@ local function removeParentDependencyKey(jobKey, hard, parentKey, baseKey)
28
91
  if pendingDependencies == 0 then
29
92
  local parentId = getJobIdFromKey(parentKey)
30
93
  local parentPrefix = getJobKeyPrefix(parentKey, parentId)
31
-
32
94
  local numRemovedElements = rcall("ZREM", parentPrefix .. "waiting-children", parentId)
33
-
34
95
  if numRemovedElements == 1 then
35
96
  if hard then
36
97
  if parentPrefix == baseKey then
@@ -58,9 +119,7 @@ local function removeParentDependencyKey(jobKey, hard, parentKey, baseKey)
58
119
  if pendingDependencies == 0 then
59
120
  local parentId = getJobIdFromKey(missedParentKey)
60
121
  local parentPrefix = getJobKeyPrefix(missedParentKey, parentId)
61
-
62
122
  local numRemovedElements = rcall("ZREM", parentPrefix .. "waiting-children", parentId)
63
-
64
123
  if numRemovedElements == 1 then
65
124
  if hard then
66
125
  if parentPrefix == baseKey then
@@ -79,3 +138,44 @@ local function removeParentDependencyKey(jobKey, hard, parentKey, baseKey)
79
138
  end
80
139
  end
81
140
  end
141
+ local function removeJob(jobId, hard, baseKey)
142
+ local jobKey = baseKey .. jobId
143
+ removeParentDependencyKey(jobKey, hard, nil, baseKey)
144
+ rcall("DEL", jobKey, jobKey .. ':logs',
145
+ jobKey .. ':dependencies', jobKey .. ':processed')
146
+ end
147
+ local function removeJobs(keys, hard, baseKey, max)
148
+ for i, key in ipairs(keys) do
149
+ removeJob(key, hard, baseKey)
150
+ end
151
+ return max - #keys
152
+ end
153
+ local function removeListJobs(keyName, hard, baseKey, max)
154
+ local jobs = getListItems(keyName, max)
155
+ local count = removeJobs(jobs, hard, baseKey, max)
156
+ rcall("LTRIM", keyName, #jobs, -1)
157
+ return count
158
+ end
159
+ local function removeZSetJobs(keyName, hard, baseKey, max)
160
+ local jobs = getZSetItems(keyName, max)
161
+ local count = removeJobs(jobs, hard, baseKey, max)
162
+ if(#jobs > 0) then
163
+ for from, to in batches(#jobs, 7000) do
164
+ rcall("ZREM", keyName, unpack(jobs))
165
+ end
166
+ end
167
+ return count
168
+ end
169
+ removeListJobs(KEYS[1], true, queueBaseKey, 0) --wait
170
+ removeListJobs(KEYS[2], true, queueBaseKey, 0) --paused
171
+ if KEYS[3] ~= "" then
172
+ removeZSetJobs(KEYS[3], true, queueBaseKey, 0) --delayed
173
+ end
174
+ rcall("DEL", KEYS[4])
175
+ `;
176
+ exports.drain = {
177
+ name: 'drain',
178
+ content,
179
+ keys: 4,
180
+ };
181
+ //# 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;AACW,QAAA,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,14 @@
1
- --[[
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.extendLock = void 0;
4
+ const content = `--[[
2
5
  Extend lock and removes the job from the stalled set.
3
-
4
6
  Input:
5
7
  KEYS[1] 'lock',
6
8
  KEYS[2] 'stalled'
7
-
8
9
  ARGV[1] token
9
10
  ARGV[2] lock duration in milliseconds
10
11
  ARGV[3] jobid
11
-
12
12
  Output:
13
13
  "1" if lock extented succesfully.
14
14
  ]]
@@ -21,3 +21,10 @@ if rcall("GET", KEYS[1]) == ARGV[1] then
21
21
  end
22
22
  end
23
23
  return 0
24
+ `;
25
+ exports.extendLock = {
26
+ name: 'extendLock',
27
+ content,
28
+ keys: 2,
29
+ };
30
+ //# 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;AACW,QAAA,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,8 @@
1
- --[[
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getState = void 0;
4
+ const content = `--[[
2
5
  Get a job state
3
-
4
6
  Input:
5
7
  KEYS[1] 'completed' key,
6
8
  KEYS[2] 'failed' key
@@ -9,7 +11,6 @@
9
11
  KEYS[5] 'wait' key
10
12
  KEYS[6] 'paused' key
11
13
  KEYS[7] waitChildrenKey key
12
-
13
14
  ARGV[1] job id
14
15
  Output:
15
16
  'completed'
@@ -23,35 +24,44 @@
23
24
  if redis.call("ZSCORE", KEYS[1], ARGV[1]) ~= false then
24
25
  return "completed"
25
26
  end
26
-
27
27
  if redis.call("ZSCORE", KEYS[2], ARGV[1]) ~= false then
28
28
  return "failed"
29
29
  end
30
-
31
30
  if redis.call("ZSCORE", KEYS[3], ARGV[1]) ~= false then
32
31
  return "delayed"
33
32
  end
34
-
35
33
  -- Includes
36
- --- @include "includes/checkItemInList"
37
-
34
+ --[[
35
+ Functions to check if a item belongs to a list.
36
+ ]]
37
+ local function checkItemInList(list, item)
38
+ for _, v in pairs(list) do
39
+ if v == item then
40
+ return 1
41
+ end
42
+ end
43
+ return nil
44
+ end
38
45
  local active_items = redis.call("LRANGE", KEYS[4] , 0, -1)
39
46
  if checkItemInList(active_items, ARGV[1]) ~= nil then
40
47
  return "active"
41
48
  end
42
-
43
49
  local wait_items = redis.call("LRANGE", KEYS[5] , 0, -1)
44
50
  if checkItemInList(wait_items, ARGV[1]) ~= nil then
45
51
  return "waiting"
46
52
  end
47
-
48
53
  local paused_items = redis.call("LRANGE", KEYS[6] , 0, -1)
49
54
  if checkItemInList(paused_items, ARGV[1]) ~= nil then
50
55
  return "waiting"
51
56
  end
52
-
53
57
  if redis.call("ZSCORE", KEYS[7], ARGV[1]) ~= false then
54
58
  return "waiting-children"
55
59
  end
56
-
57
60
  return "unknown"
61
+ `;
62
+ exports.getState = {
63
+ name: 'getState',
64
+ content,
65
+ keys: 7,
66
+ };
67
+ //# 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;AACW,QAAA,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,8 @@
1
- --[[
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getStateV2 = void 0;
4
+ const content = `--[[
2
5
  Get a job state
3
-
4
6
  Input:
5
7
  KEYS[1] 'completed' key,
6
8
  KEYS[2] 'failed' key
@@ -9,7 +11,6 @@
9
11
  KEYS[5] 'wait' key
10
12
  KEYS[6] 'paused' key
11
13
  KEYS[7] waitChildrenKey key
12
-
13
14
  ARGV[1] job id
14
15
  Output:
15
16
  'completed'
@@ -23,29 +24,29 @@
23
24
  if redis.call("ZSCORE", KEYS[1], ARGV[1]) ~= false then
24
25
  return "completed"
25
26
  end
26
-
27
27
  if redis.call("ZSCORE", KEYS[2], ARGV[1]) ~= false then
28
28
  return "failed"
29
29
  end
30
-
31
30
  if redis.call("ZSCORE", KEYS[3], ARGV[1]) ~= false then
32
31
  return "delayed"
33
32
  end
34
-
35
33
  if redis.call("LPOS", KEYS[4] , ARGV[1]) ~= false then
36
34
  return "active"
37
35
  end
38
-
39
36
  if redis.call("LPOS", KEYS[5] , ARGV[1]) ~= false then
40
37
  return "waiting"
41
38
  end
42
-
43
39
  if redis.call("LPOS", KEYS[6] , ARGV[1]) ~= false then
44
40
  return "waiting"
45
41
  end
46
-
47
42
  if redis.call("ZSCORE", KEYS[7] , ARGV[1]) ~= false then
48
43
  return "waiting-children"
49
44
  end
50
-
51
45
  return "unknown"
46
+ `;
47
+ exports.getStateV2 = {
48
+ name: 'getStateV2',
49
+ content,
50
+ keys: 7,
51
+ };
52
+ //# 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;AACW,QAAA,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,30 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ tslib_1.__exportStar(require("./addJob-8"), exports);
5
+ tslib_1.__exportStar(require("./changeDelay-4"), exports);
6
+ tslib_1.__exportStar(require("./cleanJobsInSet-2"), exports);
7
+ tslib_1.__exportStar(require("./drain-4"), exports);
8
+ tslib_1.__exportStar(require("./extendLock-2"), exports);
9
+ tslib_1.__exportStar(require("./getState-7"), exports);
10
+ tslib_1.__exportStar(require("./getStateV2-7"), exports);
11
+ tslib_1.__exportStar(require("./isFinished-3"), exports);
12
+ tslib_1.__exportStar(require("./isJobInList-1"), exports);
13
+ tslib_1.__exportStar(require("./moveStalledJobsToWait-8"), exports);
14
+ tslib_1.__exportStar(require("./moveToActive-9"), exports);
15
+ tslib_1.__exportStar(require("./moveToDelayed-5"), exports);
16
+ tslib_1.__exportStar(require("./moveToFinished-12"), exports);
17
+ tslib_1.__exportStar(require("./moveToWaitingChildren-4"), exports);
18
+ tslib_1.__exportStar(require("./obliterate-2"), exports);
19
+ tslib_1.__exportStar(require("./pause-4"), exports);
20
+ tslib_1.__exportStar(require("./promote-6"), exports);
21
+ tslib_1.__exportStar(require("./releaseLock-1"), exports);
22
+ tslib_1.__exportStar(require("./removeJob-1"), exports);
23
+ tslib_1.__exportStar(require("./removeRepeatable-2"), exports);
24
+ tslib_1.__exportStar(require("./reprocessJob-4"), exports);
25
+ tslib_1.__exportStar(require("./retryJob-6"), exports);
26
+ tslib_1.__exportStar(require("./retryJobs-6"), exports);
27
+ tslib_1.__exportStar(require("./takeLock-1"), exports);
28
+ tslib_1.__exportStar(require("./updateData-1"), exports);
29
+ tslib_1.__exportStar(require("./updateProgress-2"), exports);
30
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/scripts/index.ts"],"names":[],"mappings":";;;AAAA,qDAA2B;AAC3B,0DAAgC;AAChC,6DAAmC;AACnC,oDAA0B;AAC1B,yDAA+B;AAC/B,uDAA6B;AAC7B,yDAA+B;AAC/B,yDAA+B;AAC/B,0DAAgC;AAChC,oEAA0C;AAC1C,2DAAiC;AACjC,4DAAkC;AAClC,8DAAoC;AACpC,oEAA0C;AAC1C,yDAA+B;AAC/B,oDAA0B;AAC1B,sDAA4B;AAC5B,0DAAgC;AAChC,wDAA8B;AAC9B,+DAAqC;AACrC,2DAAiC;AACjC,uDAA6B;AAC7B,wDAA8B;AAC9B,uDAA6B;AAC7B,yDAA+B;AAC/B,6DAAmC"}
@@ -0,0 +1,5 @@
1
+ export declare const isFinished: {
2
+ name: string;
3
+ content: string;
4
+ keys: number;
5
+ };
@@ -1,11 +1,12 @@
1
- --[[
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isFinished = void 0;
4
+ const content = `--[[
2
5
  Checks if a job is finished (.i.e. is in the completed or failed set)
3
-
4
6
  Input:
5
7
  KEYS[1] completed key
6
8
  KEYS[2] failed key
7
9
  KEYS[3] job key
8
-
9
10
  ARGV[1] job id
10
11
  ARGV[2] return value?
11
12
  Output:
@@ -17,32 +18,32 @@
17
18
  local rcall = redis.call
18
19
  if rcall("EXISTS", KEYS[3]) ~= 1 then
19
20
  if ARGV[2] == "1" then
20
-
21
21
  return {-5,"Missing key for job " .. KEYS[3] .. ". isFinished"}
22
22
  end
23
23
  return -5
24
24
  end
25
-
26
25
  if rcall("ZSCORE", KEYS[1], ARGV[1]) ~= false then
27
26
  if ARGV[2] == "1" then
28
27
  local returnValue = rcall("HGET", KEYS[3], "returnvalue")
29
-
30
28
  return {1,returnValue}
31
29
  end
32
30
  return 1
33
31
  end
34
-
35
32
  if rcall("ZSCORE", KEYS[2], ARGV[1]) ~= false then
36
33
  if ARGV[2] == "1" then
37
34
  local failedReason = rcall("HGET", KEYS[3], "failedReason")
38
-
39
35
  return {2,failedReason}
40
36
  end
41
37
  return 2
42
38
  end
43
-
44
39
  if ARGV[2] == "1" then
45
40
  return {0}
46
41
  end
47
-
48
42
  return 0
43
+ `;
44
+ exports.isFinished = {
45
+ name: 'isFinished',
46
+ content,
47
+ keys: 3,
48
+ };
49
+ //# 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;AACW,QAAA,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,32 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isJobInList = void 0;
4
+ const content = `--[[
5
+ Checks if job is in a given list.
6
+ Input:
7
+ KEYS[1]
8
+ ARGV[1]
9
+ Output:
10
+ 1 if element found in the list.
11
+ ]]
12
+ -- Includes
13
+ --[[
14
+ Functions to check if a item belongs to a list.
15
+ ]]
16
+ local function checkItemInList(list, item)
17
+ for _, v in pairs(list) do
18
+ if v == item then
19
+ return 1
20
+ end
21
+ end
22
+ return nil
23
+ end
24
+ local items = redis.call("LRANGE", KEYS[1] , 0, -1)
25
+ return checkItemInList(items, ARGV[1])
26
+ `;
27
+ exports.isJobInList = {
28
+ name: 'isJobInList',
29
+ content,
30
+ keys: 1,
31
+ };
32
+ //# 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;AACW,QAAA,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
+ };