bullmq 1.70.0 → 1.74.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/README.md +9 -0
- package/dist/bullmq.d.ts +58 -20
- package/dist/cjs/classes/child-processor.js.map +1 -1
- package/dist/cjs/classes/index.d.ts +1 -0
- package/dist/cjs/classes/index.js +1 -0
- package/dist/cjs/classes/index.js.map +1 -1
- package/dist/cjs/classes/job.d.ts +3 -2
- package/dist/cjs/classes/job.js +12 -8
- package/dist/cjs/classes/job.js.map +1 -1
- package/dist/cjs/classes/queue-getters.d.ts +9 -1
- package/dist/cjs/classes/queue-getters.js +34 -4
- package/dist/cjs/classes/queue-getters.js.map +1 -1
- package/dist/cjs/classes/queue-scheduler.d.ts +1 -0
- package/dist/cjs/classes/queue-scheduler.js +12 -0
- package/dist/cjs/classes/queue-scheduler.js.map +1 -1
- package/dist/cjs/classes/queue.d.ts +25 -10
- package/dist/cjs/classes/queue.js +6 -7
- package/dist/cjs/classes/queue.js.map +1 -1
- package/dist/cjs/classes/scripts.d.ts +4 -4
- package/dist/cjs/classes/scripts.js +7 -7
- package/dist/cjs/classes/scripts.js.map +1 -1
- package/dist/cjs/classes/timer-manager.d.ts +3 -3
- package/dist/cjs/classes/timer-manager.js +3 -3
- package/dist/cjs/classes/unrecoverable-error.d.ts +10 -0
- package/dist/cjs/classes/unrecoverable-error.js +19 -0
- package/dist/cjs/classes/unrecoverable-error.js.map +1 -0
- package/dist/cjs/commands/addJob-9.lua +2 -2
- package/dist/cjs/commands/includes/trimEvents.lua +12 -0
- package/dist/cjs/commands/moveStalledJobsToWait-8.lua +2 -2
- package/dist/cjs/commands/moveToFinished-8.lua +2 -5
- package/dist/cjs/commands/retryJobs-4.lua +3 -2
- package/dist/cjs/types/job-json-sandbox.d.ts +1 -0
- package/dist/esm/classes/child-processor.js.map +1 -1
- package/dist/esm/classes/index.d.ts +1 -0
- package/dist/esm/classes/index.js +1 -0
- package/dist/esm/classes/index.js.map +1 -1
- package/dist/esm/classes/job.d.ts +3 -2
- package/dist/esm/classes/job.js +12 -8
- package/dist/esm/classes/job.js.map +1 -1
- package/dist/esm/classes/queue-getters.d.ts +9 -1
- package/dist/esm/classes/queue-getters.js +34 -4
- package/dist/esm/classes/queue-getters.js.map +1 -1
- package/dist/esm/classes/queue-scheduler.d.ts +1 -0
- package/dist/esm/classes/queue-scheduler.js +13 -1
- package/dist/esm/classes/queue-scheduler.js.map +1 -1
- package/dist/esm/classes/queue.d.ts +25 -10
- package/dist/esm/classes/queue.js +6 -7
- package/dist/esm/classes/queue.js.map +1 -1
- package/dist/esm/classes/scripts.d.ts +4 -4
- package/dist/esm/classes/scripts.js +7 -7
- package/dist/esm/classes/scripts.js.map +1 -1
- package/dist/esm/classes/timer-manager.d.ts +3 -3
- package/dist/esm/classes/timer-manager.js +3 -3
- package/dist/esm/classes/unrecoverable-error.d.ts +10 -0
- package/dist/esm/classes/unrecoverable-error.js +15 -0
- package/dist/esm/classes/unrecoverable-error.js.map +1 -0
- package/dist/esm/commands/addJob-9.lua +2 -2
- package/dist/esm/commands/includes/trimEvents.lua +12 -0
- package/dist/esm/commands/moveStalledJobsToWait-8.lua +2 -2
- package/dist/esm/commands/moveToFinished-8.lua +2 -5
- package/dist/esm/commands/retryJobs-4.lua +3 -2
- package/dist/esm/types/job-json-sandbox.d.ts +1 -0
- package/package.json +1 -1
@@ -0,0 +1,15 @@
|
|
1
|
+
/**
|
2
|
+
* UnrecoverableError
|
3
|
+
*
|
4
|
+
* Error to move a job to failed even if the attemptsMade
|
5
|
+
* are lower than the expected limit.
|
6
|
+
*
|
7
|
+
*/
|
8
|
+
export class UnrecoverableError extends Error {
|
9
|
+
constructor(message) {
|
10
|
+
super(message);
|
11
|
+
this.name = this.constructor.name;
|
12
|
+
Object.setPrototypeOf(this, new.target.prototype);
|
13
|
+
}
|
14
|
+
}
|
15
|
+
//# sourceMappingURL=unrecoverable-error.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"unrecoverable-error.js","sourceRoot":"","sources":["../../../src/classes/unrecoverable-error.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,MAAM,OAAO,kBAAmB,SAAQ,KAAK;IAC3C,YAAY,OAAgB;QAC1B,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;QAClC,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IACpD,CAAC;CACF"}
|
@@ -57,6 +57,7 @@ local parentData
|
|
57
57
|
|
58
58
|
-- Includes
|
59
59
|
--- @include "includes/destructureJobKey"
|
60
|
+
--- @include "includes/trimEvents"
|
60
61
|
|
61
62
|
if parentKey ~= nil then
|
62
63
|
if rcall("EXISTS", parentKey) ~= 1 then
|
@@ -173,7 +174,6 @@ if parentDependenciesKey ~= nil then
|
|
173
174
|
rcall("SADD", parentDependenciesKey, jobIdKey)
|
174
175
|
end
|
175
176
|
|
176
|
-
|
177
|
-
if (maxEvents) then rcall("XTRIM", KEYS[8], "MAXLEN", "~", maxEvents) end
|
177
|
+
trimEvents(KEYS[3], KEYS[8])
|
178
178
|
|
179
179
|
return jobId .. "" -- convert to string
|
@@ -0,0 +1,12 @@
|
|
1
|
+
--[[
|
2
|
+
Function to trim events, default 10000.
|
3
|
+
]]
|
4
|
+
|
5
|
+
local function trimEvents(metaKey, eventStreamKey)
|
6
|
+
local maxEvents = rcall("HGET", metaKey, "opts.maxLenEvents")
|
7
|
+
if (maxEvents) then
|
8
|
+
rcall("XTRIM", eventStreamKey, "MAXLEN", "~", maxEvents)
|
9
|
+
else
|
10
|
+
rcall("XTRIM", eventStreamKey, "MAXLEN", "~", 10000)
|
11
|
+
end
|
12
|
+
end
|
@@ -25,6 +25,7 @@ local rcall = redis.call
|
|
25
25
|
|
26
26
|
-- Includes
|
27
27
|
--- @include "includes/batches"
|
28
|
+
--- @include "includes/trimEvents"
|
28
29
|
|
29
30
|
-- Check if we need to check for stalled jobs now.
|
30
31
|
if rcall("EXISTS", KEYS[5]) == 1 then return {{}, {}} end
|
@@ -96,7 +97,6 @@ if (#active > 0) then
|
|
96
97
|
end
|
97
98
|
end
|
98
99
|
|
99
|
-
|
100
|
-
if maxEvents then rcall("XTRIM", KEYS[8], "MAXLEN", "~", maxEvents) end
|
100
|
+
trimEvents(KEYS[6], KEYS[8])
|
101
101
|
|
102
102
|
return {failed, stalled}
|
@@ -47,6 +47,7 @@ local rcall = redis.call
|
|
47
47
|
--- @include "includes/updateParentDepsIfNeeded"
|
48
48
|
--- @include "includes/destructureJobKey"
|
49
49
|
--- @include "includes/removeJob"
|
50
|
+
--- @include "includes/trimEvents"
|
50
51
|
|
51
52
|
local jobIdKey = KEYS[3]
|
52
53
|
if rcall("EXISTS", jobIdKey) == 1 then -- // Make sure job exists
|
@@ -75,11 +76,7 @@ if rcall("EXISTS", jobIdKey) == 1 then -- // Make sure job exists
|
|
75
76
|
end
|
76
77
|
|
77
78
|
-- Trim events before emiting them to avoid trimming events emitted in this script
|
78
|
-
|
79
|
-
if (maxEvents == false) then
|
80
|
-
maxEvents = 10000
|
81
|
-
end
|
82
|
-
rcall("XTRIM", KEYS[6], "MAXLEN", "~", maxEvents)
|
79
|
+
trimEvents(KEYS[7], KEYS[6])
|
83
80
|
|
84
81
|
-- If job has a parent we need to
|
85
82
|
-- 1) remove this job id from parents dependencies
|
@@ -8,6 +8,7 @@
|
|
8
8
|
KEYS[4] wait state key
|
9
9
|
|
10
10
|
ARGV[1] count
|
11
|
+
ARGV[2] timestamp
|
11
12
|
|
12
13
|
Output:
|
13
14
|
1 means the operation is not completed
|
@@ -15,6 +16,7 @@
|
|
15
16
|
]]
|
16
17
|
local baseKey = KEYS[1]
|
17
18
|
local maxCount = tonumber(ARGV[1])
|
19
|
+
local timestamp = tonumber(ARGV[2])
|
18
20
|
|
19
21
|
local rcall = redis.call;
|
20
22
|
|
@@ -22,8 +24,7 @@ local rcall = redis.call;
|
|
22
24
|
--- @include "includes/batches"
|
23
25
|
--- @include "includes/getZSetItems"
|
24
26
|
|
25
|
-
local jobs =
|
26
|
-
|
27
|
+
local jobs = rcall('ZRANGEBYSCORE', KEYS[3], 0, timestamp, 'LIMIT', 0, maxCount)
|
27
28
|
if (#jobs > 0) then
|
28
29
|
for i, key in ipairs(jobs) do
|
29
30
|
local jobKey = baseKey .. key
|