bullmq 3.13.3 → 3.14.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.
- package/dist/cjs/classes/job.js +1 -1
- package/dist/cjs/classes/scripts.js +5 -2
- package/dist/cjs/classes/scripts.js.map +1 -1
- package/dist/cjs/classes/worker.js +2 -9
- package/dist/cjs/classes/worker.js.map +1 -1
- package/dist/cjs/commands/addJob-8.lua +2 -2
- package/dist/cjs/commands/changeDelay-3.lua +2 -3
- package/dist/cjs/commands/getRanges-1.lua +1 -1
- package/dist/cjs/commands/includes/cleanSet.lua +2 -2
- package/dist/cjs/commands/includes/getRateLimitTTL.lua +1 -1
- package/dist/cjs/commands/includes/updateParentDepsIfNeeded.lua +0 -1
- package/dist/cjs/commands/isFinished-3.lua +3 -3
- package/dist/cjs/commands/{moveJobFromActiveToWait-7.lua → moveJobFromActiveToWait-8.lua} +9 -6
- package/dist/cjs/commands/moveToActive-9.lua +46 -44
- package/dist/cjs/commands/moveToDelayed-8.lua +22 -23
- package/dist/cjs/commands/pause-4.lua +8 -8
- package/dist/cjs/commands/promote-6.lua +7 -3
- package/dist/cjs/commands/removeRepeatable-2.lua +3 -0
- package/dist/cjs/commands/reprocessJob-6.lua +1 -1
- package/dist/cjs/commands/retryJob-8.lua +2 -2
- package/dist/cjs/commands/saveStacktrace-1.lua +2 -3
- package/dist/cjs/commands/updateData-1.lua +6 -2
- package/dist/cjs/commands/updateProgress-2.lua +6 -2
- package/dist/cjs/scripts/addJob-8.js +2 -2
- package/dist/cjs/scripts/changeDelay-3.js +2 -2
- package/dist/cjs/scripts/getRanges-1.js +1 -1
- package/dist/cjs/scripts/index.js +1 -2
- package/dist/cjs/scripts/index.js.map +1 -1
- package/dist/cjs/scripts/isFinished-3.js +3 -3
- package/dist/cjs/scripts/{moveJobFromActiveToWait-7.js → moveJobFromActiveToWait-8.js} +10 -7
- package/dist/cjs/scripts/moveJobFromActiveToWait-8.js.map +1 -0
- package/dist/cjs/scripts/moveToActive-9.js +47 -45
- package/dist/cjs/scripts/moveToActive-9.js.map +1 -1
- package/dist/cjs/scripts/moveToDelayed-8.js +22 -22
- package/dist/cjs/scripts/moveToFinished-12.js +1 -1
- package/dist/cjs/scripts/pause-4.js +8 -8
- package/dist/cjs/scripts/promote-6.js +6 -3
- package/dist/cjs/scripts/promote-6.js.map +1 -1
- package/dist/cjs/scripts/removeRepeatable-2.js +2 -0
- package/dist/cjs/scripts/removeRepeatable-2.js.map +1 -1
- package/dist/cjs/scripts/reprocessJob-6.js +1 -1
- package/dist/cjs/scripts/retryJob-8.js +1 -1
- package/dist/cjs/scripts/saveStacktrace-1.js +1 -1
- package/dist/cjs/scripts/updateData-1.js +4 -1
- package/dist/cjs/scripts/updateData-1.js.map +1 -1
- package/dist/cjs/scripts/updateProgress-2.js +3 -0
- package/dist/cjs/scripts/updateProgress-2.js.map +1 -1
- package/dist/cjs/tsconfig-cjs.tsbuildinfo +1 -1
- package/dist/esm/classes/job.js +1 -1
- package/dist/esm/classes/scripts.d.ts +1 -1
- package/dist/esm/classes/scripts.js +5 -2
- package/dist/esm/classes/scripts.js.map +1 -1
- package/dist/esm/classes/worker.d.ts +1 -1
- package/dist/esm/classes/worker.js +2 -9
- package/dist/esm/classes/worker.js.map +1 -1
- package/dist/esm/commands/addJob-8.lua +2 -2
- package/dist/esm/commands/changeDelay-3.lua +2 -3
- package/dist/esm/commands/getRanges-1.lua +1 -1
- package/dist/esm/commands/includes/cleanSet.lua +2 -2
- package/dist/esm/commands/includes/getRateLimitTTL.lua +1 -1
- package/dist/esm/commands/includes/updateParentDepsIfNeeded.lua +0 -1
- package/dist/esm/commands/isFinished-3.lua +3 -3
- package/dist/esm/commands/{moveJobFromActiveToWait-7.lua → moveJobFromActiveToWait-8.lua} +9 -6
- package/dist/esm/commands/moveToActive-9.lua +46 -44
- package/dist/esm/commands/moveToDelayed-8.lua +22 -23
- package/dist/esm/commands/pause-4.lua +8 -8
- package/dist/esm/commands/promote-6.lua +7 -3
- package/dist/esm/commands/removeRepeatable-2.lua +3 -0
- package/dist/esm/commands/reprocessJob-6.lua +1 -1
- package/dist/esm/commands/retryJob-8.lua +2 -2
- package/dist/esm/commands/saveStacktrace-1.lua +2 -3
- package/dist/esm/commands/updateData-1.lua +6 -2
- package/dist/esm/commands/updateProgress-2.lua +6 -2
- package/dist/esm/scripts/addJob-8.js +2 -2
- package/dist/esm/scripts/changeDelay-3.js +2 -2
- package/dist/esm/scripts/getRanges-1.js +1 -1
- package/dist/esm/scripts/index.d.ts +1 -2
- package/dist/esm/scripts/index.js +1 -2
- package/dist/esm/scripts/index.js.map +1 -1
- package/dist/esm/scripts/isFinished-3.js +3 -3
- package/dist/esm/scripts/{moveJobFromActiveToWait-7.js → moveJobFromActiveToWait-8.js} +10 -7
- package/dist/esm/scripts/moveJobFromActiveToWait-8.js.map +1 -0
- package/dist/esm/scripts/moveToActive-9.js +47 -45
- package/dist/esm/scripts/moveToActive-9.js.map +1 -1
- package/dist/esm/scripts/moveToDelayed-8.js +22 -22
- package/dist/esm/scripts/moveToFinished-12.js +1 -1
- package/dist/esm/scripts/pause-4.js +8 -8
- package/dist/esm/scripts/promote-6.js +6 -3
- package/dist/esm/scripts/promote-6.js.map +1 -1
- package/dist/esm/scripts/removeRepeatable-2.js +2 -0
- package/dist/esm/scripts/removeRepeatable-2.js.map +1 -1
- package/dist/esm/scripts/reprocessJob-6.js +1 -1
- package/dist/esm/scripts/retryJob-8.js +1 -1
- package/dist/esm/scripts/saveStacktrace-1.js +1 -1
- package/dist/esm/scripts/updateData-1.js +4 -1
- package/dist/esm/scripts/updateData-1.js.map +1 -1
- package/dist/esm/scripts/updateProgress-2.js +3 -0
- package/dist/esm/scripts/updateProgress-2.js.map +1 -1
- package/dist/esm/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/dist/cjs/commands/takeLock-1.lua +0 -17
- package/dist/cjs/scripts/moveJobFromActiveToWait-7.js.map +0 -1
- package/dist/cjs/scripts/takeLock-1.js +0 -24
- package/dist/cjs/scripts/takeLock-1.js.map +0 -1
- package/dist/esm/commands/takeLock-1.lua +0 -17
- package/dist/esm/scripts/moveJobFromActiveToWait-7.js.map +0 -1
- package/dist/esm/scripts/takeLock-1.d.ts +0 -5
- package/dist/esm/scripts/takeLock-1.js +0 -21
- package/dist/esm/scripts/takeLock-1.js.map +0 -1
- /package/dist/esm/scripts/{moveJobFromActiveToWait-7.d.ts → moveJobFromActiveToWait-8.d.ts} +0 -0
@@ -50,8 +50,8 @@ if rcall("EXISTS", KEYS[4]) == 1 then
|
|
50
50
|
rcall(ARGV[3], target, ARGV[4])
|
51
51
|
|
52
52
|
-- Emit waiting event
|
53
|
-
rcall("XADD", KEYS[6], "*", "event", "waiting", "jobId", ARGV[4], "prev", "failed")
|
54
|
-
|
53
|
+
rcall("XADD", KEYS[6], "*", "event", "waiting", "jobId", ARGV[4], "prev", "failed")
|
54
|
+
|
55
55
|
return 0
|
56
56
|
else
|
57
57
|
return -1
|
@@ -8,15 +8,14 @@
|
|
8
8
|
ARGV[2] failedReason
|
9
9
|
|
10
10
|
Output:
|
11
|
-
|
11
|
+
0 - OK
|
12
12
|
-1 - Missing key
|
13
13
|
]]
|
14
14
|
local rcall = redis.call
|
15
15
|
|
16
16
|
if rcall("EXISTS", KEYS[1]) == 1 then
|
17
|
-
|
18
17
|
rcall("HMSET", KEYS[1], "stacktrace", ARGV[1], "failedReason", ARGV[2])
|
19
|
-
|
18
|
+
|
20
19
|
return 0
|
21
20
|
else
|
22
21
|
return -1
|
@@ -175,7 +175,7 @@ else
|
|
175
175
|
end
|
176
176
|
rcall("XADD", KEYS[8], "*", "event", "duplicated", "jobId", jobId)
|
177
177
|
return jobId .. "" -- convert to string
|
178
|
-
end
|
178
|
+
end
|
179
179
|
end
|
180
180
|
-- Store the job.
|
181
181
|
local jsonOpts = cjson.encode(opts)
|
@@ -216,7 +216,7 @@ else
|
|
216
216
|
-- Standard or priority add
|
217
217
|
if priority == 0 then
|
218
218
|
-- LIFO or FIFO
|
219
|
-
local pushCmd = opts['lifo'] and 'RPUSH' or 'LPUSH'
|
219
|
+
local pushCmd = opts['lifo'] and 'RPUSH' or 'LPUSH'
|
220
220
|
rcall(pushCmd, target, jobId)
|
221
221
|
else
|
222
222
|
-- Priority add
|
@@ -23,12 +23,12 @@ if rcall("EXISTS", KEYS[2]) == 1 then
|
|
23
23
|
local score = tonumber(ARGV[2])
|
24
24
|
local delayedTimestamp = (score / 0x1000)
|
25
25
|
local numRemovedElements = rcall("ZREM", KEYS[1], jobId)
|
26
|
-
if
|
26
|
+
if numRemovedElements < 1 then
|
27
27
|
return -3
|
28
28
|
end
|
29
29
|
rcall("HSET", KEYS[2], "delay", tonumber(ARGV[1]))
|
30
30
|
rcall("ZADD", KEYS[1], score, jobId)
|
31
|
-
rcall("XADD", KEYS[3], "*", "event", "delayed", "jobId", jobId, "delay", delayedTimestamp)
|
31
|
+
rcall("XADD", KEYS[3], "*", "event", "delayed", "jobId", jobId, "delay", delayedTimestamp)
|
32
32
|
return 0
|
33
33
|
else
|
34
34
|
return -1
|
@@ -12,7 +12,7 @@ tslib_1.__exportStar(require("./getState-7"), exports);
|
|
12
12
|
tslib_1.__exportStar(require("./getStateV2-7"), exports);
|
13
13
|
tslib_1.__exportStar(require("./isFinished-3"), exports);
|
14
14
|
tslib_1.__exportStar(require("./isJobInList-1"), exports);
|
15
|
-
tslib_1.__exportStar(require("./moveJobFromActiveToWait-
|
15
|
+
tslib_1.__exportStar(require("./moveJobFromActiveToWait-8"), exports);
|
16
16
|
tslib_1.__exportStar(require("./moveStalledJobsToWait-8"), exports);
|
17
17
|
tslib_1.__exportStar(require("./moveToActive-9"), exports);
|
18
18
|
tslib_1.__exportStar(require("./moveToDelayed-8"), exports);
|
@@ -28,7 +28,6 @@ tslib_1.__exportStar(require("./reprocessJob-6"), exports);
|
|
28
28
|
tslib_1.__exportStar(require("./retryJob-8"), exports);
|
29
29
|
tslib_1.__exportStar(require("./retryJobs-6"), exports);
|
30
30
|
tslib_1.__exportStar(require("./saveStacktrace-1"), exports);
|
31
|
-
tslib_1.__exportStar(require("./takeLock-1"), exports);
|
32
31
|
tslib_1.__exportStar(require("./updateData-1"), exports);
|
33
32
|
tslib_1.__exportStar(require("./updateProgress-2"), exports);
|
34
33
|
//# sourceMappingURL=index.js.map
|
@@ -1 +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,wDAA8B;AAC9B,wDAA8B;AAC9B,uDAA6B;AAC7B,yDAA+B;AAC/B,yDAA+B;AAC/B,0DAAgC;AAChC,sEAA4C;AAC5C,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,6DAAmC;AACnC,
|
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,wDAA8B;AAC9B,wDAA8B;AAC9B,uDAA6B;AAC7B,yDAA+B;AAC/B,yDAA+B;AAC/B,0DAAgC;AAChC,sEAA4C;AAC5C,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,6DAAmC;AACnC,yDAA+B;AAC/B,6DAAmC"}
|
@@ -13,14 +13,14 @@ const content = `--[[
|
|
13
13
|
0 - Not finished.
|
14
14
|
1 - Completed.
|
15
15
|
2 - Failed.
|
16
|
-
-
|
16
|
+
-1 - Missing job.
|
17
17
|
]]
|
18
18
|
local rcall = redis.call
|
19
19
|
if rcall("EXISTS", KEYS[3]) ~= 1 then
|
20
20
|
if ARGV[2] == "1" then
|
21
|
-
return {-
|
21
|
+
return {-1,"Missing key for job " .. KEYS[3] .. ". isFinished"}
|
22
22
|
end
|
23
|
-
return -
|
23
|
+
return -1
|
24
24
|
end
|
25
25
|
if rcall("ZSCORE", KEYS[1], ARGV[1]) ~= false then
|
26
26
|
if ARGV[2] == "1" then
|
@@ -10,9 +10,10 @@ const content = `--[[
|
|
10
10
|
KEYS[4] job lock key
|
11
11
|
KEYS[5] paused key
|
12
12
|
KEYS[6] meta key
|
13
|
-
KEYS[7]
|
14
|
-
|
15
|
-
|
13
|
+
KEYS[7] limiter key
|
14
|
+
KEYS[8] event key
|
15
|
+
ARGV[1] job id
|
16
|
+
ARGV[2] lock token
|
16
17
|
]]
|
17
18
|
local rcall = redis.call
|
18
19
|
-- Includes
|
@@ -31,7 +32,8 @@ local jobId = ARGV[1]
|
|
31
32
|
local token = ARGV[2]
|
32
33
|
local lockKey = KEYS[4]
|
33
34
|
local lockToken = rcall("GET", lockKey)
|
34
|
-
|
35
|
+
local pttl = rcall("PTTL", KEYS[7])
|
36
|
+
if lockToken == token and pttl > 0 then
|
35
37
|
local removed = rcall("LREM", KEYS[1], 1, jobId)
|
36
38
|
if (removed > 0) then
|
37
39
|
local target = getTargetQueueList(KEYS[6], KEYS[2], KEYS[5])
|
@@ -39,13 +41,14 @@ if lockToken == token then
|
|
39
41
|
rcall("RPUSH", target, jobId)
|
40
42
|
rcall("DEL", lockKey)
|
41
43
|
-- Emit waiting event
|
42
|
-
rcall("XADD", KEYS[
|
44
|
+
rcall("XADD", KEYS[8], "*", "event", "waiting", "jobId", jobId)
|
43
45
|
end
|
44
46
|
end
|
47
|
+
return pttl
|
45
48
|
`;
|
46
49
|
exports.moveJobFromActiveToWait = {
|
47
50
|
name: 'moveJobFromActiveToWait',
|
48
51
|
content,
|
49
|
-
keys:
|
52
|
+
keys: 8,
|
50
53
|
};
|
51
|
-
//# sourceMappingURL=moveJobFromActiveToWait-
|
54
|
+
//# sourceMappingURL=moveJobFromActiveToWait-8.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"moveJobFromActiveToWait-8.js","sourceRoot":"","sources":["../../../src/scripts/moveJobFromActiveToWait-8.ts"],"names":[],"mappings":";;;AAAA,MAAM,OAAO,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4Cf,CAAC;AACW,QAAA,uBAAuB,GAAG;IACrC,IAAI,EAAE,yBAAyB;IAC/B,OAAO;IACP,IAAI,EAAE,CAAC;CACR,CAAC"}
|
@@ -8,25 +8,25 @@ const content = `--[[
|
|
8
8
|
expiration time. The worker is responsible of keeping the lock fresh
|
9
9
|
so that no other worker picks this job again.
|
10
10
|
Input:
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
11
|
+
KEYS[1] wait key
|
12
|
+
KEYS[2] active key
|
13
|
+
KEYS[3] priority key
|
14
|
+
KEYS[4] stream events key
|
15
|
+
KEYS[5] stalled key
|
16
|
+
-- Rate limiting
|
17
|
+
KEYS[6] rate limiter key
|
18
|
+
KEYS[7] delayed key
|
19
|
+
-- Promote delayed jobs
|
20
|
+
KEYS[8] paused key
|
21
|
+
KEYS[9] meta key
|
22
|
+
-- Arguments
|
23
|
+
ARGV[1] key prefix
|
24
|
+
ARGV[2] timestamp
|
25
|
+
ARGV[3] optional job ID
|
26
|
+
ARGV[4] opts
|
27
|
+
opts - token - lock token
|
28
|
+
opts - lockDuration
|
29
|
+
opts - limiter
|
30
30
|
]]
|
31
31
|
local jobId
|
32
32
|
local rcall = redis.call
|
@@ -160,7 +160,7 @@ local function getRateLimitTTL(opts, limiterKey)
|
|
160
160
|
if jobCounter ~= nil and jobCounter >= maxJobs then
|
161
161
|
local pttl = rcall("PTTL", limiterKey)
|
162
162
|
if pttl > 0 then
|
163
|
-
return pttl
|
163
|
+
return pttl
|
164
164
|
end
|
165
165
|
end
|
166
166
|
end
|
@@ -170,35 +170,37 @@ end
|
|
170
170
|
promoteDelayedJobs(KEYS[7], KEYS[1], KEYS[3], KEYS[8], KEYS[9], KEYS[4], ARGV[1], ARGV[2])
|
171
171
|
local opts
|
172
172
|
if (ARGV[3] ~= "") then
|
173
|
-
|
174
|
-
|
175
|
-
|
173
|
+
jobId = ARGV[3]
|
174
|
+
-- clean stalled key
|
175
|
+
rcall("SREM", KEYS[5], jobId)
|
176
176
|
else
|
177
|
-
|
178
|
-
|
179
|
-
|
180
|
-
|
181
|
-
|
182
|
-
|
183
|
-
|
184
|
-
|
177
|
+
-- Check if we are rate limited first.
|
178
|
+
opts = cmsgpack.unpack(ARGV[4])
|
179
|
+
local pttl = getRateLimitTTL(opts, KEYS[6])
|
180
|
+
if pttl > 0 then
|
181
|
+
return { 0, 0, pttl }
|
182
|
+
end
|
183
|
+
-- no job ID, try non-blocking move from wait to active
|
184
|
+
jobId = rcall("RPOPLPUSH", KEYS[1], KEYS[2])
|
185
185
|
end
|
186
186
|
-- If jobId is special ID 0:delay, then there is no job to process
|
187
|
-
if jobId then
|
188
|
-
|
189
|
-
|
190
|
-
|
191
|
-
|
192
|
-
|
193
|
-
|
194
|
-
|
195
|
-
|
196
|
-
|
197
|
-
if jobId then
|
198
|
-
opts = opts or cmsgpack.unpack(ARGV[4])
|
199
|
-
-- this script is not really moving, it is preparing the job for processing
|
200
|
-
return moveJobFromWaitToActive(KEYS, ARGV[1], jobId, ARGV[2], opts)
|
187
|
+
if jobId then
|
188
|
+
if string.sub(jobId, 1, 2) == "0:" then
|
189
|
+
rcall("LREM", KEYS[2], 1, jobId)
|
190
|
+
-- Move again since we just got the marker job.
|
191
|
+
jobId = rcall("RPOPLPUSH", KEYS[1], KEYS[2])
|
192
|
+
-- Since it is possible that between a call to BRPOPLPUSH and moveToActive
|
193
|
+
-- another script puts a new maker in wait, we need to check again.
|
194
|
+
if jobId and string.sub(jobId, 1, 2) == "0:" then
|
195
|
+
rcall("LREM", KEYS[2], 1, jobId)
|
196
|
+
jobId = rcall("RPOPLPUSH", KEYS[1], KEYS[2])
|
201
197
|
end
|
198
|
+
end
|
199
|
+
if jobId then
|
200
|
+
opts = opts or cmsgpack.unpack(ARGV[4])
|
201
|
+
-- this script is not really moving, it is preparing the job for processing
|
202
|
+
return moveJobFromWaitToActive(KEYS, ARGV[1], jobId, ARGV[2], opts)
|
203
|
+
end
|
202
204
|
end
|
203
205
|
-- Return the timestamp for the next delayed job if any.
|
204
206
|
local nextTimestamp = getNextDelayedTimestamp(KEYS[7])
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"moveToActive-9.js","sourceRoot":"","sources":["../../../src/scripts/moveToActive-9.ts"],"names":[],"mappings":";;;AAAA,MAAM,OAAO,GAAG
|
1
|
+
{"version":3,"file":"moveToActive-9.js","sourceRoot":"","sources":["../../../src/scripts/moveToActive-9.ts"],"names":[],"mappings":";;;AAAA,MAAM,OAAO,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8Mf,CAAC;AACW,QAAA,YAAY,GAAG;IAC1B,IAAI,EAAE,cAAc;IACpB,OAAO;IACP,IAAI,EAAE,CAAC;CACR,CAAC"}
|
@@ -110,30 +110,30 @@ local function promoteDelayedJobs(delayedKey, waitKey, priorityKey, pausedKey,
|
|
110
110
|
end
|
111
111
|
local jobKey = KEYS[5]
|
112
112
|
if rcall("EXISTS", jobKey) == 1 then
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
end
|
121
|
-
end
|
122
|
-
local jobId = ARGV[4]
|
123
|
-
local score = tonumber(ARGV[3])
|
124
|
-
local delayedTimestamp = (score / 0x1000)
|
125
|
-
local numRemovedElements = rcall("LREM", KEYS[2], -1, jobId)
|
126
|
-
if (numRemovedElements < 1) then
|
127
|
-
return -3
|
113
|
+
local delayedKey = KEYS[4]
|
114
|
+
if ARGV[5] ~= "0" then
|
115
|
+
local lockKey = jobKey .. ':lock'
|
116
|
+
if rcall("GET", lockKey) == ARGV[5] then
|
117
|
+
rcall("DEL", lockKey)
|
118
|
+
else
|
119
|
+
return -2
|
128
120
|
end
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
121
|
+
end
|
122
|
+
local jobId = ARGV[4]
|
123
|
+
local score = tonumber(ARGV[3])
|
124
|
+
local delayedTimestamp = (score / 0x1000)
|
125
|
+
local numRemovedElements = rcall("LREM", KEYS[2], -1, jobId)
|
126
|
+
if numRemovedElements < 1 then
|
127
|
+
return -3
|
128
|
+
end
|
129
|
+
rcall("ZADD", delayedKey, score, jobId)
|
130
|
+
rcall("XADD", KEYS[6], "*", "event", "delayed", "jobId", jobId, "delay", delayedTimestamp)
|
131
|
+
-- Check if we need to push a marker job to wake up sleeping workers.
|
132
|
+
local target = getTargetQueueList(KEYS[8], KEYS[1], KEYS[7])
|
133
|
+
addDelayMarkerIfNeeded(target, delayedKey)
|
134
|
+
return 0
|
135
135
|
else
|
136
|
-
|
136
|
+
return -1
|
137
137
|
end
|
138
138
|
`;
|
139
139
|
exports.moveToDelayed = {
|
@@ -3,14 +3,14 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.pause = void 0;
|
4
4
|
const content = `--[[
|
5
5
|
Pauses or resumes a queue globably.
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
6
|
+
Input:
|
7
|
+
KEYS[1] 'wait' or 'paused''
|
8
|
+
KEYS[2] 'paused' or 'wait'
|
9
|
+
KEYS[3] 'meta'
|
10
|
+
KEYS[4] events stream key
|
11
|
+
ARGV[1] 'paused' or 'resumed'
|
12
|
+
Event:
|
13
|
+
publish paused or resumed event.
|
14
14
|
]]
|
15
15
|
local rcall = redis.call
|
16
16
|
if rcall("EXISTS", KEYS[1]) == 1 then
|
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.promote = void 0;
|
4
4
|
const content = `--[[
|
5
5
|
Promotes a job that is currently "delayed" to the "waiting" state
|
6
|
-
|
6
|
+
Input:
|
7
7
|
KEYS[1] 'delayed'
|
8
8
|
KEYS[2] 'wait'
|
9
9
|
KEYS[3] 'paused'
|
@@ -12,10 +12,13 @@ const content = `--[[
|
|
12
12
|
KEYS[6] 'event stream'
|
13
13
|
ARGV[1] queue.toKey('')
|
14
14
|
ARGV[2] jobId
|
15
|
-
|
15
|
+
Output:
|
16
|
+
0 - OK
|
17
|
+
-3 - Job not in delayed zset.
|
18
|
+
Events:
|
16
19
|
'waiting'
|
17
20
|
]]
|
18
|
-
local rcall = redis.call
|
21
|
+
local rcall = redis.call
|
19
22
|
local jobId = ARGV[2]
|
20
23
|
-- Includes
|
21
24
|
--[[
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"promote-6.js","sourceRoot":"","sources":["../../../src/scripts/promote-6.ts"],"names":[],"mappings":";;;AAAA,MAAM,OAAO,GAAG
|
1
|
+
{"version":3,"file":"promote-6.js","sourceRoot":"","sources":["../../../src/scripts/promote-6.ts"],"names":[],"mappings":";;;AAAA,MAAM,OAAO,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAmEZ,CAAC;AACQ,QAAA,OAAO,GAAG;IACrB,IAAI,EAAE,SAAS;IACf,OAAO;IACP,IAAI,EAAE,CAAC;CACR,CAAC"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"removeRepeatable-2.js","sourceRoot":"","sources":["../../../src/scripts/removeRepeatable-2.ts"],"names":[],"mappings":";;;AAAA,MAAM,OAAO,GAAG
|
1
|
+
{"version":3,"file":"removeRepeatable-2.js","sourceRoot":"","sources":["../../../src/scripts/removeRepeatable-2.ts"],"names":[],"mappings":";;;AAAA,MAAM,OAAO,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4Bf,CAAC;AACW,QAAA,gBAAgB,GAAG;IAC9B,IAAI,EAAE,kBAAkB;IACxB,OAAO;IACP,IAAI,EAAE,CAAC;CACR,CAAC"}
|
@@ -15,7 +15,7 @@ const content = `--[[
|
|
15
15
|
ARGV[3] propVal - failedReason/returnvalue
|
16
16
|
ARGV[4] prev state - failed/completed
|
17
17
|
Output:
|
18
|
-
|
18
|
+
1 means the operation was a success
|
19
19
|
-1 means the job does not exist
|
20
20
|
-3 means the job was not found in the expected set.
|
21
21
|
]]
|
@@ -97,7 +97,7 @@ if rcall("EXISTS", KEYS[4]) == 1 then
|
|
97
97
|
rcall("LREM", KEYS[1], 0, ARGV[4])
|
98
98
|
rcall(ARGV[3], target, ARGV[4])
|
99
99
|
-- Emit waiting event
|
100
|
-
rcall("XADD", KEYS[6], "*", "event", "waiting", "jobId", ARGV[4], "prev", "failed")
|
100
|
+
rcall("XADD", KEYS[6], "*", "event", "waiting", "jobId", ARGV[4], "prev", "failed")
|
101
101
|
return 0
|
102
102
|
else
|
103
103
|
return -1
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"updateData-1.js","sourceRoot":"","sources":["../../../src/scripts/updateData-1.ts"],"names":[],"mappings":";;;AAAA,MAAM,OAAO,GAAG
|
1
|
+
{"version":3,"file":"updateData-1.js","sourceRoot":"","sources":["../../../src/scripts/updateData-1.ts"],"names":[],"mappings":";;;AAAA,MAAM,OAAO,GAAG;;;;;;;;;;;;;;;;CAgBf,CAAC;AACW,QAAA,UAAU,GAAG;IACxB,IAAI,EAAE,YAAY;IAClB,OAAO;IACP,IAAI,EAAE,CAAC;CACR,CAAC"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"updateProgress-2.js","sourceRoot":"","sources":["../../../src/scripts/updateProgress-2.ts"],"names":[],"mappings":";;;AAAA,MAAM,OAAO,GAAG
|
1
|
+
{"version":3,"file":"updateProgress-2.js","sourceRoot":"","sources":["../../../src/scripts/updateProgress-2.ts"],"names":[],"mappings":";;;AAAA,MAAM,OAAO,GAAG;;;;;;;;;;;;;;;;;;;;;CAqBf,CAAC;AACW,QAAA,cAAc,GAAG;IAC5B,IAAI,EAAE,gBAAgB;IACtB,OAAO;IACP,IAAI,EAAE,CAAC;CACR,CAAC"}
|