bullmq 2.3.0 → 2.3.2
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/redis-connection.js +2 -2
- package/dist/cjs/classes/redis-connection.js.map +1 -1
- package/dist/cjs/commands/addJob-8.lua +174 -0
- package/dist/cjs/commands/changeDelay-4.lua +43 -0
- package/dist/cjs/commands/cleanJobsInSet-2.lua +46 -0
- package/dist/cjs/commands/drain-4.lua +25 -0
- package/dist/cjs/commands/extendLock-2.lua +23 -0
- package/dist/cjs/commands/getState-7.lua +57 -0
- package/dist/cjs/commands/getStateV2-7.lua +51 -0
- package/dist/cjs/commands/includes/addJobWithPriority.lua +16 -0
- package/dist/cjs/commands/includes/batches.lua +18 -0
- package/dist/cjs/commands/includes/checkItemInList.lua +12 -0
- package/dist/cjs/commands/includes/checkStalledJobs.lua +137 -0
- package/dist/cjs/commands/includes/cleanList.lua +50 -0
- package/dist/cjs/commands/includes/cleanSet.lua +50 -0
- package/dist/cjs/commands/includes/collectMetrics.lua +46 -0
- package/dist/cjs/commands/includes/destructureJobKey.lua +12 -0
- package/dist/cjs/commands/includes/getNextDelayedTimestamp.lua +13 -0
- package/dist/cjs/commands/includes/getTargetQueueList.lua +12 -0
- package/dist/cjs/commands/includes/getTimestamp.lua +19 -0
- package/dist/cjs/commands/includes/getZSetItems.lua +7 -0
- package/dist/cjs/commands/includes/isLocked.lua +31 -0
- package/dist/cjs/commands/includes/moveJobFromWaitToActive.lua +84 -0
- package/dist/cjs/commands/includes/moveParentFromWaitingChildrenToFailed.lua +28 -0
- package/dist/cjs/commands/includes/promoteDelayedJobs.lua +49 -0
- package/dist/cjs/commands/includes/removeJob.lua +13 -0
- package/dist/cjs/commands/includes/removeJobFromAnyState.lua +26 -0
- package/dist/cjs/commands/includes/removeJobs.lua +38 -0
- package/dist/cjs/commands/includes/removeJobsByMaxAge.lua +15 -0
- package/dist/cjs/commands/includes/removeJobsByMaxCount.lua +15 -0
- package/dist/cjs/commands/includes/removeParentDependencyKey.lua +81 -0
- package/dist/cjs/commands/includes/trimEvents.lua +12 -0
- package/dist/cjs/commands/includes/updateParentDepsIfNeeded.lua +28 -0
- package/dist/cjs/commands/isFinished-3.lua +48 -0
- package/dist/cjs/commands/isJobInList-1.lua +16 -0
- package/dist/cjs/commands/moveStalledJobsToWait-8.lua +24 -0
- package/dist/cjs/commands/moveToActive-9.lua +67 -0
- package/dist/cjs/commands/moveToDelayed-5.lua +54 -0
- package/dist/cjs/commands/moveToFinished-12.lua +201 -0
- package/dist/cjs/commands/moveToWaitingChildren-4.lua +62 -0
- package/dist/cjs/commands/obliterate-2.lua +94 -0
- package/dist/cjs/commands/pause-4.lua +27 -0
- package/dist/cjs/commands/promote-6.lua +59 -0
- package/dist/cjs/commands/releaseLock-1.lua +19 -0
- package/dist/cjs/commands/removeJob-1.lua +72 -0
- package/dist/cjs/commands/removeRepeatable-2.lua +32 -0
- package/dist/cjs/commands/reprocessJob-4.lua +35 -0
- package/dist/cjs/commands/retryJob-6.lua +51 -0
- package/dist/cjs/commands/retryJobs-6.lua +53 -0
- package/dist/cjs/commands/takeLock-1.lua +17 -0
- package/dist/cjs/commands/updateData-1.lua +16 -0
- package/dist/cjs/commands/updateProgress-2.lua +22 -0
- package/dist/cjs/scripts/moveToFinished-12.js +5 -2
- package/dist/cjs/scripts/moveToFinished-12.js.map +1 -1
- package/dist/esm/classes/redis-connection.js +2 -2
- package/dist/esm/classes/redis-connection.js.map +1 -1
- package/dist/esm/commands/addJob-8.lua +174 -0
- package/dist/esm/commands/changeDelay-4.lua +43 -0
- package/dist/esm/commands/cleanJobsInSet-2.lua +46 -0
- package/dist/esm/commands/drain-4.lua +25 -0
- package/dist/esm/commands/extendLock-2.lua +23 -0
- package/dist/esm/commands/getState-7.lua +57 -0
- package/dist/esm/commands/getStateV2-7.lua +51 -0
- package/dist/esm/commands/includes/addJobWithPriority.lua +16 -0
- package/dist/esm/commands/includes/batches.lua +18 -0
- package/dist/esm/commands/includes/checkItemInList.lua +12 -0
- package/dist/esm/commands/includes/checkStalledJobs.lua +137 -0
- package/dist/esm/commands/includes/cleanList.lua +50 -0
- package/dist/esm/commands/includes/cleanSet.lua +50 -0
- package/dist/esm/commands/includes/collectMetrics.lua +46 -0
- package/dist/esm/commands/includes/destructureJobKey.lua +12 -0
- package/dist/esm/commands/includes/getNextDelayedTimestamp.lua +13 -0
- package/dist/esm/commands/includes/getTargetQueueList.lua +12 -0
- package/dist/esm/commands/includes/getTimestamp.lua +19 -0
- package/dist/esm/commands/includes/getZSetItems.lua +7 -0
- package/dist/esm/commands/includes/isLocked.lua +31 -0
- package/dist/esm/commands/includes/moveJobFromWaitToActive.lua +84 -0
- package/dist/esm/commands/includes/moveParentFromWaitingChildrenToFailed.lua +28 -0
- package/dist/esm/commands/includes/promoteDelayedJobs.lua +49 -0
- package/dist/esm/commands/includes/removeJob.lua +13 -0
- package/dist/esm/commands/includes/removeJobFromAnyState.lua +26 -0
- package/dist/esm/commands/includes/removeJobs.lua +38 -0
- package/dist/esm/commands/includes/removeJobsByMaxAge.lua +15 -0
- package/dist/esm/commands/includes/removeJobsByMaxCount.lua +15 -0
- package/dist/esm/commands/includes/removeParentDependencyKey.lua +81 -0
- package/dist/esm/commands/includes/trimEvents.lua +12 -0
- package/dist/esm/commands/includes/updateParentDepsIfNeeded.lua +28 -0
- package/dist/esm/commands/isFinished-3.lua +48 -0
- package/dist/esm/commands/isJobInList-1.lua +16 -0
- package/dist/esm/commands/moveStalledJobsToWait-8.lua +24 -0
- package/dist/esm/commands/moveToActive-9.lua +67 -0
- package/dist/esm/commands/moveToDelayed-5.lua +54 -0
- package/dist/esm/commands/moveToFinished-12.lua +201 -0
- package/dist/esm/commands/moveToWaitingChildren-4.lua +62 -0
- package/dist/esm/commands/obliterate-2.lua +94 -0
- package/dist/esm/commands/pause-4.lua +27 -0
- package/dist/esm/commands/promote-6.lua +59 -0
- package/dist/esm/commands/releaseLock-1.lua +19 -0
- package/dist/esm/commands/removeJob-1.lua +72 -0
- package/dist/esm/commands/removeRepeatable-2.lua +32 -0
- package/dist/esm/commands/reprocessJob-4.lua +35 -0
- package/dist/esm/commands/retryJob-6.lua +51 -0
- package/dist/esm/commands/retryJobs-6.lua +53 -0
- package/dist/esm/commands/takeLock-1.lua +17 -0
- package/dist/esm/commands/updateData-1.lua +16 -0
- package/dist/esm/commands/updateProgress-2.lua +22 -0
- package/dist/esm/scripts/moveToFinished-12.js +5 -2
- package/dist/esm/scripts/moveToFinished-12.js.map +1 -1
- package/package.json +2 -2
@@ -0,0 +1,53 @@
|
|
1
|
+
--[[
|
2
|
+
Attempts to retry all failed jobs
|
3
|
+
|
4
|
+
Input:
|
5
|
+
KEYS[1] base key
|
6
|
+
KEYS[2] events stream
|
7
|
+
KEYS[3] state key (failed, completed)
|
8
|
+
KEYS[4] 'wait'
|
9
|
+
KEYS[5] 'paused'
|
10
|
+
KEYS[6] 'meta'
|
11
|
+
|
12
|
+
ARGV[1] count
|
13
|
+
ARGV[2] timestamp
|
14
|
+
ARGV[3] prev state
|
15
|
+
|
16
|
+
Output:
|
17
|
+
1 means the operation is not completed
|
18
|
+
0 means the operation is completed
|
19
|
+
]]
|
20
|
+
local maxCount = tonumber(ARGV[1])
|
21
|
+
local timestamp = tonumber(ARGV[2])
|
22
|
+
|
23
|
+
local rcall = redis.call;
|
24
|
+
|
25
|
+
-- Includes
|
26
|
+
--- @include "includes/batches"
|
27
|
+
--- @include "includes/getTargetQueueList"
|
28
|
+
|
29
|
+
local target = getTargetQueueList(KEYS[6], KEYS[4], KEYS[5])
|
30
|
+
|
31
|
+
local jobs = rcall('ZRANGEBYSCORE', KEYS[3], 0, timestamp, 'LIMIT', 0, maxCount)
|
32
|
+
if (#jobs > 0) then
|
33
|
+
for i, key in ipairs(jobs) do
|
34
|
+
local jobKey = KEYS[1] .. key
|
35
|
+
rcall("HDEL", jobKey, "finishedOn", "processedOn", "failedReason", "returnvalue")
|
36
|
+
|
37
|
+
-- Emit waiting event
|
38
|
+
rcall("XADD", KEYS[2], "*", "event", "waiting", "jobId", key, "prev", ARGV[3]);
|
39
|
+
end
|
40
|
+
|
41
|
+
for from, to in batches(#jobs, 7000) do
|
42
|
+
rcall("ZREM", KEYS[3], unpack(jobs, from, to))
|
43
|
+
rcall("LPUSH", target, unpack(jobs, from, to))
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
maxCount = maxCount - #jobs
|
48
|
+
|
49
|
+
if(maxCount <= 0) then
|
50
|
+
return 1
|
51
|
+
end
|
52
|
+
|
53
|
+
return 0
|
@@ -0,0 +1,17 @@
|
|
1
|
+
--[[
|
2
|
+
Takes a lock
|
3
|
+
|
4
|
+
Input:
|
5
|
+
KEYS[1] 'lock',
|
6
|
+
|
7
|
+
ARGV[1] token
|
8
|
+
ARGV[2] lock duration in milliseconds
|
9
|
+
|
10
|
+
Output:
|
11
|
+
"OK" if lock extented succesfully.
|
12
|
+
]]
|
13
|
+
if redis.call("SET", KEYS[1], ARGV[1], "NX", "PX", ARGV[2]) then
|
14
|
+
return 1
|
15
|
+
else
|
16
|
+
return 0
|
17
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
--[[
|
2
|
+
Update job data
|
3
|
+
|
4
|
+
Input:
|
5
|
+
KEYS[1] Job id key
|
6
|
+
|
7
|
+
ARGV[1] data
|
8
|
+
]]
|
9
|
+
local rcall = redis.call
|
10
|
+
|
11
|
+
if rcall("EXISTS",KEYS[1]) == 1 then -- // Make sure job exists
|
12
|
+
rcall("HSET", KEYS[1], "data", ARGV[1])
|
13
|
+
return 0
|
14
|
+
else
|
15
|
+
return -1
|
16
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
--[[
|
2
|
+
Update job progress
|
3
|
+
|
4
|
+
Input:
|
5
|
+
KEYS[1] Job id key
|
6
|
+
KEYS[2] event stream key
|
7
|
+
|
8
|
+
ARGV[1] id
|
9
|
+
ARGV[2] progress
|
10
|
+
|
11
|
+
Event:
|
12
|
+
progress(jobId, progress)
|
13
|
+
]]
|
14
|
+
local rcall = redis.call
|
15
|
+
|
16
|
+
if rcall("EXISTS",KEYS[1]) == 1 then -- // Make sure job exists
|
17
|
+
rcall("HSET", KEYS[1], "progress", ARGV[2])
|
18
|
+
rcall("XADD", KEYS[2], "*", "event", "progress", "jobId", ARGV[1], "data", ARGV[2]);
|
19
|
+
return 0
|
20
|
+
else
|
21
|
+
return -1
|
22
|
+
end
|
@@ -184,10 +184,13 @@ end
|
|
184
184
|
--[[
|
185
185
|
Function to recursively move from waitingChildren to failed.
|
186
186
|
]]
|
187
|
-
local function moveParentFromWaitingChildrenToFailed( parentQueueKey, parentKey, parentId,
|
187
|
+
local function moveParentFromWaitingChildrenToFailed( parentQueueKey, parentKey, parentId, jobIdKey, timestamp)
|
188
188
|
if rcall("ZREM", parentQueueKey .. ":waiting-children", parentId) == 1 then
|
189
189
|
rcall("ZADD", parentQueueKey .. ":failed", timestamp, parentId)
|
190
|
-
|
190
|
+
local failedReason = "child " .. jobIdKey .. " failed"
|
191
|
+
rcall("HMSET", parentKey, "failedReason", failedReason, "finishedOn", timestamp)
|
192
|
+
rcall("XADD", parentQueueKey .. ":events", "*", "event", "failed", "jobId", parentId, "failedReason",
|
193
|
+
failedReason, "prev", "waiting-children")
|
191
194
|
local rawParentData = rcall("HGET", parentKey, "parent")
|
192
195
|
if rawParentData ~= false then
|
193
196
|
local parentData = cjson.decode(rawParentData)
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"moveToFinished-12.js","sourceRoot":"","sources":["../../../src/scripts/moveToFinished-12.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,GAAG
|
1
|
+
{"version":3,"file":"moveToFinished-12.js","sourceRoot":"","sources":["../../../src/scripts/moveToFinished-12.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmhBf,CAAC;AACF,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,IAAI,EAAE,gBAAgB;IACtB,OAAO;IACP,IAAI,EAAE,EAAE;CACT,CAAC"}
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "bullmq",
|
3
|
-
"version": "2.3.
|
3
|
+
"version": "2.3.2",
|
4
4
|
"description": "Queue for messages and jobs based on Redis",
|
5
5
|
"main": "./dist/cjs/index.js",
|
6
6
|
"module": "./dist/esm/index.js",
|
@@ -19,7 +19,7 @@
|
|
19
19
|
"dist"
|
20
20
|
],
|
21
21
|
"scripts": {
|
22
|
-
"build": "npm-run-all pretest tsc:all clean:temp:files",
|
22
|
+
"build": "npm-run-all pretest tsc:all clean:temp:files copy:lua copy:includes:lua",
|
23
23
|
"clean:temp:files": "rimraf dist/cjs/bullmq.d.ts dist/esm/bullmq.d.ts dist/tsdoc-metadata.json",
|
24
24
|
"copy:lua": "copyfiles -f ./src/commands/*.lua ./dist/cjs/commands && copyfiles -f ./src/commands/*.lua ./dist/esm/commands",
|
25
25
|
"copy:includes:lua": "copyfiles -f ./src/commands/includes/*.lua ./dist/cjs/commands/includes && copyfiles -f ./src/commands/includes/*.lua ./dist/esm/commands/includes",
|