bullmq 1.77.0 → 1.77.3
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/commands/addJob-9.lua +3 -2
- package/dist/cjs/commands/cleanJobsInSet-2.lua +14 -4
- package/dist/cjs/commands/includes/removeJob.lua +1 -1
- package/dist/cjs/commands/includes/removeParentDependencyKey.lua +34 -5
- package/dist/cjs/commands/includes/trimEvents.lua +1 -1
- package/dist/cjs/commands/moveStalledJobsToWait-8.lua +3 -2
- package/dist/cjs/commands/removeJob-1.lua +23 -14
- package/dist/cjs/utils.js +13 -8
- package/dist/cjs/utils.js.map +1 -1
- package/dist/esm/commands/addJob-9.lua +3 -2
- package/dist/esm/commands/cleanJobsInSet-2.lua +14 -4
- package/dist/esm/commands/includes/removeJob.lua +1 -1
- package/dist/esm/commands/includes/removeParentDependencyKey.lua +34 -5
- package/dist/esm/commands/includes/trimEvents.lua +1 -1
- package/dist/esm/commands/moveStalledJobsToWait-8.lua +3 -2
- package/dist/esm/commands/removeJob-1.lua +23 -14
- package/dist/esm/utils.js +13 -8
- package/dist/esm/utils.js.map +1 -1
- package/package.json +1 -1
@@ -77,6 +77,9 @@ local jobCounter = rcall("INCR", KEYS[4])
|
|
77
77
|
-- Includes
|
78
78
|
--- @include "includes/updateParentDepsIfNeeded"
|
79
79
|
|
80
|
+
-- Trim events before emiting them to avoid trimming events emitted in this script
|
81
|
+
trimEvents(KEYS[3], KEYS[8])
|
82
|
+
|
80
83
|
local parentDependenciesKey = args[7]
|
81
84
|
if args[2] == "" then
|
82
85
|
jobId = jobCounter
|
@@ -174,6 +177,4 @@ if parentDependenciesKey ~= nil then
|
|
174
177
|
rcall("SADD", parentDependenciesKey, jobIdKey)
|
175
178
|
end
|
176
179
|
|
177
|
-
trimEvents(KEYS[3], KEYS[8])
|
178
|
-
|
179
180
|
return jobId .. "" -- convert to string
|
@@ -42,8 +42,10 @@ local jobs = rcall(command, KEYS[1], rangeStart, rangeEnd)
|
|
42
42
|
local deleted = {}
|
43
43
|
local deletedCount = 0
|
44
44
|
local jobTS
|
45
|
+
local deletionMarker = ''
|
46
|
+
local jobIdsLen = #jobs
|
45
47
|
if ARGV[4] == "active" then
|
46
|
-
for
|
48
|
+
for i, job in ipairs(jobs) do
|
47
49
|
if limit > 0 and deletedCount >= limit then
|
48
50
|
break
|
49
51
|
end
|
@@ -52,7 +54,9 @@ if ARGV[4] == "active" then
|
|
52
54
|
if (rcall("EXISTS", jobKey .. ":lock") == 0) then
|
53
55
|
jobTS = rcall("HGET", jobKey, "timestamp")
|
54
56
|
if (not jobTS or jobTS < ARGV[2]) then
|
55
|
-
|
57
|
+
-- replace the entry with a deletion marker; the actual deletion will
|
58
|
+
-- occur at the end of the script
|
59
|
+
rcall("LSET", KEYS[1], rangeEnd - jobIdsLen + i, deletionMarker)
|
56
60
|
removeJob(job, true, ARGV[1])
|
57
61
|
deletedCount = deletedCount + 1
|
58
62
|
table.insert(deleted, job)
|
@@ -60,7 +64,7 @@ if ARGV[4] == "active" then
|
|
60
64
|
end
|
61
65
|
end
|
62
66
|
else
|
63
|
-
for
|
67
|
+
for i, job in ipairs(jobs) do
|
64
68
|
if limit > 0 and deletedCount >= limit then
|
65
69
|
break
|
66
70
|
end
|
@@ -69,7 +73,9 @@ else
|
|
69
73
|
jobTS = rcall("HGET", jobKey, "timestamp")
|
70
74
|
if (not jobTS or jobTS < ARGV[2]) then
|
71
75
|
if isList then
|
72
|
-
|
76
|
+
-- replace the entry with a deletion marker; the actual deletion will
|
77
|
+
-- occur at the end of the script
|
78
|
+
rcall("LSET", KEYS[1], rangeEnd - jobIdsLen + i, deletionMarker)
|
73
79
|
end
|
74
80
|
removeJob(job, true, ARGV[1])
|
75
81
|
deletedCount = deletedCount + 1
|
@@ -86,6 +92,10 @@ else
|
|
86
92
|
end
|
87
93
|
end
|
88
94
|
|
95
|
+
if isList then
|
96
|
+
rcall("LREM", KEYS[1], 0, deletionMarker)
|
97
|
+
end
|
98
|
+
|
89
99
|
rcall("XADD", KEYS[2], "*", "event", "cleaned", "count", deletedCount)
|
90
100
|
|
91
101
|
return deleted
|
@@ -7,7 +7,7 @@
|
|
7
7
|
|
8
8
|
local function removeJob(key, hard, baseKey)
|
9
9
|
local jobKey = baseKey .. key
|
10
|
-
removeParentDependencyKey(jobKey, hard, baseKey)
|
10
|
+
removeParentDependencyKey(jobKey, hard, nil, baseKey)
|
11
11
|
rcall("DEL", jobKey, jobKey .. ':logs',
|
12
12
|
jobKey .. ':dependencies', jobKey .. ':processed')
|
13
13
|
end
|
@@ -19,9 +19,10 @@ local function moveParentToWait(parentPrefix, parentId, emitEvent)
|
|
19
19
|
end
|
20
20
|
end
|
21
21
|
|
22
|
-
local function removeParentDependencyKey(jobKey, hard, baseKey)
|
23
|
-
|
24
|
-
|
22
|
+
local function removeParentDependencyKey(jobKey, hard, parentKey, baseKey)
|
23
|
+
if parentKey then
|
24
|
+
local parentProcessedKey = parentKey .. ":processed"
|
25
|
+
rcall("HDEL", parentProcessedKey, jobKey)
|
25
26
|
local parentDependenciesKey = parentKey .. ":dependencies"
|
26
27
|
local result = rcall("SREM", parentDependenciesKey, jobKey)
|
27
28
|
if result > 0 then
|
@@ -34,7 +35,7 @@ local function removeParentDependencyKey(jobKey, hard, baseKey)
|
|
34
35
|
|
35
36
|
if hard then
|
36
37
|
if parentPrefix == baseKey then
|
37
|
-
removeParentDependencyKey(parentKey, hard, baseKey)
|
38
|
+
removeParentDependencyKey(parentKey, hard, nil, baseKey)
|
38
39
|
rcall("DEL", parentKey, parentKey .. ':logs',
|
39
40
|
parentKey .. ':dependencies', parentKey .. ':processed')
|
40
41
|
else
|
@@ -45,6 +46,34 @@ local function removeParentDependencyKey(jobKey, hard, baseKey)
|
|
45
46
|
end
|
46
47
|
end
|
47
48
|
end
|
49
|
+
else
|
50
|
+
local missedParentKey = rcall("HGET", jobKey, "parentKey")
|
51
|
+
if( (type(missedParentKey) == "string") and missedParentKey ~= "" and (rcall("EXISTS", missedParentKey) == 1)) then
|
52
|
+
local parentProcessedKey = missedParentKey .. ":processed"
|
53
|
+
rcall("HDEL", parentProcessedKey, jobKey)
|
54
|
+
local parentDependenciesKey = missedParentKey .. ":dependencies"
|
55
|
+
local result = rcall("SREM", parentDependenciesKey, jobKey)
|
56
|
+
if result > 0 then
|
57
|
+
local pendingDependencies = rcall("SCARD", parentDependenciesKey)
|
58
|
+
if pendingDependencies == 0 then
|
59
|
+
local parentId = getJobIdFromKey(missedParentKey)
|
60
|
+
local parentPrefix = getJobKeyPrefix(missedParentKey, parentId)
|
61
|
+
|
62
|
+
rcall("ZREM", parentPrefix .. "waiting-children", parentId)
|
63
|
+
|
64
|
+
if hard then
|
65
|
+
if parentPrefix == baseKey then
|
66
|
+
removeParentDependencyKey(missedParentKey, hard, nil, baseKey)
|
67
|
+
rcall("DEL", missedParentKey, missedParentKey .. ':logs',
|
68
|
+
missedParentKey .. ':dependencies', missedParentKey .. ':processed')
|
69
|
+
else
|
70
|
+
moveParentToWait(parentPrefix, parentId)
|
71
|
+
end
|
72
|
+
else
|
73
|
+
moveParentToWait(parentPrefix, parentId, true)
|
74
|
+
end
|
75
|
+
end
|
76
|
+
end
|
77
|
+
end
|
48
78
|
end
|
49
79
|
end
|
50
|
-
|
@@ -4,7 +4,7 @@
|
|
4
4
|
|
5
5
|
local function trimEvents(metaKey, eventStreamKey)
|
6
6
|
local maxEvents = rcall("HGET", metaKey, "opts.maxLenEvents")
|
7
|
-
if
|
7
|
+
if maxEvents ~= false then
|
8
8
|
rcall("XTRIM", eventStreamKey, "MAXLEN", "~", maxEvents)
|
9
9
|
else
|
10
10
|
rcall("XTRIM", eventStreamKey, "MAXLEN", "~", 10000)
|
@@ -32,6 +32,9 @@ if rcall("EXISTS", KEYS[5]) == 1 then return {{}, {}} end
|
|
32
32
|
|
33
33
|
rcall("SET", KEYS[5], ARGV[3], "PX", ARGV[4])
|
34
34
|
|
35
|
+
-- Trim events before emiting them to avoid trimming events emitted in this script
|
36
|
+
trimEvents(KEYS[6], KEYS[8])
|
37
|
+
|
35
38
|
-- Move all stalled jobs to wait
|
36
39
|
local stalling = rcall('SMEMBERS', KEYS[1])
|
37
40
|
local stalled = {}
|
@@ -97,6 +100,4 @@ if (#active > 0) then
|
|
97
100
|
end
|
98
101
|
end
|
99
102
|
|
100
|
-
trimEvents(KEYS[6], KEYS[8])
|
101
|
-
|
102
103
|
return {failed, stalled}
|
@@ -42,35 +42,44 @@ local function isLocked( prefix, jobId)
|
|
42
42
|
return true
|
43
43
|
end
|
44
44
|
|
45
|
-
local function removeJob( prefix, jobId)
|
45
|
+
local function removeJob( prefix, jobId, parentKey)
|
46
46
|
local jobKey = prefix .. jobId;
|
47
47
|
|
48
|
-
removeParentDependencyKey(jobKey)
|
49
|
-
|
50
|
-
rcall("LREM", prefix .. "active", 0, jobId)
|
51
|
-
rcall("LREM", prefix .. "wait", 0, jobId)
|
52
|
-
rcall("ZREM", prefix .. "delayed", jobId)
|
53
|
-
rcall("LREM", prefix .. "paused", 0, jobId)
|
54
|
-
rcall("ZREM", prefix .. "completed", jobId)
|
55
|
-
rcall("ZREM", prefix .. "failed", jobId)
|
56
|
-
rcall("ZREM", prefix .. "priority", jobId)
|
57
|
-
rcall("ZREM", prefix .. "waiting-children", jobId)
|
58
|
-
rcall("DEL", jobKey, jobKey .. ":logs", jobKey .. ":processed")
|
48
|
+
removeParentDependencyKey(jobKey, false, parentKey)
|
59
49
|
|
60
50
|
-- Check if this job has children
|
61
51
|
-- If so, we are going to try to remove the children recursively in deep first way because
|
62
52
|
-- if some job is locked we must exit with and error.
|
53
|
+
--local countProcessed = rcall("HLEN", jobKey .. ":processed")
|
54
|
+
local processed = rcall("HGETALL", jobKey .. ":processed")
|
55
|
+
|
56
|
+
if (#processed > 0) then
|
57
|
+
for i = 1, #processed, 2 do
|
58
|
+
local childJobId = getJobIdFromKey(processed[i])
|
59
|
+
local childJobPrefix = getJobKeyPrefix(processed[i], childJobId)
|
60
|
+
removeJob( childJobPrefix, childJobId, jobKey )
|
61
|
+
end
|
62
|
+
end
|
63
|
+
|
63
64
|
local dependencies = rcall("SMEMBERS", jobKey .. ":dependencies")
|
64
65
|
if (#dependencies > 0) then
|
65
66
|
for i, childJobKey in ipairs(dependencies) do
|
66
67
|
-- We need to get the jobId for this job.
|
67
68
|
local childJobId = getJobIdFromKey(childJobKey)
|
68
69
|
local childJobPrefix = getJobKeyPrefix(childJobKey, childJobId)
|
69
|
-
removeJob( childJobPrefix, childJobId )
|
70
|
+
removeJob( childJobPrefix, childJobId, jobKey )
|
70
71
|
end
|
71
72
|
end
|
72
73
|
|
73
|
-
rcall("
|
74
|
+
rcall("LREM", prefix .. "active", 0, jobId)
|
75
|
+
rcall("LREM", prefix .. "wait", 0, jobId)
|
76
|
+
rcall("ZREM", prefix .. "delayed", jobId)
|
77
|
+
rcall("LREM", prefix .. "paused", 0, jobId)
|
78
|
+
rcall("ZREM", prefix .. "completed", jobId)
|
79
|
+
rcall("ZREM", prefix .. "failed", jobId)
|
80
|
+
rcall("ZREM", prefix .. "priority", jobId)
|
81
|
+
rcall("ZREM", prefix .. "waiting-children", jobId)
|
82
|
+
rcall("DEL", jobKey, jobKey .. ":logs", jobKey .. ":dependencies", jobKey .. ":processed")
|
74
83
|
|
75
84
|
-- -- delete keys related to rate limiter
|
76
85
|
-- local limiterIndexTable = KEYS[10] .. ":index"
|
package/dist/cjs/utils.js
CHANGED
@@ -112,14 +112,19 @@ function isNotConnectionError(error) {
|
|
112
112
|
exports.isNotConnectionError = isNotConnectionError;
|
113
113
|
exports.asyncSend = (proc, msg) => {
|
114
114
|
return new Promise((resolve, reject) => {
|
115
|
-
proc.send
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
115
|
+
if (typeof proc.send === 'function') {
|
116
|
+
proc.send(msg, (err) => {
|
117
|
+
if (err) {
|
118
|
+
reject(err);
|
119
|
+
}
|
120
|
+
else {
|
121
|
+
resolve();
|
122
|
+
}
|
123
|
+
});
|
124
|
+
}
|
125
|
+
else {
|
126
|
+
resolve();
|
127
|
+
}
|
123
128
|
});
|
124
129
|
};
|
125
130
|
exports.childSend = (proc, msg) => exports.asyncSend(proc, msg);
|
package/dist/cjs/utils.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"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
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"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"}
|
@@ -77,6 +77,9 @@ local jobCounter = rcall("INCR", KEYS[4])
|
|
77
77
|
-- Includes
|
78
78
|
--- @include "includes/updateParentDepsIfNeeded"
|
79
79
|
|
80
|
+
-- Trim events before emiting them to avoid trimming events emitted in this script
|
81
|
+
trimEvents(KEYS[3], KEYS[8])
|
82
|
+
|
80
83
|
local parentDependenciesKey = args[7]
|
81
84
|
if args[2] == "" then
|
82
85
|
jobId = jobCounter
|
@@ -174,6 +177,4 @@ if parentDependenciesKey ~= nil then
|
|
174
177
|
rcall("SADD", parentDependenciesKey, jobIdKey)
|
175
178
|
end
|
176
179
|
|
177
|
-
trimEvents(KEYS[3], KEYS[8])
|
178
|
-
|
179
180
|
return jobId .. "" -- convert to string
|
@@ -42,8 +42,10 @@ local jobs = rcall(command, KEYS[1], rangeStart, rangeEnd)
|
|
42
42
|
local deleted = {}
|
43
43
|
local deletedCount = 0
|
44
44
|
local jobTS
|
45
|
+
local deletionMarker = ''
|
46
|
+
local jobIdsLen = #jobs
|
45
47
|
if ARGV[4] == "active" then
|
46
|
-
for
|
48
|
+
for i, job in ipairs(jobs) do
|
47
49
|
if limit > 0 and deletedCount >= limit then
|
48
50
|
break
|
49
51
|
end
|
@@ -52,7 +54,9 @@ if ARGV[4] == "active" then
|
|
52
54
|
if (rcall("EXISTS", jobKey .. ":lock") == 0) then
|
53
55
|
jobTS = rcall("HGET", jobKey, "timestamp")
|
54
56
|
if (not jobTS or jobTS < ARGV[2]) then
|
55
|
-
|
57
|
+
-- replace the entry with a deletion marker; the actual deletion will
|
58
|
+
-- occur at the end of the script
|
59
|
+
rcall("LSET", KEYS[1], rangeEnd - jobIdsLen + i, deletionMarker)
|
56
60
|
removeJob(job, true, ARGV[1])
|
57
61
|
deletedCount = deletedCount + 1
|
58
62
|
table.insert(deleted, job)
|
@@ -60,7 +64,7 @@ if ARGV[4] == "active" then
|
|
60
64
|
end
|
61
65
|
end
|
62
66
|
else
|
63
|
-
for
|
67
|
+
for i, job in ipairs(jobs) do
|
64
68
|
if limit > 0 and deletedCount >= limit then
|
65
69
|
break
|
66
70
|
end
|
@@ -69,7 +73,9 @@ else
|
|
69
73
|
jobTS = rcall("HGET", jobKey, "timestamp")
|
70
74
|
if (not jobTS or jobTS < ARGV[2]) then
|
71
75
|
if isList then
|
72
|
-
|
76
|
+
-- replace the entry with a deletion marker; the actual deletion will
|
77
|
+
-- occur at the end of the script
|
78
|
+
rcall("LSET", KEYS[1], rangeEnd - jobIdsLen + i, deletionMarker)
|
73
79
|
end
|
74
80
|
removeJob(job, true, ARGV[1])
|
75
81
|
deletedCount = deletedCount + 1
|
@@ -86,6 +92,10 @@ else
|
|
86
92
|
end
|
87
93
|
end
|
88
94
|
|
95
|
+
if isList then
|
96
|
+
rcall("LREM", KEYS[1], 0, deletionMarker)
|
97
|
+
end
|
98
|
+
|
89
99
|
rcall("XADD", KEYS[2], "*", "event", "cleaned", "count", deletedCount)
|
90
100
|
|
91
101
|
return deleted
|
@@ -7,7 +7,7 @@
|
|
7
7
|
|
8
8
|
local function removeJob(key, hard, baseKey)
|
9
9
|
local jobKey = baseKey .. key
|
10
|
-
removeParentDependencyKey(jobKey, hard, baseKey)
|
10
|
+
removeParentDependencyKey(jobKey, hard, nil, baseKey)
|
11
11
|
rcall("DEL", jobKey, jobKey .. ':logs',
|
12
12
|
jobKey .. ':dependencies', jobKey .. ':processed')
|
13
13
|
end
|
@@ -19,9 +19,10 @@ local function moveParentToWait(parentPrefix, parentId, emitEvent)
|
|
19
19
|
end
|
20
20
|
end
|
21
21
|
|
22
|
-
local function removeParentDependencyKey(jobKey, hard, baseKey)
|
23
|
-
|
24
|
-
|
22
|
+
local function removeParentDependencyKey(jobKey, hard, parentKey, baseKey)
|
23
|
+
if parentKey then
|
24
|
+
local parentProcessedKey = parentKey .. ":processed"
|
25
|
+
rcall("HDEL", parentProcessedKey, jobKey)
|
25
26
|
local parentDependenciesKey = parentKey .. ":dependencies"
|
26
27
|
local result = rcall("SREM", parentDependenciesKey, jobKey)
|
27
28
|
if result > 0 then
|
@@ -34,7 +35,7 @@ local function removeParentDependencyKey(jobKey, hard, baseKey)
|
|
34
35
|
|
35
36
|
if hard then
|
36
37
|
if parentPrefix == baseKey then
|
37
|
-
removeParentDependencyKey(parentKey, hard, baseKey)
|
38
|
+
removeParentDependencyKey(parentKey, hard, nil, baseKey)
|
38
39
|
rcall("DEL", parentKey, parentKey .. ':logs',
|
39
40
|
parentKey .. ':dependencies', parentKey .. ':processed')
|
40
41
|
else
|
@@ -45,6 +46,34 @@ local function removeParentDependencyKey(jobKey, hard, baseKey)
|
|
45
46
|
end
|
46
47
|
end
|
47
48
|
end
|
49
|
+
else
|
50
|
+
local missedParentKey = rcall("HGET", jobKey, "parentKey")
|
51
|
+
if( (type(missedParentKey) == "string") and missedParentKey ~= "" and (rcall("EXISTS", missedParentKey) == 1)) then
|
52
|
+
local parentProcessedKey = missedParentKey .. ":processed"
|
53
|
+
rcall("HDEL", parentProcessedKey, jobKey)
|
54
|
+
local parentDependenciesKey = missedParentKey .. ":dependencies"
|
55
|
+
local result = rcall("SREM", parentDependenciesKey, jobKey)
|
56
|
+
if result > 0 then
|
57
|
+
local pendingDependencies = rcall("SCARD", parentDependenciesKey)
|
58
|
+
if pendingDependencies == 0 then
|
59
|
+
local parentId = getJobIdFromKey(missedParentKey)
|
60
|
+
local parentPrefix = getJobKeyPrefix(missedParentKey, parentId)
|
61
|
+
|
62
|
+
rcall("ZREM", parentPrefix .. "waiting-children", parentId)
|
63
|
+
|
64
|
+
if hard then
|
65
|
+
if parentPrefix == baseKey then
|
66
|
+
removeParentDependencyKey(missedParentKey, hard, nil, baseKey)
|
67
|
+
rcall("DEL", missedParentKey, missedParentKey .. ':logs',
|
68
|
+
missedParentKey .. ':dependencies', missedParentKey .. ':processed')
|
69
|
+
else
|
70
|
+
moveParentToWait(parentPrefix, parentId)
|
71
|
+
end
|
72
|
+
else
|
73
|
+
moveParentToWait(parentPrefix, parentId, true)
|
74
|
+
end
|
75
|
+
end
|
76
|
+
end
|
77
|
+
end
|
48
78
|
end
|
49
79
|
end
|
50
|
-
|
@@ -4,7 +4,7 @@
|
|
4
4
|
|
5
5
|
local function trimEvents(metaKey, eventStreamKey)
|
6
6
|
local maxEvents = rcall("HGET", metaKey, "opts.maxLenEvents")
|
7
|
-
if
|
7
|
+
if maxEvents ~= false then
|
8
8
|
rcall("XTRIM", eventStreamKey, "MAXLEN", "~", maxEvents)
|
9
9
|
else
|
10
10
|
rcall("XTRIM", eventStreamKey, "MAXLEN", "~", 10000)
|
@@ -32,6 +32,9 @@ if rcall("EXISTS", KEYS[5]) == 1 then return {{}, {}} end
|
|
32
32
|
|
33
33
|
rcall("SET", KEYS[5], ARGV[3], "PX", ARGV[4])
|
34
34
|
|
35
|
+
-- Trim events before emiting them to avoid trimming events emitted in this script
|
36
|
+
trimEvents(KEYS[6], KEYS[8])
|
37
|
+
|
35
38
|
-- Move all stalled jobs to wait
|
36
39
|
local stalling = rcall('SMEMBERS', KEYS[1])
|
37
40
|
local stalled = {}
|
@@ -97,6 +100,4 @@ if (#active > 0) then
|
|
97
100
|
end
|
98
101
|
end
|
99
102
|
|
100
|
-
trimEvents(KEYS[6], KEYS[8])
|
101
|
-
|
102
103
|
return {failed, stalled}
|
@@ -42,35 +42,44 @@ local function isLocked( prefix, jobId)
|
|
42
42
|
return true
|
43
43
|
end
|
44
44
|
|
45
|
-
local function removeJob( prefix, jobId)
|
45
|
+
local function removeJob( prefix, jobId, parentKey)
|
46
46
|
local jobKey = prefix .. jobId;
|
47
47
|
|
48
|
-
removeParentDependencyKey(jobKey)
|
49
|
-
|
50
|
-
rcall("LREM", prefix .. "active", 0, jobId)
|
51
|
-
rcall("LREM", prefix .. "wait", 0, jobId)
|
52
|
-
rcall("ZREM", prefix .. "delayed", jobId)
|
53
|
-
rcall("LREM", prefix .. "paused", 0, jobId)
|
54
|
-
rcall("ZREM", prefix .. "completed", jobId)
|
55
|
-
rcall("ZREM", prefix .. "failed", jobId)
|
56
|
-
rcall("ZREM", prefix .. "priority", jobId)
|
57
|
-
rcall("ZREM", prefix .. "waiting-children", jobId)
|
58
|
-
rcall("DEL", jobKey, jobKey .. ":logs", jobKey .. ":processed")
|
48
|
+
removeParentDependencyKey(jobKey, false, parentKey)
|
59
49
|
|
60
50
|
-- Check if this job has children
|
61
51
|
-- If so, we are going to try to remove the children recursively in deep first way because
|
62
52
|
-- if some job is locked we must exit with and error.
|
53
|
+
--local countProcessed = rcall("HLEN", jobKey .. ":processed")
|
54
|
+
local processed = rcall("HGETALL", jobKey .. ":processed")
|
55
|
+
|
56
|
+
if (#processed > 0) then
|
57
|
+
for i = 1, #processed, 2 do
|
58
|
+
local childJobId = getJobIdFromKey(processed[i])
|
59
|
+
local childJobPrefix = getJobKeyPrefix(processed[i], childJobId)
|
60
|
+
removeJob( childJobPrefix, childJobId, jobKey )
|
61
|
+
end
|
62
|
+
end
|
63
|
+
|
63
64
|
local dependencies = rcall("SMEMBERS", jobKey .. ":dependencies")
|
64
65
|
if (#dependencies > 0) then
|
65
66
|
for i, childJobKey in ipairs(dependencies) do
|
66
67
|
-- We need to get the jobId for this job.
|
67
68
|
local childJobId = getJobIdFromKey(childJobKey)
|
68
69
|
local childJobPrefix = getJobKeyPrefix(childJobKey, childJobId)
|
69
|
-
removeJob( childJobPrefix, childJobId )
|
70
|
+
removeJob( childJobPrefix, childJobId, jobKey )
|
70
71
|
end
|
71
72
|
end
|
72
73
|
|
73
|
-
rcall("
|
74
|
+
rcall("LREM", prefix .. "active", 0, jobId)
|
75
|
+
rcall("LREM", prefix .. "wait", 0, jobId)
|
76
|
+
rcall("ZREM", prefix .. "delayed", jobId)
|
77
|
+
rcall("LREM", prefix .. "paused", 0, jobId)
|
78
|
+
rcall("ZREM", prefix .. "completed", jobId)
|
79
|
+
rcall("ZREM", prefix .. "failed", jobId)
|
80
|
+
rcall("ZREM", prefix .. "priority", jobId)
|
81
|
+
rcall("ZREM", prefix .. "waiting-children", jobId)
|
82
|
+
rcall("DEL", jobKey, jobKey .. ":logs", jobKey .. ":dependencies", jobKey .. ":processed")
|
74
83
|
|
75
84
|
-- -- delete keys related to rate limiter
|
76
85
|
-- local limiterIndexTable = KEYS[10] .. ":index"
|
package/dist/esm/utils.js
CHANGED
@@ -99,14 +99,19 @@ export function isNotConnectionError(error) {
|
|
99
99
|
}
|
100
100
|
export const asyncSend = (proc, msg) => {
|
101
101
|
return new Promise((resolve, reject) => {
|
102
|
-
proc.send
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
102
|
+
if (typeof proc.send === 'function') {
|
103
|
+
proc.send(msg, (err) => {
|
104
|
+
if (err) {
|
105
|
+
reject(err);
|
106
|
+
}
|
107
|
+
else {
|
108
|
+
resolve();
|
109
|
+
}
|
110
|
+
});
|
111
|
+
}
|
112
|
+
else {
|
113
|
+
resolve();
|
114
|
+
}
|
110
115
|
});
|
111
116
|
};
|
112
117
|
export const childSend = (proc, msg) => asyncSend(proc, msg);
|
package/dist/esm/utils.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"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
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"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"}
|