bullmq 1.66.1 → 1.67.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/bullmq.d.ts +30 -9
- package/dist/cjs/classes/job.d.ts +2 -1
- package/dist/cjs/classes/job.js +3 -3
- package/dist/cjs/classes/job.js.map +1 -1
- package/dist/cjs/classes/queue-getters.js +1 -1
- package/dist/cjs/classes/queue-getters.js.map +1 -1
- package/dist/cjs/classes/repeat.js +1 -1
- package/dist/cjs/classes/repeat.js.map +1 -1
- package/dist/cjs/classes/scripts.d.ts +5 -5
- package/dist/cjs/classes/scripts.js +12 -10
- package/dist/cjs/classes/scripts.js.map +1 -1
- package/dist/cjs/commands/drain-4.lua +4 -17
- package/dist/cjs/commands/includes/removeJobs.lua +40 -0
- package/dist/cjs/commands/includes/removeParentDependencyKey.lua +33 -13
- package/dist/cjs/commands/moveToFinished-8.lua +52 -38
- package/dist/cjs/commands/obliterate-2.lua +37 -80
- package/dist/cjs/commands/reprocessJob-4.lua +3 -1
- package/dist/cjs/interfaces/index.d.ts +1 -0
- package/dist/cjs/interfaces/index.js +1 -0
- package/dist/cjs/interfaces/index.js.map +1 -1
- package/dist/cjs/interfaces/jobs-options.d.ts +7 -6
- package/dist/cjs/interfaces/keep-jobs.d.ts +17 -0
- package/dist/cjs/interfaces/keep-jobs.js +3 -0
- package/dist/cjs/interfaces/keep-jobs.js.map +1 -0
- package/dist/esm/classes/job.d.ts +2 -1
- package/dist/esm/classes/job.js +3 -3
- package/dist/esm/classes/job.js.map +1 -1
- package/dist/esm/classes/queue-getters.js +1 -1
- package/dist/esm/classes/queue-getters.js.map +1 -1
- package/dist/esm/classes/repeat.js +1 -1
- package/dist/esm/classes/repeat.js.map +1 -1
- package/dist/esm/classes/scripts.d.ts +5 -5
- package/dist/esm/classes/scripts.js +12 -10
- package/dist/esm/classes/scripts.js.map +1 -1
- package/dist/esm/commands/drain-4.lua +4 -17
- package/dist/esm/commands/includes/removeJobs.lua +40 -0
- package/dist/esm/commands/includes/removeParentDependencyKey.lua +33 -13
- package/dist/esm/commands/moveToFinished-8.lua +52 -38
- package/dist/esm/commands/obliterate-2.lua +37 -80
- package/dist/esm/commands/reprocessJob-4.lua +3 -1
- package/dist/esm/interfaces/index.d.ts +1 -0
- package/dist/esm/interfaces/index.js +1 -0
- package/dist/esm/interfaces/index.js.map +1 -1
- package/dist/esm/interfaces/jobs-options.d.ts +7 -6
- package/dist/esm/interfaces/keep-jobs.d.ts +17 -0
- package/dist/esm/interfaces/keep-jobs.js +1 -0
- package/dist/esm/interfaces/keep-jobs.js.map +1 -0
- package/package.json +1 -1
@@ -1,7 +1,7 @@
|
|
1
1
|
/**
|
2
2
|
* Includes all the scripts needed by the queue and jobs.
|
3
3
|
*/
|
4
|
-
import { JobJson, JobJsonRaw, JobsOptions, RedisClient } from '../interfaces';
|
4
|
+
import { JobJson, JobJsonRaw, JobsOptions, RedisClient, KeepJobs } from '../interfaces';
|
5
5
|
import { JobState, FinishedTarget, FinishedPropValAttribute } from '../types';
|
6
6
|
import { Worker } from './worker';
|
7
7
|
import { QueueScheduler } from './queue-scheduler';
|
@@ -23,13 +23,13 @@ export declare class Scripts {
|
|
23
23
|
static remove(queue: MinimalQueue, jobId: string): Promise<number>;
|
24
24
|
static extendLock(queue: MinimalQueue, jobId: string, token: string, duration: number): Promise<number>;
|
25
25
|
static updateProgress<T = any, R = any, N extends string = string>(queue: MinimalQueue, job: Job<T, R, N>, progress: number | object): Promise<void>;
|
26
|
-
static moveToFinishedArgs<T = any, R = any, N extends string = string>(queue: MinimalQueue, job: Job<T, R, N>, val: any, propVal: FinishedPropValAttribute, shouldRemove: boolean | number, target: FinishedTarget, token: string, fetchNext?: boolean): string[];
|
26
|
+
static moveToFinishedArgs<T = any, R = any, N extends string = string>(queue: MinimalQueue, job: Job<T, R, N>, val: any, propVal: FinishedPropValAttribute, shouldRemove: boolean | number | KeepJobs, target: FinishedTarget, token: string, fetchNext?: boolean): string[];
|
27
27
|
private static moveToFinished;
|
28
28
|
static finishedErrors(code: number, jobId: string, command: string, state?: string): Error;
|
29
|
-
static drainArgs(queue: MinimalQueue, delayed: boolean): string[];
|
29
|
+
static drainArgs(queue: MinimalQueue, delayed: boolean): (string | number)[];
|
30
30
|
static drain(queue: MinimalQueue, delayed: boolean): Promise<void>;
|
31
|
-
static moveToCompleted<T = any, R = any, N extends string = string>(queue: MinimalQueue, job: Job<T, R, N>, returnvalue: any, removeOnComplete: boolean | number, token: string, fetchNext: boolean): Promise<JobData | []>;
|
32
|
-
static moveToFailedArgs<T = any, R = any, N extends string = string>(queue: MinimalQueue, job: Job<T, R, N>, failedReason: string, removeOnFailed: boolean | number, token: string, fetchNext?: boolean, retriesExhausted?: number): string[];
|
31
|
+
static moveToCompleted<T = any, R = any, N extends string = string>(queue: MinimalQueue, job: Job<T, R, N>, returnvalue: any, removeOnComplete: boolean | number | KeepJobs, token: string, fetchNext: boolean): Promise<JobData | []>;
|
32
|
+
static moveToFailedArgs<T = any, R = any, N extends string = string>(queue: MinimalQueue, job: Job<T, R, N>, failedReason: string, removeOnFailed: boolean | number | KeepJobs, token: string, fetchNext?: boolean, retriesExhausted?: number): string[];
|
33
33
|
static isFinished(queue: MinimalQueue, jobId: string, returnValue?: boolean): Promise<number | [number, string]>;
|
34
34
|
static getState(queue: MinimalQueue, jobId: string): Promise<JobState | 'unknown'>;
|
35
35
|
static changeDelay(queue: MinimalQueue, jobId: string, delay: number): Promise<void>;
|
@@ -136,20 +136,18 @@ export class Scripts {
|
|
136
136
|
queueKeys.meta,
|
137
137
|
queueKeys.stalled,
|
138
138
|
];
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
remove = `${shouldRemove + 1}`;
|
145
|
-
}
|
139
|
+
const keepJobs = pack(typeof shouldRemove === 'object'
|
140
|
+
? shouldRemove
|
141
|
+
: typeof shouldRemove === 'number'
|
142
|
+
? { count: shouldRemove }
|
143
|
+
: { count: shouldRemove ? 0 : -1 });
|
146
144
|
const args = [
|
147
145
|
job.id,
|
148
146
|
Date.now(),
|
149
147
|
propVal,
|
150
148
|
typeof val === 'undefined' ? 'null' : val,
|
151
149
|
target,
|
152
|
-
|
150
|
+
keepJobs,
|
153
151
|
JSON.stringify({ jobId: job.id, val: val }),
|
154
152
|
!fetchNext || queue.closing || opts.limiter ? 0 : 1,
|
155
153
|
queueKeys[''],
|
@@ -379,13 +377,17 @@ export class Scripts {
|
|
379
377
|
queue.toKey(state),
|
380
378
|
queue.toKey('wait'),
|
381
379
|
];
|
382
|
-
const args = [
|
380
|
+
const args = [
|
381
|
+
job.id,
|
382
|
+
(job.opts.lifo ? 'R' : 'L') + 'PUSH',
|
383
|
+
state === 'failed' ? 'failedReason' : 'returnvalue',
|
384
|
+
];
|
383
385
|
const result = await client.reprocessJob(keys.concat(args));
|
384
386
|
switch (result) {
|
385
387
|
case 1:
|
386
388
|
return;
|
387
389
|
default:
|
388
|
-
throw this.finishedErrors(result, job.id, 'reprocessJob',
|
390
|
+
throw this.finishedErrors(result, job.id, 'reprocessJob', state);
|
389
391
|
}
|
390
392
|
}
|
391
393
|
static async moveToActive(worker, token, jobId) {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"scripts.js","sourceRoot":"","sources":["../../../src/classes/scripts.ts"],"names":[],"mappings":"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"}
|
1
|
+
{"version":3,"file":"scripts.js","sourceRoot":"","sources":["../../../src/classes/scripts.ts"],"names":[],"mappings":"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"}
|
@@ -13,24 +13,11 @@
|
|
13
13
|
local rcall = redis.call
|
14
14
|
local queueBaseKey = ARGV[1]
|
15
15
|
|
16
|
-
|
17
|
-
for _, id in ipairs(list) do
|
18
|
-
rcall("DEL", queueBaseKey .. id)
|
19
|
-
end
|
20
|
-
end
|
21
|
-
|
22
|
-
local wait_ids = rcall("LRANGE", KEYS[1] , 0, -1)
|
23
|
-
local paused_ids = rcall("LRANGE", KEYS[2] , 0, -1)
|
16
|
+
--- @include "includes/removeJobs"
|
24
17
|
|
25
|
-
|
26
|
-
|
18
|
+
removeListJobs(KEYS[1], true, queueBaseKey, 0) --wait
|
19
|
+
removeListJobs(KEYS[2], true, queueBaseKey, 0) --paused
|
27
20
|
|
28
21
|
if KEYS[3] ~= "" then
|
29
|
-
|
30
|
-
removeJobs(delayed_ids)
|
31
|
-
rcall("DEL", KEYS[3])
|
22
|
+
removeZSetJobs(KEYS[3], true, queueBaseKey, 0) --delayed
|
32
23
|
end
|
33
|
-
|
34
|
-
rcall("DEL", KEYS[1])
|
35
|
-
rcall("DEL", KEYS[2])
|
36
|
-
rcall("DEL", KEYS[4])
|
@@ -0,0 +1,40 @@
|
|
1
|
+
--[[
|
2
|
+
Functions remove jobs.
|
3
|
+
]]
|
4
|
+
local function getListItems(keyName, max)
|
5
|
+
return rcall('LRANGE', keyName, 0, max - 1)
|
6
|
+
end
|
7
|
+
|
8
|
+
local function getZSetItems(keyName, max)
|
9
|
+
return rcall('ZRANGE', keyName, 0, max - 1)
|
10
|
+
end
|
11
|
+
|
12
|
+
--- @include "removeParentDependencyKey"
|
13
|
+
|
14
|
+
local function removeJobs(keys, hard, baseKey, max)
|
15
|
+
for i, key in ipairs(keys) do
|
16
|
+
local jobKey = baseKey .. key
|
17
|
+
removeParentDependencyKey(jobKey, hard, baseKey)
|
18
|
+
rcall("DEL", jobKey)
|
19
|
+
rcall("DEL", jobKey .. ':logs')
|
20
|
+
rcall("DEL", jobKey .. ':dependencies')
|
21
|
+
rcall("DEL", jobKey .. ':processed')
|
22
|
+
end
|
23
|
+
return max - #keys
|
24
|
+
end
|
25
|
+
|
26
|
+
local function removeListJobs(keyName, hard, baseKey, max)
|
27
|
+
local jobs = getListItems(keyName, max)
|
28
|
+
local count = removeJobs(jobs, hard, baseKey, max)
|
29
|
+
rcall("LTRIM", keyName, #jobs, -1)
|
30
|
+
return count
|
31
|
+
end
|
32
|
+
|
33
|
+
local function removeZSetJobs(keyName, hard, baseKey, max)
|
34
|
+
local jobs = getZSetItems(keyName, max)
|
35
|
+
local count = removeJobs(jobs, hard, baseKey, max)
|
36
|
+
if(#jobs > 0) then
|
37
|
+
rcall("ZREM", keyName, unpack(jobs))
|
38
|
+
end
|
39
|
+
return count
|
40
|
+
end
|
@@ -6,25 +6,45 @@
|
|
6
6
|
|
7
7
|
--- @include "destructureJobKey"
|
8
8
|
|
9
|
-
local function
|
9
|
+
local function moveParentToWait(parentPrefix, parentId)
|
10
|
+
if rcall("HEXISTS", parentPrefix .. "meta", "paused") ~= 1 then
|
11
|
+
rcall("RPUSH", parentPrefix .. "wait", parentId)
|
12
|
+
else
|
13
|
+
rcall("RPUSH", parentPrefix .. "paused", parentId)
|
14
|
+
end
|
15
|
+
|
16
|
+
local parentEventStream = parentPrefix .. "events"
|
17
|
+
rcall("XADD", parentEventStream, "*", "event", "active", "jobId", parentId, "prev", "waiting-children")
|
18
|
+
end
|
19
|
+
|
20
|
+
local function removeParentDependencyKey(jobKey, hard, baseKey)
|
10
21
|
local parentKey = rcall("HGET", jobKey, "parentKey")
|
11
22
|
if( (type(parentKey) == "string") and parentKey ~= "" and (rcall("EXISTS", parentKey) == 1)) then
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
23
|
+
local parentDependenciesKey = parentKey .. ":dependencies"
|
24
|
+
local result = rcall("SREM", parentDependenciesKey, jobKey)
|
25
|
+
if result > 0 then
|
26
|
+
local pendingDependencies = rcall("SCARD", parentDependenciesKey)
|
27
|
+
if pendingDependencies == 0 then
|
28
|
+
local parentId = getJobIdFromKey(parentKey)
|
29
|
+
local parentPrefix = getJobKeyPrefix(parentKey, parentId)
|
17
30
|
|
18
|
-
|
31
|
+
rcall("ZREM", parentPrefix .. "waiting-children", parentId)
|
19
32
|
|
20
|
-
|
21
|
-
|
33
|
+
if hard then
|
34
|
+
if parentPrefix == baseKey then
|
35
|
+
removeParentDependencyKey(parentKey, hard, baseKey)
|
36
|
+
rcall("DEL", parentKey)
|
37
|
+
rcall("DEL", parentKey .. ':logs')
|
38
|
+
rcall("DEL", parentKey .. ':dependencies')
|
39
|
+
rcall("DEL", parentKey .. ':processed')
|
22
40
|
else
|
23
|
-
|
41
|
+
moveParentToWait(parentPrefix, parentId)
|
24
42
|
end
|
25
|
-
|
26
|
-
|
27
|
-
|
43
|
+
else
|
44
|
+
moveParentToWait(parentPrefix, parentId)
|
45
|
+
end
|
28
46
|
end
|
47
|
+
end
|
29
48
|
end
|
30
49
|
end
|
50
|
+
|
@@ -49,36 +49,36 @@ local rcall = redis.call
|
|
49
49
|
--- @include "includes/removeParentDependencyKey"
|
50
50
|
|
51
51
|
local jobIdKey = KEYS[3]
|
52
|
-
if rcall("EXISTS",jobIdKey) == 1 then -- // Make sure job exists
|
52
|
+
if rcall("EXISTS", jobIdKey) == 1 then -- // Make sure job exists
|
53
53
|
|
54
54
|
if rcall("SCARD", jobIdKey .. ":dependencies") ~= 0 then -- // Make sure it does not have pending dependencies
|
55
|
-
|
55
|
+
return -4
|
56
56
|
end
|
57
57
|
|
58
58
|
if ARGV[10] ~= "0" then
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
59
|
+
local lockKey = jobIdKey .. ':lock'
|
60
|
+
if rcall("GET", lockKey) == ARGV[10] then
|
61
|
+
rcall("DEL", lockKey)
|
62
|
+
rcall("SREM", KEYS[8], ARGV[1])
|
63
|
+
else
|
64
|
+
return -2
|
65
|
+
end
|
66
66
|
end
|
67
67
|
|
68
68
|
local jobId = ARGV[1]
|
69
|
+
local timestamp = ARGV[2]
|
69
70
|
|
70
71
|
-- Remove from active list (if not active we shall return error)
|
71
72
|
local numRemovedElements = rcall("LREM", KEYS[1], -1, jobId)
|
72
73
|
|
73
|
-
if(numRemovedElements < 1) then
|
74
|
+
if (numRemovedElements < 1) then
|
74
75
|
return -3
|
75
76
|
end
|
76
77
|
|
77
|
-
|
78
78
|
-- Trim events before emiting them to avoid trimming events emitted in this script
|
79
79
|
local maxEvents = rcall("HGET", KEYS[7], "opts.maxLenEvents")
|
80
80
|
if (maxEvents == false) then
|
81
|
-
|
81
|
+
maxEvents = 10000
|
82
82
|
end
|
83
83
|
rcall("XTRIM", KEYS[6], "MAXLEN", "~", maxEvents)
|
84
84
|
|
@@ -91,38 +91,51 @@ if rcall("EXISTS",jobIdKey) == 1 then -- // Make sure job exists
|
|
91
91
|
local parentId = ARGV[12]
|
92
92
|
local parentQueueKey = ARGV[13]
|
93
93
|
if parentId == "" and ARGV[14] ~= "" then
|
94
|
-
|
95
|
-
|
94
|
+
parentId = getJobIdFromKey(ARGV[14])
|
95
|
+
parentQueueKey = getJobKeyPrefix(ARGV[14], ":" .. parentId)
|
96
96
|
end
|
97
97
|
if parentId ~= "" and ARGV[5] == "completed" then
|
98
|
-
local parentKey =
|
98
|
+
local parentKey = parentQueueKey .. ":" .. parentId
|
99
99
|
local dependenciesSet = parentKey .. ":dependencies"
|
100
100
|
local result = rcall("SREM", dependenciesSet, jobIdKey)
|
101
101
|
if result == 1 then
|
102
|
-
|
102
|
+
updateParentDepsIfNeeded(parentKey, parentQueueKey, dependenciesSet,
|
103
|
+
parentId, jobIdKey, ARGV[4])
|
103
104
|
end
|
104
105
|
end
|
105
106
|
|
106
107
|
-- Remove job?
|
107
|
-
local
|
108
|
-
|
108
|
+
local keepJobs = cmsgpack.unpack(ARGV[6])
|
109
|
+
local maxCount = keepJobs['count']
|
110
|
+
local maxAge = keepJobs['age']
|
111
|
+
if maxCount ~= 0 then
|
112
|
+
local targetSet = KEYS[2]
|
109
113
|
-- Add to complete/failed set
|
110
|
-
rcall("ZADD",
|
111
|
-
rcall("HMSET", jobIdKey, ARGV[3], ARGV[4], "finishedOn",
|
112
|
-
ARGV[2]) -- "returnvalue" / "failedReason" and "finishedOn"
|
114
|
+
rcall("ZADD", targetSet, timestamp, jobId)
|
115
|
+
rcall("HMSET", jobIdKey, ARGV[3], ARGV[4], "finishedOn", timestamp) -- "returnvalue" / "failedReason" and "finishedOn"
|
113
116
|
|
114
117
|
-- Remove old jobs?
|
115
|
-
|
116
|
-
|
117
|
-
local
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
118
|
+
local prefix = ARGV[9]
|
119
|
+
local function removeJob(jobId)
|
120
|
+
local jobKey = prefix .. jobId
|
121
|
+
removeParentDependencyKey(jobKey)
|
122
|
+
local jobLogKey = jobKey .. ':logs'
|
123
|
+
local jobProcessedKey = jobKey .. ':processed'
|
124
|
+
rcall("DEL", jobKey, jobLogKey, jobProcessedKey)
|
125
|
+
end
|
126
|
+
|
127
|
+
if maxAge ~= nil then
|
128
|
+
local start = timestamp - maxAge * 1000
|
129
|
+
local jobIds = rcall("ZREVRANGEBYSCORE", targetSet, start, "-inf")
|
130
|
+
for i, jobId in ipairs(jobIds) do removeJob(jobId) end
|
131
|
+
rcall("ZREMRANGEBYSCORE", targetSet, "-inf", start)
|
132
|
+
end
|
133
|
+
|
134
|
+
if maxCount ~= nil and maxCount > 0 then
|
135
|
+
local start = maxCount
|
136
|
+
local jobIds = rcall("ZREVRANGE", targetSet, start, -1)
|
137
|
+
for i, jobId in ipairs(jobIds) do removeJob(jobId) end
|
138
|
+
rcall("ZREMRANGEBYRANK", targetSet, 0, -(maxCount + 1))
|
126
139
|
end
|
127
140
|
else
|
128
141
|
local jobLogKey = jobIdKey .. ':logs'
|
@@ -134,9 +147,10 @@ if rcall("EXISTS",jobIdKey) == 1 then -- // Make sure job exists
|
|
134
147
|
ARGV[4])
|
135
148
|
|
136
149
|
if ARGV[5] == "failed" then
|
137
|
-
|
138
|
-
|
139
|
-
|
150
|
+
if tonumber(ARGV[16]) >= tonumber(ARGV[15]) then
|
151
|
+
rcall("XADD", KEYS[6], "*", "event", "retries-exhausted", "jobId",
|
152
|
+
jobId, "attemptsMade", ARGV[16])
|
153
|
+
end
|
140
154
|
end
|
141
155
|
|
142
156
|
-- Try to get next job to avoid an extra roundtrip if the queue is not closing,
|
@@ -150,17 +164,17 @@ if rcall("EXISTS",jobIdKey) == 1 then -- // Make sure job exists
|
|
150
164
|
|
151
165
|
-- get a lock
|
152
166
|
if ARGV[10] ~= "0" then
|
153
|
-
|
167
|
+
rcall("SET", lockKey, ARGV[10], "PX", ARGV[11])
|
154
168
|
end
|
155
169
|
|
156
170
|
rcall("ZREM", KEYS[5], jobId) -- remove from priority
|
157
171
|
rcall("XADD", KEYS[6], "*", "event", "active", "jobId", jobId,
|
158
172
|
"prev", "waiting")
|
159
|
-
rcall("HSET", jobKey, "processedOn",
|
173
|
+
rcall("HSET", jobKey, "processedOn", timestamp)
|
160
174
|
|
161
175
|
return {rcall("HGETALL", jobKey), jobId} -- get job data
|
162
176
|
else
|
163
|
-
|
177
|
+
rcall("XADD", KEYS[6], "*", "event", "drained");
|
164
178
|
end
|
165
179
|
end
|
166
180
|
|
@@ -1,12 +1,12 @@
|
|
1
1
|
--[[
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
2
|
+
Completely obliterates a queue and all of its contents
|
3
|
+
|
4
|
+
Input:
|
5
|
+
KEYS[1] meta
|
6
|
+
KEYS[2] base
|
7
|
+
|
8
|
+
ARGV[1] count
|
9
|
+
ARGV[2] force
|
10
10
|
]]
|
11
11
|
|
12
12
|
-- This command completely destroys a queue including all of its jobs, current or past
|
@@ -20,113 +20,70 @@ local maxCount = tonumber(ARGV[1])
|
|
20
20
|
local baseKey = KEYS[2]
|
21
21
|
|
22
22
|
local rcall = redis.call
|
23
|
-
local function getListItems(keyName, max)
|
24
|
-
return rcall('LRANGE', keyName, 0, max - 1)
|
25
|
-
end
|
26
23
|
|
27
|
-
|
28
|
-
return rcall('ZRANGE', keyName, 0, max - 1)
|
29
|
-
end
|
30
|
-
|
31
|
-
local function getSetItems(keyName, max)
|
32
|
-
return rcall('SMEMBERS', keyName, 0, max)
|
33
|
-
end
|
34
|
-
|
35
|
-
--- @include "includes/removeParentDependencyKey"
|
36
|
-
|
37
|
-
local function removeJobs(keys)
|
38
|
-
for i, key in ipairs(keys) do
|
39
|
-
local jobKey = baseKey .. key
|
40
|
-
removeParentDependencyKey(jobKey)
|
41
|
-
rcall("DEL", jobKey)
|
42
|
-
rcall("DEL", jobKey .. ':logs')
|
43
|
-
rcall("DEL", jobKey .. ':dependencies')
|
44
|
-
rcall("DEL", jobKey .. ':processed')
|
45
|
-
end
|
46
|
-
maxCount = maxCount - #keys
|
47
|
-
end
|
48
|
-
|
49
|
-
local function removeListJobs(keyName, max)
|
50
|
-
local jobs = getListItems(keyName, max)
|
51
|
-
removeJobs(jobs)
|
52
|
-
rcall("LTRIM", keyName, #jobs, -1)
|
53
|
-
end
|
54
|
-
|
55
|
-
local function removeZSetJobs(keyName, max)
|
56
|
-
local jobs = getZSetItems(keyName, max)
|
57
|
-
removeJobs(jobs)
|
58
|
-
if(#jobs > 0) then
|
59
|
-
rcall("ZREM", keyName, unpack(jobs))
|
60
|
-
end
|
61
|
-
end
|
24
|
+
--- @include "includes/removeJobs"
|
62
25
|
|
63
26
|
local function removeLockKeys(keys)
|
64
|
-
|
65
|
-
|
66
|
-
|
27
|
+
for i, key in ipairs(keys) do
|
28
|
+
rcall("DEL", baseKey .. key .. ':lock')
|
29
|
+
end
|
67
30
|
end
|
68
31
|
|
69
32
|
-- 1) Check if paused, if not return with error.
|
70
33
|
if rcall("HEXISTS", KEYS[1], "paused") ~= 1 then
|
71
|
-
|
34
|
+
return -1 -- Error, NotPaused
|
72
35
|
end
|
73
36
|
|
74
37
|
-- 2) Check if there are active jobs, if there are and not "force" return error.
|
75
38
|
local activeKey = baseKey .. 'active'
|
76
39
|
local activeJobs = getListItems(activeKey, maxCount)
|
77
40
|
if (#activeJobs > 0) then
|
78
|
-
|
79
|
-
|
80
|
-
|
41
|
+
if(ARGV[2] == "") then
|
42
|
+
return -2 -- Error, ExistActiveJobs
|
43
|
+
end
|
81
44
|
end
|
82
45
|
|
83
46
|
removeLockKeys(activeJobs)
|
84
|
-
removeJobs(activeJobs)
|
47
|
+
maxCount = removeJobs(activeJobs, true, baseKey, maxCount)
|
85
48
|
rcall("LTRIM", activeKey, #activeJobs, -1)
|
86
49
|
if(maxCount <= 0) then
|
87
|
-
|
50
|
+
return 1
|
88
51
|
end
|
89
52
|
|
90
53
|
local delayedKey = baseKey .. 'delayed'
|
91
|
-
removeZSetJobs(delayedKey, maxCount)
|
54
|
+
maxCount = removeZSetJobs(delayedKey, true, baseKey, maxCount)
|
92
55
|
if(maxCount <= 0) then
|
93
|
-
|
56
|
+
return 1
|
94
57
|
end
|
95
58
|
|
96
59
|
local completedKey = baseKey .. 'completed'
|
97
|
-
removeZSetJobs(completedKey, maxCount)
|
98
|
-
if(maxCount <= 0) then
|
99
|
-
return 1
|
100
|
-
end
|
101
|
-
|
102
|
-
local failedKey = baseKey .. 'failed'
|
103
|
-
removeZSetJobs(failedKey, maxCount)
|
60
|
+
maxCount = removeZSetJobs(completedKey, true, baseKey, maxCount)
|
104
61
|
if(maxCount <= 0) then
|
105
|
-
|
62
|
+
return 1
|
106
63
|
end
|
107
64
|
|
108
65
|
local waitKey = baseKey .. 'paused'
|
109
|
-
removeListJobs(waitKey, maxCount)
|
66
|
+
maxCount = removeListJobs(waitKey, true, baseKey, maxCount)
|
110
67
|
if(maxCount <= 0) then
|
111
|
-
|
68
|
+
return 1
|
112
69
|
end
|
113
70
|
|
114
|
-
local
|
115
|
-
removeZSetJobs(
|
71
|
+
local failedKey = baseKey .. 'failed'
|
72
|
+
maxCount = removeZSetJobs(failedKey, true, baseKey, maxCount)
|
116
73
|
if(maxCount <= 0) then
|
117
|
-
|
74
|
+
return 1
|
118
75
|
end
|
119
76
|
|
120
77
|
if(maxCount > 0) then
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
78
|
+
rcall("DEL", baseKey .. 'priority')
|
79
|
+
rcall("DEL", baseKey .. 'events')
|
80
|
+
rcall("DEL", baseKey .. 'delay')
|
81
|
+
rcall("DEL", baseKey .. 'stalled-check')
|
82
|
+
rcall("DEL", baseKey .. 'stalled')
|
83
|
+
rcall("DEL", baseKey .. 'id')
|
84
|
+
rcall("DEL", baseKey .. 'meta')
|
85
|
+
rcall("DEL", baseKey .. 'repeat')
|
86
|
+
return 0
|
130
87
|
else
|
131
|
-
|
88
|
+
return 1
|
132
89
|
end
|
@@ -7,8 +7,9 @@
|
|
7
7
|
KEYS[3] job state
|
8
8
|
KEYS[4] wait key
|
9
9
|
|
10
|
-
ARGV[1] job.id
|
10
|
+
ARGV[1] job.id
|
11
11
|
ARGV[2] (job.opts.lifo ? 'R' : 'L') + 'PUSH'
|
12
|
+
ARGV[3] propVal - failedReason/returnvalue
|
12
13
|
|
13
14
|
Output:
|
14
15
|
1 means the operation was a success
|
@@ -20,6 +21,7 @@ if (rcall("EXISTS", KEYS[1]) == 1) then
|
|
20
21
|
local jobId = ARGV[1]
|
21
22
|
if (rcall("ZREM", KEYS[3], jobId) == 1) then
|
22
23
|
rcall(ARGV[2], KEYS[4], jobId)
|
24
|
+
rcall("HDEL", KEYS[1], "finishedOn", "processedOn", ARGV[3])
|
23
25
|
|
24
26
|
-- Emit waiting event
|
25
27
|
rcall("XADD", KEYS[2], "*", "event", "waiting", "jobId", jobId);
|