bullmq 2.4.0 → 3.0.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/README.md +1 -1
- package/dist/cjs/classes/backoffs.d.ts +3 -6
- package/dist/cjs/classes/backoffs.js +8 -8
- package/dist/cjs/classes/backoffs.js.map +1 -1
- package/dist/cjs/classes/flow-producer.js +2 -1
- package/dist/cjs/classes/flow-producer.js.map +1 -1
- package/dist/cjs/classes/job.d.ts +3 -3
- package/dist/cjs/classes/job.js +1 -1
- package/dist/cjs/classes/job.js.map +1 -1
- package/dist/cjs/classes/queue-base.js +1 -1
- package/dist/cjs/classes/queue-base.js.map +1 -1
- package/dist/cjs/classes/queue.d.ts +8 -6
- package/dist/cjs/classes/queue.js +10 -9
- package/dist/cjs/classes/queue.js.map +1 -1
- package/dist/cjs/classes/repeat.d.ts +0 -1
- package/dist/cjs/classes/repeat.js +4 -5
- package/dist/cjs/classes/repeat.js.map +1 -1
- package/dist/cjs/classes/scripts.d.ts +6 -6
- package/dist/cjs/classes/scripts.js +43 -22
- package/dist/cjs/classes/scripts.js.map +1 -1
- package/dist/cjs/classes/worker.d.ts +12 -3
- package/dist/cjs/classes/worker.js +50 -34
- package/dist/cjs/classes/worker.js.map +1 -1
- package/dist/cjs/commands/includes/getRateLimitTTL.lua +13 -0
- package/dist/cjs/commands/includes/moveJobFromWaitToActive.lua +15 -34
- package/dist/cjs/commands/includes/promoteDelayedJobs.lua +0 -6
- package/dist/cjs/commands/moveToActive-9.lua +11 -2
- package/dist/cjs/commands/moveToDelayed-8.lua +63 -0
- package/dist/cjs/commands/moveToFinished-12.lua +8 -1
- package/dist/{esm/commands/retryJob-6.lua → cjs/commands/retryJob-8.lua} +15 -8
- package/dist/cjs/interfaces/advanced-options.d.ts +4 -4
- package/dist/cjs/interfaces/base-job-options.d.ts +0 -6
- package/dist/cjs/interfaces/queue-options.d.ts +0 -10
- package/dist/cjs/interfaces/rate-limiter-options.d.ts +0 -18
- package/dist/cjs/interfaces/repeat-options.d.ts +1 -6
- package/dist/cjs/scripts/index.d.ts +2 -2
- package/dist/cjs/scripts/index.js +2 -2
- package/dist/cjs/scripts/moveToActive-9.js +35 -36
- package/dist/cjs/scripts/moveToActive-9.js.map +1 -1
- package/dist/cjs/scripts/{moveToDelayed-5.d.ts → moveToDelayed-8.d.ts} +0 -0
- package/dist/cjs/scripts/moveToDelayed-8.js +116 -0
- package/dist/cjs/scripts/moveToDelayed-8.js.map +1 -0
- package/dist/cjs/scripts/moveToFinished-12.js +33 -36
- package/dist/cjs/scripts/moveToFinished-12.js.map +1 -1
- package/dist/cjs/scripts/{retryJob-6.d.ts → retryJob-8.d.ts} +0 -0
- package/dist/cjs/scripts/retryJob-8.js +112 -0
- package/dist/cjs/scripts/retryJob-8.js.map +1 -0
- package/dist/cjs/types/backoff-strategy.d.ts +2 -0
- package/dist/cjs/types/backoff-strategy.js +3 -0
- package/dist/cjs/types/backoff-strategy.js.map +1 -0
- package/dist/cjs/types/index.d.ts +2 -1
- package/dist/cjs/types/index.js +2 -1
- package/dist/cjs/types/index.js.map +1 -1
- package/dist/cjs/utils.d.ts +1 -3
- package/dist/cjs/utils.js +1 -13
- package/dist/cjs/utils.js.map +1 -1
- package/dist/esm/classes/backoffs.d.ts +3 -6
- package/dist/esm/classes/backoffs.js +8 -8
- package/dist/esm/classes/backoffs.js.map +1 -1
- package/dist/esm/classes/flow-producer.js +3 -2
- package/dist/esm/classes/flow-producer.js.map +1 -1
- package/dist/esm/classes/job.d.ts +3 -3
- package/dist/esm/classes/job.js +1 -1
- package/dist/esm/classes/job.js.map +1 -1
- package/dist/esm/classes/queue-base.js +1 -1
- package/dist/esm/classes/queue-base.js.map +1 -1
- package/dist/esm/classes/queue.d.ts +8 -6
- package/dist/esm/classes/queue.js +11 -10
- package/dist/esm/classes/queue.js.map +1 -1
- package/dist/esm/classes/repeat.d.ts +0 -1
- package/dist/esm/classes/repeat.js +4 -5
- package/dist/esm/classes/repeat.js.map +1 -1
- package/dist/esm/classes/scripts.d.ts +6 -6
- package/dist/esm/classes/scripts.js +41 -20
- package/dist/esm/classes/scripts.js.map +1 -1
- package/dist/esm/classes/worker.d.ts +12 -3
- package/dist/esm/classes/worker.js +50 -34
- package/dist/esm/classes/worker.js.map +1 -1
- package/dist/esm/commands/includes/getRateLimitTTL.lua +13 -0
- package/dist/esm/commands/includes/moveJobFromWaitToActive.lua +15 -34
- package/dist/esm/commands/includes/promoteDelayedJobs.lua +0 -6
- package/dist/esm/commands/moveToActive-9.lua +11 -2
- package/dist/esm/commands/moveToDelayed-8.lua +63 -0
- package/dist/esm/commands/moveToFinished-12.lua +8 -1
- package/dist/{cjs/commands/retryJob-6.lua → esm/commands/retryJob-8.lua} +15 -8
- package/dist/esm/interfaces/advanced-options.d.ts +4 -4
- package/dist/esm/interfaces/base-job-options.d.ts +0 -6
- package/dist/esm/interfaces/queue-options.d.ts +0 -10
- package/dist/esm/interfaces/rate-limiter-options.d.ts +0 -18
- package/dist/esm/interfaces/repeat-options.d.ts +1 -6
- package/dist/esm/scripts/index.d.ts +2 -2
- package/dist/esm/scripts/index.js +2 -2
- package/dist/esm/scripts/moveToActive-9.js +35 -36
- package/dist/esm/scripts/moveToActive-9.js.map +1 -1
- package/dist/esm/scripts/{moveToDelayed-5.d.ts → moveToDelayed-8.d.ts} +0 -0
- package/dist/esm/scripts/moveToDelayed-8.js +113 -0
- package/dist/esm/scripts/moveToDelayed-8.js.map +1 -0
- package/dist/esm/scripts/moveToFinished-12.js +33 -36
- package/dist/esm/scripts/moveToFinished-12.js.map +1 -1
- package/dist/esm/scripts/{retryJob-6.d.ts → retryJob-8.d.ts} +0 -0
- package/dist/esm/scripts/retryJob-8.js +109 -0
- package/dist/esm/scripts/retryJob-8.js.map +1 -0
- package/dist/esm/types/backoff-strategy.d.ts +2 -0
- package/dist/esm/types/backoff-strategy.js +2 -0
- package/dist/esm/types/backoff-strategy.js.map +1 -0
- package/dist/esm/types/index.d.ts +2 -1
- package/dist/esm/types/index.js +2 -1
- package/dist/esm/types/index.js.map +1 -1
- package/dist/esm/utils.d.ts +1 -3
- package/dist/esm/utils.js +0 -11
- package/dist/esm/utils.js.map +1 -1
- package/package.json +1 -1
- package/dist/cjs/commands/moveToDelayed-5.lua +0 -54
- package/dist/cjs/scripts/moveToDelayed-5.js +0 -52
- package/dist/cjs/scripts/moveToDelayed-5.js.map +0 -1
- package/dist/cjs/scripts/retryJob-6.js +0 -60
- package/dist/cjs/scripts/retryJob-6.js.map +0 -1
- package/dist/esm/commands/moveToDelayed-5.lua +0 -54
- package/dist/esm/scripts/moveToDelayed-5.js +0 -49
- package/dist/esm/scripts/moveToDelayed-5.js.map +0 -1
- package/dist/esm/scripts/retryJob-6.js +0 -57
- package/dist/esm/scripts/retryJob-6.js.map +0 -1
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"worker.js","sourceRoot":"","sources":["../../../src/classes/worker.ts"],"names":[],"mappings":"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"}
|
1
|
+
{"version":3,"file":"worker.js","sourceRoot":"","sources":["../../../src/classes/worker.ts"],"names":[],"mappings":"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"}
|
@@ -0,0 +1,13 @@
|
|
1
|
+
local function getRateLimitTTL(opts, limiterKey)
|
2
|
+
local maxJobs = tonumber(opts['limiter'] and opts['limiter']['max'])
|
3
|
+
if maxJobs then
|
4
|
+
local jobCounter = tonumber(rcall("GET", limiterKey))
|
5
|
+
if jobCounter ~= nil and jobCounter >= maxJobs then
|
6
|
+
local pttl = rcall("PTTL", KEYS[6])
|
7
|
+
if pttl > 0 then
|
8
|
+
return pttl
|
9
|
+
end
|
10
|
+
end
|
11
|
+
end
|
12
|
+
return 0
|
13
|
+
end
|
@@ -20,49 +20,30 @@
|
|
20
20
|
local function moveJobFromWaitToActive(keys, keyPrefix, jobId, processedOn, opts)
|
21
21
|
-- Check if we need to perform rate limiting.
|
22
22
|
local maxJobs = tonumber(opts['limiter'] and opts['limiter']['max'])
|
23
|
+
local expireTime
|
23
24
|
|
24
25
|
if(maxJobs) then
|
25
26
|
local rateLimiterKey = keys[6];
|
27
|
+
local jobCounter = tonumber(rcall("INCR", rateLimiterKey))
|
26
28
|
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
groupKey = string.match(jobId, "[^:]+$")
|
31
|
-
if groupKey ~= jobId then
|
32
|
-
rateLimiterKey = rateLimiterKey .. ":" .. groupKey
|
33
|
-
end
|
29
|
+
if jobCounter == 1 then
|
30
|
+
local limiterDuration = opts['limiter'] and opts['limiter']['duration']
|
31
|
+
rcall("PEXPIRE", rateLimiterKey, limiterDuration)
|
34
32
|
end
|
35
33
|
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
end
|
42
|
-
else
|
43
|
-
jobCounter = tonumber(rcall("INCR", rateLimiterKey))
|
44
|
-
end
|
45
|
-
|
46
|
-
local limiterDuration = opts['limiter'] and opts['limiter']['duration']
|
47
|
-
-- check if rate limit hit
|
48
|
-
if jobCounter ~= nil and jobCounter > maxJobs then
|
49
|
-
local exceedingJobs = jobCounter - maxJobs
|
50
|
-
local expireTime = tonumber(rcall("PTTL", rateLimiterKey))
|
51
|
-
local delay = expireTime + ((exceedingJobs - 1) * limiterDuration) / maxJobs;
|
52
|
-
local timestamp = delay + tonumber(processedOn)
|
53
|
-
|
54
|
-
-- put job into delayed queue
|
55
|
-
rcall("ZADD", keys[7], timestamp * 0x1000 + bit.band(jobCounter, 0xfff), jobId);
|
56
|
-
rcall("XADD", keys[4], "*", "event", "delayed", "jobId", jobId, "delay", timestamp);
|
57
|
-
|
58
|
-
-- remove from active queue
|
34
|
+
-- check if we passed rate limit, we need to remove the job and return expireTime
|
35
|
+
if jobCounter > maxJobs then
|
36
|
+
expireTime = rcall("PTTL", rateLimiterKey)
|
37
|
+
|
38
|
+
-- remove from active queue and add back to the wait list
|
59
39
|
rcall("LREM", keys[2], 1, jobId)
|
40
|
+
rcall("RPUSH", keys[1], jobId)
|
60
41
|
|
61
42
|
-- Return when we can process more jobs
|
62
|
-
return expireTime
|
43
|
+
return {0, 0, expireTime}
|
63
44
|
else
|
64
|
-
if jobCounter ==
|
65
|
-
rcall("
|
45
|
+
if jobCounter == maxJobs then
|
46
|
+
expireTime = rcall("PTTL", rateLimiterKey)
|
66
47
|
end
|
67
48
|
end
|
68
49
|
end
|
@@ -80,5 +61,5 @@ local function moveJobFromWaitToActive(keys, keyPrefix, jobId, processedOn, opts
|
|
80
61
|
rcall("HSET", jobKey, "processedOn", processedOn)
|
81
62
|
rcall("HINCRBY", jobKey, "attemptsMade", 1)
|
82
63
|
|
83
|
-
return {rcall("HGETALL", jobKey), jobId} -- get job data
|
64
|
+
return {rcall("HGETALL", jobKey), jobId, expireTime} -- get job data
|
84
65
|
end
|
@@ -40,10 +40,4 @@ local function promoteDelayedJobs(delayedKey, waitKey, priorityKey, pausedKey,
|
|
40
40
|
rcall("HSET", prefix .. jobId, "delay", 0)
|
41
41
|
end
|
42
42
|
end
|
43
|
-
|
44
|
-
local nextTimestamp = rcall("ZRANGE", delayedKey, 0, 0, "WITHSCORES")[2]
|
45
|
-
if (nextTimestamp ~= nil) then
|
46
|
-
nextTimestamp = nextTimestamp / 0x1000
|
47
|
-
end
|
48
|
-
return nextTimestamp
|
49
43
|
end
|
@@ -38,15 +38,24 @@ local rcall = redis.call
|
|
38
38
|
--- @include "includes/moveJobFromWaitToActive"
|
39
39
|
--- @include "includes/getNextDelayedTimestamp"
|
40
40
|
--- @include "includes/promoteDelayedJobs"
|
41
|
+
--- @include "includes/getRateLimitTTL"
|
41
42
|
|
42
43
|
-- Check if there are delayed jobs that we can move to wait.
|
43
44
|
promoteDelayedJobs(KEYS[7], KEYS[1], KEYS[3], KEYS[8], KEYS[9], KEYS[4], ARGV[1], ARGV[2])
|
44
45
|
|
46
|
+
local opts
|
45
47
|
if (ARGV[3] ~= "") then
|
46
48
|
jobId = ARGV[3]
|
47
49
|
-- clean stalled key
|
48
50
|
rcall("SREM", KEYS[5], jobId)
|
49
51
|
else
|
52
|
+
-- Check if we are rate limited first.
|
53
|
+
opts = cmsgpack.unpack(ARGV[4])
|
54
|
+
local pttl = getRateLimitTTL(opts, KEYS[6])
|
55
|
+
if pttl > 0 then
|
56
|
+
return { 0, 0, pttl }
|
57
|
+
end
|
58
|
+
|
50
59
|
-- no job ID, try non-blocking move from wait to active
|
51
60
|
jobId = rcall("RPOPLPUSH", KEYS[1], KEYS[2])
|
52
61
|
end
|
@@ -55,7 +64,7 @@ end
|
|
55
64
|
if jobId == "0" then
|
56
65
|
rcall("LREM", KEYS[2], 1, 0)
|
57
66
|
elseif jobId then
|
58
|
-
|
67
|
+
opts = opts or cmsgpack.unpack(ARGV[4])
|
59
68
|
-- this script is not really moving, it is preparing the job for processing
|
60
69
|
return moveJobFromWaitToActive(KEYS, ARGV[1], jobId, ARGV[2], opts)
|
61
70
|
end
|
@@ -63,5 +72,5 @@ end
|
|
63
72
|
-- Return the timestamp for the next delayed job if any.
|
64
73
|
local nextTimestamp = getNextDelayedTimestamp(KEYS[7])
|
65
74
|
if (nextTimestamp ~= nil) then
|
66
|
-
return nextTimestamp - tonumber(ARGV[2])
|
75
|
+
return { 0, 0, 0, nextTimestamp - tonumber(ARGV[2])}
|
67
76
|
end
|
@@ -0,0 +1,63 @@
|
|
1
|
+
--[[
|
2
|
+
Moves job from active to delayed set.
|
3
|
+
|
4
|
+
Input:
|
5
|
+
KEYS[1] wait key
|
6
|
+
KEYS[2] active key
|
7
|
+
KEYS[3] priority key
|
8
|
+
KEYS[4] delayed key
|
9
|
+
KEYS[5] job key
|
10
|
+
KEYS[6] events stream
|
11
|
+
KEYS[7] paused key
|
12
|
+
KEYS[8] meta key
|
13
|
+
|
14
|
+
ARGV[1] key prefix
|
15
|
+
ARGV[2] timestamp
|
16
|
+
ARGV[3] delayedTimestamp
|
17
|
+
ARGV[4] the id of the job
|
18
|
+
ARGV[5] queue token
|
19
|
+
|
20
|
+
Output:
|
21
|
+
0 - OK
|
22
|
+
-1 - Missing job.
|
23
|
+
-3 - Job not in active set.
|
24
|
+
|
25
|
+
Events:
|
26
|
+
- delayed key.
|
27
|
+
]]
|
28
|
+
local rcall = redis.call
|
29
|
+
|
30
|
+
-- Includes
|
31
|
+
--- @include "includes/promoteDelayedJobs"
|
32
|
+
|
33
|
+
promoteDelayedJobs(KEYS[4], KEYS[1], KEYS[3], KEYS[7], KEYS[8], KEYS[6], ARGV[1], ARGV[2])
|
34
|
+
|
35
|
+
if rcall("EXISTS", KEYS[5]) == 1 then
|
36
|
+
|
37
|
+
if ARGV[5] ~= "0" then
|
38
|
+
local lockKey = KEYS[5] .. ':lock'
|
39
|
+
if rcall("GET", lockKey) == ARGV[5] then
|
40
|
+
rcall("DEL", lockKey)
|
41
|
+
else
|
42
|
+
return -2
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
46
|
+
local jobId = ARGV[4]
|
47
|
+
local score = tonumber(ARGV[3])
|
48
|
+
local delayedTimestamp = (score / 0x1000)
|
49
|
+
|
50
|
+
local numRemovedElements = rcall("LREM", KEYS[2], -1, jobId)
|
51
|
+
|
52
|
+
if(numRemovedElements < 1) then
|
53
|
+
return -3
|
54
|
+
end
|
55
|
+
|
56
|
+
rcall("ZADD", KEYS[4], score, jobId)
|
57
|
+
|
58
|
+
rcall("XADD", KEYS[6], "*", "event", "delayed", "jobId", jobId, "delay", delayedTimestamp);
|
59
|
+
|
60
|
+
return 0
|
61
|
+
else
|
62
|
+
return -1
|
63
|
+
end
|
@@ -64,6 +64,7 @@ local rcall = redis.call
|
|
64
64
|
--- @include "includes/removeJobsByMaxCount"
|
65
65
|
--- @include "includes/trimEvents"
|
66
66
|
--- @include "includes/updateParentDepsIfNeeded"
|
67
|
+
--- @include "includes/getRateLimitTTL"
|
67
68
|
|
68
69
|
local jobIdKey = KEYS[10]
|
69
70
|
if rcall("EXISTS", jobIdKey) == 1 then -- // Make sure job exists
|
@@ -169,6 +170,12 @@ if rcall("EXISTS", jobIdKey) == 1 then -- // Make sure job exists
|
|
169
170
|
-- Check if there are delayed jobs that can be promoted
|
170
171
|
promoteDelayedJobs(KEYS[7], KEYS[1], KEYS[3], KEYS[8], KEYS[11], KEYS[4], ARGV[8], timestamp)
|
171
172
|
|
173
|
+
-- Check if we are rate limited first.
|
174
|
+
local pttl = getRateLimitTTL(opts, KEYS[6])
|
175
|
+
if pttl > 0 then
|
176
|
+
return { 0, 0, pttl }
|
177
|
+
end
|
178
|
+
|
172
179
|
jobId = rcall("RPOPLPUSH", KEYS[1], KEYS[2])
|
173
180
|
|
174
181
|
if jobId == "0" then
|
@@ -182,7 +189,7 @@ if rcall("EXISTS", jobIdKey) == 1 then -- // Make sure job exists
|
|
182
189
|
if (nextTimestamp ~= nil) then
|
183
190
|
-- The result is guaranteed to be positive, since the
|
184
191
|
-- ZRANGEBYSCORE command would have return a job otherwise.
|
185
|
-
return nextTimestamp - timestamp
|
192
|
+
return {0, 0, 0, nextTimestamp - timestamp}
|
186
193
|
end
|
187
194
|
end
|
188
195
|
|
@@ -8,10 +8,14 @@
|
|
8
8
|
KEYS[4] job key
|
9
9
|
KEYS[5] 'meta'
|
10
10
|
KEYS[6] events stream
|
11
|
+
KEYS[7] delayed key
|
12
|
+
KEYS[8] priority key
|
11
13
|
|
12
|
-
ARGV[1]
|
13
|
-
ARGV[2]
|
14
|
-
ARGV[3]
|
14
|
+
ARGV[1] key prefix
|
15
|
+
ARGV[2] timestamp
|
16
|
+
ARGV[3] pushCmd
|
17
|
+
ARGV[4] jobId
|
18
|
+
ARGV[5] token
|
15
19
|
|
16
20
|
Events:
|
17
21
|
'waiting'
|
@@ -25,12 +29,15 @@ local rcall = redis.call
|
|
25
29
|
|
26
30
|
-- Includes
|
27
31
|
--- @include "includes/getTargetQueueList"
|
32
|
+
--- @include "includes/promoteDelayedJobs"
|
33
|
+
|
34
|
+
promoteDelayedJobs(KEYS[7], KEYS[2], KEYS[8], KEYS[3], KEYS[5], KEYS[6], ARGV[1], ARGV[2])
|
28
35
|
|
29
36
|
if rcall("EXISTS", KEYS[4]) == 1 then
|
30
37
|
|
31
|
-
if ARGV[
|
38
|
+
if ARGV[5] ~= "0" then
|
32
39
|
local lockKey = KEYS[4] .. ':lock'
|
33
|
-
if rcall("GET", lockKey) == ARGV[
|
40
|
+
if rcall("GET", lockKey) == ARGV[5] then
|
34
41
|
rcall("DEL", lockKey)
|
35
42
|
else
|
36
43
|
return -2
|
@@ -39,11 +46,11 @@ if rcall("EXISTS", KEYS[4]) == 1 then
|
|
39
46
|
|
40
47
|
local target = getTargetQueueList(KEYS[5], KEYS[2], KEYS[3])
|
41
48
|
|
42
|
-
rcall("LREM", KEYS[1], 0, ARGV[
|
43
|
-
rcall(ARGV[
|
49
|
+
rcall("LREM", KEYS[1], 0, ARGV[4])
|
50
|
+
rcall(ARGV[3], target, ARGV[4])
|
44
51
|
|
45
52
|
-- Emit waiting event
|
46
|
-
rcall("XADD", KEYS[6], "*", "event", "waiting", "jobId", ARGV[
|
53
|
+
rcall("XADD", KEYS[6], "*", "event", "waiting", "jobId", ARGV[4], "prev", "failed");
|
47
54
|
|
48
55
|
return 0
|
49
56
|
else
|
@@ -1,13 +1,13 @@
|
|
1
|
-
import { RepeatStrategy } from '../types';
|
1
|
+
import { BackoffStrategy, RepeatStrategy } from '../types';
|
2
2
|
export interface AdvancedRepeatOptions {
|
3
3
|
/**
|
4
|
-
* A
|
4
|
+
* A custom cron strategy.
|
5
5
|
*/
|
6
6
|
repeatStrategy?: RepeatStrategy;
|
7
7
|
}
|
8
8
|
export interface AdvancedOptions extends AdvancedRepeatOptions {
|
9
9
|
/**
|
10
|
-
* A
|
10
|
+
* A custom backoff strategy.
|
11
11
|
*/
|
12
|
-
|
12
|
+
backoffStrategy?: BackoffStrategy;
|
13
13
|
}
|
@@ -23,12 +23,6 @@ export interface DefaultJobOptions {
|
|
23
23
|
* @defaultValue 0
|
24
24
|
*/
|
25
25
|
attempts?: number;
|
26
|
-
/**
|
27
|
-
* Rate limiter key to use if rate limiter enabled.
|
28
|
-
*
|
29
|
-
* @see {@link https://docs.bullmq.io/guide/rate-limiting}
|
30
|
-
*/
|
31
|
-
rateLimiterKey?: string;
|
32
26
|
/**
|
33
27
|
* Backoff setting for automatic retries if the job fails
|
34
28
|
*/
|
@@ -31,16 +31,6 @@ export interface QueueBaseOptions {
|
|
31
31
|
*/
|
32
32
|
export interface QueueOptions extends QueueBaseOptions {
|
33
33
|
defaultJobOptions?: DefaultJobOptions;
|
34
|
-
/**
|
35
|
-
* Options for the rate limiter.
|
36
|
-
*/
|
37
|
-
limiter?: {
|
38
|
-
/**
|
39
|
-
* Group key to be used by the limiter when
|
40
|
-
* limiting by group keys.
|
41
|
-
*/
|
42
|
-
groupKey: string;
|
43
|
-
};
|
44
34
|
/**
|
45
35
|
* Options for the streams used internally in BullMQ.
|
46
36
|
*/
|
@@ -9,22 +9,4 @@ export interface RateLimiterOptions {
|
|
9
9
|
* of `max` jobs will be processed.
|
10
10
|
*/
|
11
11
|
duration: number;
|
12
|
-
/**
|
13
|
-
* It is possible to define a rate limiter based on group keys,
|
14
|
-
* for example you may want to have a rate limiter per customer
|
15
|
-
* instead of a global rate limiter for all customers
|
16
|
-
*
|
17
|
-
* @see {@link https://docs.bullmq.io/guide/rate-limiting}
|
18
|
-
*/
|
19
|
-
groupKey?: string;
|
20
|
-
/**
|
21
|
-
* This option enables a heuristic so that when a queue is heavily
|
22
|
-
* rete limited, it delays the workers so that they do not try
|
23
|
-
* to pick jobs when there is no point in doing so.
|
24
|
-
* Note: It is not recommended to use this option when using
|
25
|
-
* groupKeys unless you have a big amount of workers since
|
26
|
-
* you may be delaying workers that could pick jobs in groups that
|
27
|
-
* have not been rate limited.
|
28
|
-
*/
|
29
|
-
workerDelay?: boolean;
|
30
12
|
}
|
@@ -5,11 +5,6 @@ import { ParserOptions } from 'cron-parser';
|
|
5
5
|
* @see {@link https://docs.bullmq.io/guide/jobs/repeatable}
|
6
6
|
*/
|
7
7
|
export interface RepeatOptions extends Omit<ParserOptions, 'iterator'> {
|
8
|
-
/**
|
9
|
-
* @deprecated Use pattern option instead.
|
10
|
-
* A cron pattern
|
11
|
-
*/
|
12
|
-
cron?: string;
|
13
8
|
/**
|
14
9
|
* A repeat pattern
|
15
10
|
*/
|
@@ -20,7 +15,7 @@ export interface RepeatOptions extends Omit<ParserOptions, 'iterator'> {
|
|
20
15
|
limit?: number;
|
21
16
|
/**
|
22
17
|
* Repeat after this amount of milliseconds
|
23
|
-
* (`
|
18
|
+
* (`pattern` setting cannot be used together with this setting.)
|
24
19
|
*/
|
25
20
|
every?: number;
|
26
21
|
/**
|
@@ -9,7 +9,7 @@ export * from './isFinished-3';
|
|
9
9
|
export * from './isJobInList-1';
|
10
10
|
export * from './moveStalledJobsToWait-8';
|
11
11
|
export * from './moveToActive-9';
|
12
|
-
export * from './moveToDelayed-
|
12
|
+
export * from './moveToDelayed-8';
|
13
13
|
export * from './moveToFinished-12';
|
14
14
|
export * from './moveToWaitingChildren-4';
|
15
15
|
export * from './obliterate-2';
|
@@ -19,7 +19,7 @@ export * from './releaseLock-1';
|
|
19
19
|
export * from './removeJob-1';
|
20
20
|
export * from './removeRepeatable-2';
|
21
21
|
export * from './reprocessJob-4';
|
22
|
-
export * from './retryJob-
|
22
|
+
export * from './retryJob-8';
|
23
23
|
export * from './retryJobs-6';
|
24
24
|
export * from './takeLock-1';
|
25
25
|
export * from './updateData-1';
|
@@ -9,7 +9,7 @@ export * from './isFinished-3';
|
|
9
9
|
export * from './isJobInList-1';
|
10
10
|
export * from './moveStalledJobsToWait-8';
|
11
11
|
export * from './moveToActive-9';
|
12
|
-
export * from './moveToDelayed-
|
12
|
+
export * from './moveToDelayed-8';
|
13
13
|
export * from './moveToFinished-12';
|
14
14
|
export * from './moveToWaitingChildren-4';
|
15
15
|
export * from './obliterate-2';
|
@@ -19,7 +19,7 @@ export * from './releaseLock-1';
|
|
19
19
|
export * from './removeJob-1';
|
20
20
|
export * from './removeRepeatable-2';
|
21
21
|
export * from './reprocessJob-4';
|
22
|
-
export * from './retryJob-
|
22
|
+
export * from './retryJob-8';
|
23
23
|
export * from './retryJobs-6';
|
24
24
|
export * from './takeLock-1';
|
25
25
|
export * from './updateData-1';
|
@@ -46,41 +46,25 @@ local rcall = redis.call
|
|
46
46
|
local function moveJobFromWaitToActive(keys, keyPrefix, jobId, processedOn, opts)
|
47
47
|
-- Check if we need to perform rate limiting.
|
48
48
|
local maxJobs = tonumber(opts['limiter'] and opts['limiter']['max'])
|
49
|
+
local expireTime
|
49
50
|
if(maxJobs) then
|
50
51
|
local rateLimiterKey = keys[6];
|
51
|
-
local
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
if groupKey ~= jobId then
|
56
|
-
rateLimiterKey = rateLimiterKey .. ":" .. groupKey
|
57
|
-
end
|
52
|
+
local jobCounter = tonumber(rcall("INCR", rateLimiterKey))
|
53
|
+
if jobCounter == 1 then
|
54
|
+
local limiterDuration = opts['limiter'] and opts['limiter']['duration']
|
55
|
+
rcall("PEXPIRE", rateLimiterKey, limiterDuration)
|
58
56
|
end
|
59
|
-
|
60
|
-
if
|
61
|
-
|
62
|
-
|
63
|
-
end
|
64
|
-
else
|
65
|
-
jobCounter = tonumber(rcall("INCR", rateLimiterKey))
|
66
|
-
end
|
67
|
-
local limiterDuration = opts['limiter'] and opts['limiter']['duration']
|
68
|
-
-- check if rate limit hit
|
69
|
-
if jobCounter ~= nil and jobCounter > maxJobs then
|
70
|
-
local exceedingJobs = jobCounter - maxJobs
|
71
|
-
local expireTime = tonumber(rcall("PTTL", rateLimiterKey))
|
72
|
-
local delay = expireTime + ((exceedingJobs - 1) * limiterDuration) / maxJobs;
|
73
|
-
local timestamp = delay + tonumber(processedOn)
|
74
|
-
-- put job into delayed queue
|
75
|
-
rcall("ZADD", keys[7], timestamp * 0x1000 + bit.band(jobCounter, 0xfff), jobId);
|
76
|
-
rcall("XADD", keys[4], "*", "event", "delayed", "jobId", jobId, "delay", timestamp);
|
77
|
-
-- remove from active queue
|
57
|
+
-- check if we passed rate limit, we need to remove the job and return expireTime
|
58
|
+
if jobCounter > maxJobs then
|
59
|
+
expireTime = rcall("PTTL", rateLimiterKey)
|
60
|
+
-- remove from active queue and add back to the wait list
|
78
61
|
rcall("LREM", keys[2], 1, jobId)
|
62
|
+
rcall("RPUSH", keys[1], jobId)
|
79
63
|
-- Return when we can process more jobs
|
80
|
-
return expireTime
|
64
|
+
return {0, 0, expireTime}
|
81
65
|
else
|
82
|
-
if jobCounter ==
|
83
|
-
rcall("
|
66
|
+
if jobCounter == maxJobs then
|
67
|
+
expireTime = rcall("PTTL", rateLimiterKey)
|
84
68
|
end
|
85
69
|
end
|
86
70
|
end
|
@@ -94,7 +78,7 @@ local function moveJobFromWaitToActive(keys, keyPrefix, jobId, processedOn, opts
|
|
94
78
|
rcall("XADD", keys[4], "*", "event", "active", "jobId", jobId, "prev", "waiting")
|
95
79
|
rcall("HSET", jobKey, "processedOn", processedOn)
|
96
80
|
rcall("HINCRBY", jobKey, "attemptsMade", 1)
|
97
|
-
return {rcall("HGETALL", jobKey), jobId} -- get job data
|
81
|
+
return {rcall("HGETALL", jobKey), jobId, expireTime} -- get job data
|
98
82
|
end
|
99
83
|
--[[
|
100
84
|
Function to return the next delayed job timestamp.
|
@@ -166,19 +150,34 @@ local function promoteDelayedJobs(delayedKey, waitKey, priorityKey, pausedKey,
|
|
166
150
|
rcall("HSET", prefix .. jobId, "delay", 0)
|
167
151
|
end
|
168
152
|
end
|
169
|
-
|
170
|
-
|
171
|
-
|
153
|
+
end
|
154
|
+
local function getRateLimitTTL(opts, limiterKey)
|
155
|
+
local maxJobs = tonumber(opts['limiter'] and opts['limiter']['max'])
|
156
|
+
if maxJobs then
|
157
|
+
local jobCounter = tonumber(rcall("GET", limiterKey))
|
158
|
+
if jobCounter ~= nil and jobCounter >= maxJobs then
|
159
|
+
local pttl = rcall("PTTL", KEYS[6])
|
160
|
+
if pttl > 0 then
|
161
|
+
return pttl
|
162
|
+
end
|
163
|
+
end
|
172
164
|
end
|
173
|
-
return
|
165
|
+
return 0
|
174
166
|
end
|
175
167
|
-- Check if there are delayed jobs that we can move to wait.
|
176
168
|
promoteDelayedJobs(KEYS[7], KEYS[1], KEYS[3], KEYS[8], KEYS[9], KEYS[4], ARGV[1], ARGV[2])
|
169
|
+
local opts
|
177
170
|
if (ARGV[3] ~= "") then
|
178
171
|
jobId = ARGV[3]
|
179
172
|
-- clean stalled key
|
180
173
|
rcall("SREM", KEYS[5], jobId)
|
181
174
|
else
|
175
|
+
-- Check if we are rate limited first.
|
176
|
+
opts = cmsgpack.unpack(ARGV[4])
|
177
|
+
local pttl = getRateLimitTTL(opts, KEYS[6])
|
178
|
+
if pttl > 0 then
|
179
|
+
return { 0, 0, pttl }
|
180
|
+
end
|
182
181
|
-- no job ID, try non-blocking move from wait to active
|
183
182
|
jobId = rcall("RPOPLPUSH", KEYS[1], KEYS[2])
|
184
183
|
end
|
@@ -186,14 +185,14 @@ end
|
|
186
185
|
if jobId == "0" then
|
187
186
|
rcall("LREM", KEYS[2], 1, 0)
|
188
187
|
elseif jobId then
|
189
|
-
|
188
|
+
opts = opts or cmsgpack.unpack(ARGV[4])
|
190
189
|
-- this script is not really moving, it is preparing the job for processing
|
191
190
|
return moveJobFromWaitToActive(KEYS, ARGV[1], jobId, ARGV[2], opts)
|
192
191
|
end
|
193
192
|
-- Return the timestamp for the next delayed job if any.
|
194
193
|
local nextTimestamp = getNextDelayedTimestamp(KEYS[7])
|
195
194
|
if (nextTimestamp ~= nil) then
|
196
|
-
return nextTimestamp - tonumber(ARGV[2])
|
195
|
+
return { 0, 0, 0, nextTimestamp - tonumber(ARGV[2])}
|
197
196
|
end
|
198
197
|
`;
|
199
198
|
export const moveToActive = {
|
@@ -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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoMf,CAAC;AACF,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,IAAI,EAAE,cAAc;IACpB,OAAO;IACP,IAAI,EAAE,CAAC;CACR,CAAC"}
|
File without changes
|