bullmq 2.2.0 → 2.2.1
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.
- package/dist/cjs/classes/job.d.ts +1 -1
- package/dist/cjs/classes/redis-connection.d.ts +6 -2
- package/dist/cjs/classes/redis-connection.js +11 -5
- package/dist/cjs/classes/redis-connection.js.map +1 -1
- package/dist/cjs/scripts/addJob-8.d.ts +5 -0
- package/dist/{esm/commands/addJob-8.lua → cjs/scripts/addJob-8.js} +83 -31
- package/dist/cjs/scripts/addJob-8.js.map +1 -0
- package/dist/cjs/scripts/changeDelay-4.d.ts +5 -0
- package/dist/cjs/{commands/changeDelay-4.lua → scripts/changeDelay-4.js} +11 -11
- package/dist/cjs/scripts/changeDelay-4.js.map +1 -0
- package/dist/cjs/scripts/cleanJobsInSet-2.d.ts +5 -0
- package/dist/cjs/scripts/cleanJobsInSet-2.js +264 -0
- package/dist/cjs/scripts/cleanJobsInSet-2.js.map +1 -0
- package/dist/cjs/scripts/drain-4.d.ts +5 -0
- package/dist/cjs/{commands/includes/removeParentDependencyKey.lua → scripts/drain-4.js} +110 -10
- package/dist/cjs/scripts/drain-4.js.map +1 -0
- package/dist/cjs/scripts/extendLock-2.d.ts +5 -0
- package/dist/{esm/commands/extendLock-2.lua → cjs/scripts/extendLock-2.js} +11 -4
- package/dist/cjs/scripts/extendLock-2.js.map +1 -0
- package/dist/cjs/scripts/getState-7.d.ts +5 -0
- package/dist/{esm/commands/getState-7.lua → cjs/scripts/getState-7.js} +22 -12
- package/dist/cjs/scripts/getState-7.js.map +1 -0
- package/dist/cjs/scripts/getStateV2-7.d.ts +5 -0
- package/dist/cjs/{commands/getStateV2-7.lua → scripts/getStateV2-7.js} +11 -10
- package/dist/cjs/scripts/getStateV2-7.js.map +1 -0
- package/dist/cjs/scripts/index.d.ts +26 -0
- package/dist/cjs/scripts/index.js +30 -0
- package/dist/cjs/scripts/index.js.map +1 -0
- package/dist/cjs/scripts/isFinished-3.d.ts +5 -0
- package/dist/cjs/{commands/isFinished-3.lua → scripts/isFinished-3.js} +11 -10
- package/dist/cjs/scripts/isFinished-3.js.map +1 -0
- package/dist/cjs/scripts/isJobInList-1.d.ts +5 -0
- package/dist/cjs/scripts/isJobInList-1.js +32 -0
- package/dist/cjs/scripts/isJobInList-1.js.map +1 -0
- package/dist/cjs/scripts/moveStalledJobsToWait-8.d.ts +5 -0
- package/dist/cjs/scripts/moveStalledJobsToWait-8.js +291 -0
- package/dist/cjs/scripts/moveStalledJobsToWait-8.js.map +1 -0
- package/dist/cjs/scripts/moveToActive-9.d.ts +5 -0
- package/dist/cjs/scripts/moveToActive-9.js +207 -0
- package/dist/cjs/scripts/moveToActive-9.js.map +1 -0
- package/dist/cjs/scripts/moveToDelayed-5.d.ts +5 -0
- package/dist/cjs/{commands/moveToDelayed-5.lua → scripts/moveToDelayed-5.js} +11 -13
- package/dist/cjs/scripts/moveToDelayed-5.js.map +1 -0
- package/dist/cjs/scripts/moveToFinished-12.d.ts +5 -0
- package/dist/cjs/scripts/moveToFinished-12.js +538 -0
- package/dist/cjs/scripts/moveToFinished-12.js.map +1 -0
- package/dist/cjs/scripts/moveToWaitingChildren-4.d.ts +5 -0
- package/dist/cjs/{commands/moveToWaitingChildren-4.lua → scripts/moveToWaitingChildren-4.js} +11 -14
- package/dist/cjs/scripts/moveToWaitingChildren-4.js.map +1 -0
- package/dist/cjs/scripts/obliterate-2.d.ts +5 -0
- package/dist/cjs/scripts/obliterate-2.js +241 -0
- package/dist/cjs/scripts/obliterate-2.js.map +1 -0
- package/dist/cjs/scripts/pause-4.d.ts +5 -0
- package/dist/{esm/commands/pause-4.lua → cjs/scripts/pause-4.js} +11 -7
- package/dist/cjs/scripts/pause-4.js.map +1 -0
- package/dist/cjs/scripts/promote-6.d.ts +5 -0
- package/dist/cjs/{commands/promote-6.lua → scripts/promote-6.js} +22 -14
- package/dist/cjs/scripts/promote-6.js.map +1 -0
- package/dist/cjs/scripts/releaseLock-1.d.ts +5 -0
- package/dist/{esm/commands/releaseLock-1.lua → cjs/scripts/releaseLock-1.js} +11 -5
- package/dist/cjs/scripts/releaseLock-1.js.map +1 -0
- package/dist/cjs/scripts/removeJob-1.d.ts +5 -0
- package/dist/cjs/scripts/removeJob-1.js +206 -0
- package/dist/cjs/scripts/removeJob-1.js.map +1 -0
- package/dist/cjs/scripts/removeRepeatable-2.d.ts +5 -0
- package/dist/cjs/{commands/removeRepeatable-2.lua → scripts/removeRepeatable-2.js} +11 -7
- package/dist/cjs/scripts/removeRepeatable-2.js.map +1 -0
- package/dist/cjs/scripts/reprocessJob-4.d.ts +5 -0
- package/dist/{esm/commands/reprocessJob-4.lua → cjs/scripts/reprocessJob-4.js} +11 -5
- package/dist/cjs/scripts/reprocessJob-4.js.map +1 -0
- package/dist/cjs/scripts/retryJob-6.d.ts +5 -0
- package/dist/{esm/commands/retryJob-6.lua → cjs/scripts/retryJob-6.js} +22 -13
- package/dist/cjs/scripts/retryJob-6.js.map +1 -0
- package/dist/cjs/scripts/retryJobs-6.d.ts +5 -0
- package/dist/cjs/{commands/retryJobs-6.lua → scripts/retryJobs-6.js} +38 -15
- package/dist/cjs/scripts/retryJobs-6.js.map +1 -0
- package/dist/cjs/scripts/takeLock-1.d.ts +5 -0
- package/dist/cjs/{commands/takeLock-1.lua → scripts/takeLock-1.js} +11 -4
- package/dist/cjs/scripts/takeLock-1.js.map +1 -0
- package/dist/cjs/scripts/updateData-1.d.ts +5 -0
- package/dist/cjs/scripts/updateData-1.js +23 -0
- package/dist/cjs/scripts/updateData-1.js.map +1 -0
- package/dist/cjs/scripts/updateProgress-2.d.ts +5 -0
- package/dist/{esm/commands/updateProgress-2.lua → cjs/scripts/updateProgress-2.js} +11 -5
- package/dist/cjs/scripts/updateProgress-2.js.map +1 -0
- package/dist/esm/classes/job.d.ts +1 -1
- package/dist/esm/classes/redis-connection.d.ts +6 -2
- package/dist/esm/classes/redis-connection.js +11 -5
- package/dist/esm/classes/redis-connection.js.map +1 -1
- package/dist/esm/scripts/addJob-8.d.ts +5 -0
- package/dist/{cjs/commands/addJob-8.lua → esm/scripts/addJob-8.js} +80 -31
- package/dist/esm/scripts/addJob-8.js.map +1 -0
- package/dist/esm/scripts/changeDelay-4.d.ts +5 -0
- package/dist/esm/{commands/changeDelay-4.lua → scripts/changeDelay-4.js} +8 -11
- package/dist/esm/scripts/changeDelay-4.js.map +1 -0
- package/dist/esm/scripts/cleanJobsInSet-2.d.ts +5 -0
- package/dist/esm/scripts/cleanJobsInSet-2.js +261 -0
- package/dist/esm/scripts/cleanJobsInSet-2.js.map +1 -0
- package/dist/esm/scripts/drain-4.d.ts +5 -0
- package/dist/esm/{commands/includes/removeParentDependencyKey.lua → scripts/drain-4.js} +107 -10
- package/dist/esm/scripts/drain-4.js.map +1 -0
- package/dist/esm/scripts/extendLock-2.d.ts +5 -0
- package/dist/{cjs/commands/extendLock-2.lua → esm/scripts/extendLock-2.js} +8 -4
- package/dist/esm/scripts/extendLock-2.js.map +1 -0
- package/dist/esm/scripts/getState-7.d.ts +5 -0
- package/dist/{cjs/commands/getState-7.lua → esm/scripts/getState-7.js} +19 -12
- package/dist/esm/scripts/getState-7.js.map +1 -0
- package/dist/esm/scripts/getStateV2-7.d.ts +5 -0
- package/dist/esm/{commands/getStateV2-7.lua → scripts/getStateV2-7.js} +8 -10
- package/dist/esm/scripts/getStateV2-7.js.map +1 -0
- package/dist/esm/scripts/index.d.ts +26 -0
- package/dist/esm/scripts/index.js +27 -0
- package/dist/esm/scripts/index.js.map +1 -0
- package/dist/esm/scripts/isFinished-3.d.ts +5 -0
- package/dist/esm/{commands/isFinished-3.lua → scripts/isFinished-3.js} +8 -10
- package/dist/esm/scripts/isFinished-3.js.map +1 -0
- package/dist/esm/scripts/isJobInList-1.d.ts +5 -0
- package/dist/esm/scripts/isJobInList-1.js +29 -0
- package/dist/esm/scripts/isJobInList-1.js.map +1 -0
- package/dist/esm/scripts/moveStalledJobsToWait-8.d.ts +5 -0
- package/dist/esm/scripts/moveStalledJobsToWait-8.js +288 -0
- package/dist/esm/scripts/moveStalledJobsToWait-8.js.map +1 -0
- package/dist/esm/scripts/moveToActive-9.d.ts +5 -0
- package/dist/esm/scripts/moveToActive-9.js +204 -0
- package/dist/esm/scripts/moveToActive-9.js.map +1 -0
- package/dist/esm/scripts/moveToDelayed-5.d.ts +5 -0
- package/dist/esm/{commands/moveToDelayed-5.lua → scripts/moveToDelayed-5.js} +8 -13
- package/dist/esm/scripts/moveToDelayed-5.js.map +1 -0
- package/dist/esm/scripts/moveToFinished-12.d.ts +5 -0
- package/dist/esm/scripts/moveToFinished-12.js +535 -0
- package/dist/esm/scripts/moveToFinished-12.js.map +1 -0
- package/dist/esm/scripts/moveToWaitingChildren-4.d.ts +5 -0
- package/dist/esm/{commands/moveToWaitingChildren-4.lua → scripts/moveToWaitingChildren-4.js} +8 -14
- package/dist/esm/scripts/moveToWaitingChildren-4.js.map +1 -0
- package/dist/esm/scripts/obliterate-2.d.ts +5 -0
- package/dist/esm/scripts/obliterate-2.js +238 -0
- package/dist/esm/scripts/obliterate-2.js.map +1 -0
- package/dist/esm/scripts/pause-4.d.ts +5 -0
- package/dist/{cjs/commands/pause-4.lua → esm/scripts/pause-4.js} +8 -7
- package/dist/esm/scripts/pause-4.js.map +1 -0
- package/dist/esm/scripts/promote-6.d.ts +5 -0
- package/dist/esm/{commands/promote-6.lua → scripts/promote-6.js} +19 -14
- package/dist/esm/scripts/promote-6.js.map +1 -0
- package/dist/esm/scripts/releaseLock-1.d.ts +5 -0
- package/dist/{cjs/commands/releaseLock-1.lua → esm/scripts/releaseLock-1.js} +8 -5
- package/dist/esm/scripts/releaseLock-1.js.map +1 -0
- package/dist/esm/scripts/removeJob-1.d.ts +5 -0
- package/dist/esm/scripts/removeJob-1.js +203 -0
- package/dist/esm/scripts/removeJob-1.js.map +1 -0
- package/dist/esm/scripts/removeRepeatable-2.d.ts +5 -0
- package/dist/esm/{commands/removeRepeatable-2.lua → scripts/removeRepeatable-2.js} +8 -7
- package/dist/esm/scripts/removeRepeatable-2.js.map +1 -0
- package/dist/esm/scripts/reprocessJob-4.d.ts +5 -0
- package/dist/{cjs/commands/reprocessJob-4.lua → esm/scripts/reprocessJob-4.js} +8 -5
- package/dist/esm/scripts/reprocessJob-4.js.map +1 -0
- package/dist/esm/scripts/retryJob-6.d.ts +5 -0
- package/dist/{cjs/commands/retryJob-6.lua → esm/scripts/retryJob-6.js} +19 -13
- package/dist/esm/scripts/retryJob-6.js.map +1 -0
- package/dist/esm/scripts/retryJobs-6.d.ts +5 -0
- package/dist/esm/{commands/retryJobs-6.lua → scripts/retryJobs-6.js} +35 -15
- package/dist/esm/scripts/retryJobs-6.js.map +1 -0
- package/dist/esm/scripts/takeLock-1.d.ts +5 -0
- package/dist/esm/{commands/takeLock-1.lua → scripts/takeLock-1.js} +8 -4
- package/dist/esm/scripts/takeLock-1.js.map +1 -0
- package/dist/esm/scripts/updateData-1.d.ts +5 -0
- package/dist/esm/{commands/updateData-1.lua → scripts/updateData-1.js} +8 -4
- package/dist/esm/scripts/updateData-1.js.map +1 -0
- package/dist/esm/scripts/updateProgress-2.d.ts +5 -0
- package/dist/{cjs/commands/updateProgress-2.lua → esm/scripts/updateProgress-2.js} +8 -5
- package/dist/esm/scripts/updateProgress-2.js.map +1 -0
- package/package.json +4 -2
- package/dist/cjs/commands/cleanJobsInSet-2.lua +0 -46
- package/dist/cjs/commands/drain-4.lua +0 -25
- package/dist/cjs/commands/includes/addJobWithPriority.lua +0 -16
- package/dist/cjs/commands/includes/batches.lua +0 -18
- package/dist/cjs/commands/includes/checkItemInList.lua +0 -12
- package/dist/cjs/commands/includes/checkStalledJobs.lua +0 -137
- package/dist/cjs/commands/includes/cleanList.lua +0 -50
- package/dist/cjs/commands/includes/cleanSet.lua +0 -50
- package/dist/cjs/commands/includes/collectMetrics.lua +0 -46
- package/dist/cjs/commands/includes/destructureJobKey.lua +0 -12
- package/dist/cjs/commands/includes/getNextDelayedTimestamp.lua +0 -13
- package/dist/cjs/commands/includes/getTargetQueueList.lua +0 -12
- package/dist/cjs/commands/includes/getTimestamp.lua +0 -19
- package/dist/cjs/commands/includes/getZSetItems.lua +0 -7
- package/dist/cjs/commands/includes/isLocked.lua +0 -31
- package/dist/cjs/commands/includes/moveJobFromWaitToActive.lua +0 -84
- package/dist/cjs/commands/includes/moveParentFromWaitingChildrenToFailed.lua +0 -25
- package/dist/cjs/commands/includes/promoteDelayedJobs.lua +0 -49
- package/dist/cjs/commands/includes/removeJob.lua +0 -13
- package/dist/cjs/commands/includes/removeJobFromAnyState.lua +0 -26
- package/dist/cjs/commands/includes/removeJobs.lua +0 -38
- package/dist/cjs/commands/includes/removeJobsByMaxAge.lua +0 -15
- package/dist/cjs/commands/includes/removeJobsByMaxCount.lua +0 -15
- package/dist/cjs/commands/includes/trimEvents.lua +0 -12
- package/dist/cjs/commands/includes/updateParentDepsIfNeeded.lua +0 -28
- package/dist/cjs/commands/isJobInList-1.lua +0 -16
- package/dist/cjs/commands/moveStalledJobsToWait-8.lua +0 -24
- package/dist/cjs/commands/moveToActive-9.lua +0 -67
- package/dist/cjs/commands/moveToFinished-12.lua +0 -201
- package/dist/cjs/commands/obliterate-2.lua +0 -94
- package/dist/cjs/commands/removeJob-1.lua +0 -72
- package/dist/cjs/commands/updateData-1.lua +0 -16
- package/dist/esm/commands/cleanJobsInSet-2.lua +0 -46
- package/dist/esm/commands/drain-4.lua +0 -25
- package/dist/esm/commands/includes/addJobWithPriority.lua +0 -16
- package/dist/esm/commands/includes/batches.lua +0 -18
- package/dist/esm/commands/includes/checkItemInList.lua +0 -12
- package/dist/esm/commands/includes/checkStalledJobs.lua +0 -137
- package/dist/esm/commands/includes/cleanList.lua +0 -50
- package/dist/esm/commands/includes/cleanSet.lua +0 -50
- package/dist/esm/commands/includes/collectMetrics.lua +0 -46
- package/dist/esm/commands/includes/destructureJobKey.lua +0 -12
- package/dist/esm/commands/includes/getNextDelayedTimestamp.lua +0 -13
- package/dist/esm/commands/includes/getTargetQueueList.lua +0 -12
- package/dist/esm/commands/includes/getTimestamp.lua +0 -19
- package/dist/esm/commands/includes/getZSetItems.lua +0 -7
- package/dist/esm/commands/includes/isLocked.lua +0 -31
- package/dist/esm/commands/includes/moveJobFromWaitToActive.lua +0 -84
- package/dist/esm/commands/includes/moveParentFromWaitingChildrenToFailed.lua +0 -25
- package/dist/esm/commands/includes/promoteDelayedJobs.lua +0 -49
- package/dist/esm/commands/includes/removeJob.lua +0 -13
- package/dist/esm/commands/includes/removeJobFromAnyState.lua +0 -26
- package/dist/esm/commands/includes/removeJobs.lua +0 -38
- package/dist/esm/commands/includes/removeJobsByMaxAge.lua +0 -15
- package/dist/esm/commands/includes/removeJobsByMaxCount.lua +0 -15
- package/dist/esm/commands/includes/trimEvents.lua +0 -12
- package/dist/esm/commands/includes/updateParentDepsIfNeeded.lua +0 -28
- package/dist/esm/commands/isJobInList-1.lua +0 -16
- package/dist/esm/commands/moveStalledJobsToWait-8.lua +0 -24
- package/dist/esm/commands/moveToActive-9.lua +0 -67
- package/dist/esm/commands/moveToFinished-12.lua +0 -201
- package/dist/esm/commands/obliterate-2.lua +0 -94
- 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
|
-
|
8
|
-
|
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"}
|
@@ -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"}
|
@@ -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
|
-
|
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"}
|
@@ -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"}
|
@@ -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,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"}
|