bullmq 1.91.0 → 2.0.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/child-processor.js +0 -20
- package/dist/cjs/classes/child-processor.js.map +1 -1
- package/dist/cjs/classes/index.d.ts +0 -2
- package/dist/cjs/classes/index.js +0 -2
- package/dist/cjs/classes/index.js.map +1 -1
- package/dist/cjs/classes/queue-getters.d.ts +1 -0
- package/dist/cjs/classes/queue-getters.js +27 -2
- package/dist/cjs/classes/queue-getters.js.map +1 -1
- package/dist/cjs/classes/redis-connection.d.ts +2 -1
- package/dist/cjs/classes/redis-connection.js +5 -0
- package/dist/cjs/classes/redis-connection.js.map +1 -1
- package/dist/cjs/classes/scripts.js +6 -4
- package/dist/cjs/classes/scripts.js.map +1 -1
- package/dist/cjs/classes/worker.d.ts +11 -0
- package/dist/cjs/classes/worker.js +54 -21
- package/dist/cjs/classes/worker.js.map +1 -1
- package/dist/{esm/commands/addJob-9.lua → cjs/commands/addJob-8.lua} +10 -2
- package/dist/cjs/commands/includes/checkStalledJobs.lua +136 -0
- package/dist/cjs/commands/includes/getNextDelayedTimestamp.lua +13 -0
- package/dist/cjs/commands/includes/moveJobFromWaitToActive.lua +3 -10
- package/dist/cjs/commands/includes/promoteDelayedJobs.lua +57 -0
- package/dist/cjs/commands/moveStalledJobsToWait-8.lua +4 -102
- package/dist/cjs/commands/moveToActive-9.lua +67 -0
- package/dist/cjs/commands/moveToFinished-12.lua +29 -5
- package/dist/cjs/commands/promote-6.lua +6 -0
- package/dist/cjs/interfaces/index.d.ts +0 -1
- package/dist/cjs/interfaces/index.js +0 -1
- package/dist/cjs/interfaces/index.js.map +1 -1
- package/dist/cjs/interfaces/sandboxed-job.d.ts +0 -1
- package/dist/cjs/interfaces/worker-options.d.ts +10 -0
- package/dist/esm/classes/child-processor.js +0 -20
- package/dist/esm/classes/child-processor.js.map +1 -1
- package/dist/esm/classes/index.d.ts +0 -2
- package/dist/esm/classes/index.js +0 -2
- package/dist/esm/classes/index.js.map +1 -1
- package/dist/esm/classes/queue-getters.d.ts +1 -0
- package/dist/esm/classes/queue-getters.js +27 -2
- package/dist/esm/classes/queue-getters.js.map +1 -1
- package/dist/esm/classes/redis-connection.d.ts +2 -1
- package/dist/esm/classes/redis-connection.js +5 -0
- package/dist/esm/classes/redis-connection.js.map +1 -1
- package/dist/esm/classes/scripts.js +6 -4
- package/dist/esm/classes/scripts.js.map +1 -1
- package/dist/esm/classes/worker.d.ts +11 -0
- package/dist/esm/classes/worker.js +54 -21
- package/dist/esm/classes/worker.js.map +1 -1
- package/dist/{cjs/commands/addJob-9.lua → esm/commands/addJob-8.lua} +10 -2
- package/dist/esm/commands/includes/checkStalledJobs.lua +136 -0
- package/dist/esm/commands/includes/getNextDelayedTimestamp.lua +13 -0
- package/dist/esm/commands/includes/moveJobFromWaitToActive.lua +3 -10
- package/dist/esm/commands/includes/promoteDelayedJobs.lua +57 -0
- package/dist/esm/commands/moveStalledJobsToWait-8.lua +4 -102
- package/dist/esm/commands/moveToActive-9.lua +67 -0
- package/dist/esm/commands/moveToFinished-12.lua +29 -5
- package/dist/esm/commands/promote-6.lua +6 -0
- package/dist/esm/interfaces/index.d.ts +0 -1
- package/dist/esm/interfaces/index.js +0 -1
- package/dist/esm/interfaces/index.js.map +1 -1
- package/dist/esm/interfaces/sandboxed-job.d.ts +0 -1
- package/dist/esm/interfaces/worker-options.d.ts +10 -0
- package/package.json +1 -1
- package/dist/cjs/classes/compat.d.ts +0 -320
- package/dist/cjs/classes/compat.js +0 -682
- package/dist/cjs/classes/compat.js.map +0 -1
- package/dist/cjs/classes/queue-scheduler.d.ts +0 -75
- package/dist/cjs/classes/queue-scheduler.js +0 -199
- package/dist/cjs/classes/queue-scheduler.js.map +0 -1
- package/dist/cjs/commands/moveToActive-8.lua +0 -54
- package/dist/cjs/interfaces/queue-scheduler-options.d.ts +0 -23
- package/dist/cjs/interfaces/queue-scheduler-options.js +0 -3
- package/dist/cjs/interfaces/queue-scheduler-options.js.map +0 -1
- package/dist/esm/classes/compat.d.ts +0 -320
- package/dist/esm/classes/compat.js +0 -678
- package/dist/esm/classes/compat.js.map +0 -1
- package/dist/esm/classes/queue-scheduler.d.ts +0 -75
- package/dist/esm/classes/queue-scheduler.js +0 -195
- package/dist/esm/classes/queue-scheduler.js.map +0 -1
- package/dist/esm/commands/moveToActive-8.lua +0 -54
- package/dist/esm/interfaces/queue-scheduler-options.d.ts +0 -23
- package/dist/esm/interfaces/queue-scheduler-options.js +0 -2
- package/dist/esm/interfaces/queue-scheduler-options.js.map +0 -1
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"compat.js","sourceRoot":"","sources":["../../../src/classes/compat.ts"],"names":[],"mappings":"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"}
|
@@ -1,75 +0,0 @@
|
|
1
|
-
import { IoredisListener, QueueSchedulerOptions } from '../interfaces';
|
2
|
-
import { QueueBase } from './queue-base';
|
3
|
-
import { RedisConnection } from './redis-connection';
|
4
|
-
export interface QueueSchedulerListener extends IoredisListener {
|
5
|
-
/**
|
6
|
-
* Listen to 'error' event.
|
7
|
-
*
|
8
|
-
* This event is triggered when an exception is thrown.
|
9
|
-
*/
|
10
|
-
error: (error: Error) => void;
|
11
|
-
/**
|
12
|
-
* Listen to 'failed' event.
|
13
|
-
*
|
14
|
-
* This event is triggered when a job has thrown an exception.
|
15
|
-
*/
|
16
|
-
failed: (jobId: string, failedReason: Error, prev: string) => void;
|
17
|
-
/**
|
18
|
-
* Listen to 'stalled' event.
|
19
|
-
*
|
20
|
-
* This event is triggered when a job gets stalled.
|
21
|
-
*/
|
22
|
-
stalled: (jobId: string, prev: string) => void;
|
23
|
-
}
|
24
|
-
/**
|
25
|
-
* This class is just used for some automatic bookkeeping of the queue,
|
26
|
-
* such as updating the delay set as well as moving stalled jobs back
|
27
|
-
* to the waiting list.
|
28
|
-
*
|
29
|
-
* Jobs are checked for stallness once every "visibility window" seconds.
|
30
|
-
* Jobs are then marked as candidates for being stalled, in the next check,
|
31
|
-
* the candidates are marked as stalled and moved to wait.
|
32
|
-
* Workers need to clean the candidate list with the jobs that they are working
|
33
|
-
* on, failing to update the list results in the job ending being stalled.
|
34
|
-
*
|
35
|
-
* This class requires a dedicated redis connection, and at least one is needed
|
36
|
-
* to be running at a given time, otherwise delays, stalled jobs, retries, repeatable
|
37
|
-
* jobs, etc, will not work correctly or at all.
|
38
|
-
*
|
39
|
-
*/
|
40
|
-
export declare class QueueScheduler extends QueueBase {
|
41
|
-
opts: QueueSchedulerOptions;
|
42
|
-
private nextTimestamp;
|
43
|
-
private isBlocked;
|
44
|
-
private running;
|
45
|
-
constructor(name: string, { connection, autorun, ...opts }?: QueueSchedulerOptions, Connection?: typeof RedisConnection);
|
46
|
-
emit<U extends keyof QueueSchedulerListener>(event: U, ...args: Parameters<QueueSchedulerListener[U]>): boolean;
|
47
|
-
off<U extends keyof QueueSchedulerListener>(eventName: U, listener: QueueSchedulerListener[U]): this;
|
48
|
-
on<U extends keyof QueueSchedulerListener>(event: U, listener: QueueSchedulerListener[U]): this;
|
49
|
-
once<U extends keyof QueueSchedulerListener>(event: U, listener: QueueSchedulerListener[U]): this;
|
50
|
-
/**
|
51
|
-
* Run the scheduler.
|
52
|
-
*
|
53
|
-
* This method will run the scheduler in the background,
|
54
|
-
* and will not return until the scheduler is closed.
|
55
|
-
*
|
56
|
-
* If the QueueScheduler was instantiated with autorun: false,
|
57
|
-
* then it is not needed to manually call this method.
|
58
|
-
*/
|
59
|
-
run(): Promise<void>;
|
60
|
-
/**
|
61
|
-
* isRunning
|
62
|
-
*
|
63
|
-
* @returns true if the scheduler is running
|
64
|
-
*
|
65
|
-
*/
|
66
|
-
isRunning(): boolean;
|
67
|
-
private readDelayedData;
|
68
|
-
private updateDelaySet;
|
69
|
-
private moveStalledJobsToWait;
|
70
|
-
/**
|
71
|
-
* Close the scheduler.
|
72
|
-
*
|
73
|
-
*/
|
74
|
-
close(): Promise<void>;
|
75
|
-
}
|
@@ -1,195 +0,0 @@
|
|
1
|
-
import { __rest } from "tslib";
|
2
|
-
import { array2obj, clientCommandMessageReg, isRedisInstance, QUEUE_SCHEDULER_SUFFIX, } from '../utils';
|
3
|
-
import { QueueBase } from './queue-base';
|
4
|
-
/**
|
5
|
-
* This class is just used for some automatic bookkeeping of the queue,
|
6
|
-
* such as updating the delay set as well as moving stalled jobs back
|
7
|
-
* to the waiting list.
|
8
|
-
*
|
9
|
-
* Jobs are checked for stallness once every "visibility window" seconds.
|
10
|
-
* Jobs are then marked as candidates for being stalled, in the next check,
|
11
|
-
* the candidates are marked as stalled and moved to wait.
|
12
|
-
* Workers need to clean the candidate list with the jobs that they are working
|
13
|
-
* on, failing to update the list results in the job ending being stalled.
|
14
|
-
*
|
15
|
-
* This class requires a dedicated redis connection, and at least one is needed
|
16
|
-
* to be running at a given time, otherwise delays, stalled jobs, retries, repeatable
|
17
|
-
* jobs, etc, will not work correctly or at all.
|
18
|
-
*
|
19
|
-
*/
|
20
|
-
export class QueueScheduler extends QueueBase {
|
21
|
-
constructor(name, _a = {}, Connection) {
|
22
|
-
var { connection, autorun = true } = _a, opts = __rest(_a, ["connection", "autorun"]);
|
23
|
-
super(name, Object.assign(Object.assign({ maxStalledCount: 1, stalledInterval: 30000 }, opts), { connection: isRedisInstance(connection)
|
24
|
-
? connection.duplicate()
|
25
|
-
: connection, sharedConnection: false, blockingConnection: true }), Connection);
|
26
|
-
this.nextTimestamp = Number.MAX_VALUE;
|
27
|
-
this.isBlocked = false;
|
28
|
-
this.running = false;
|
29
|
-
if (!this.opts.stalledInterval) {
|
30
|
-
throw new Error('Stalled interval cannot be zero or undefined');
|
31
|
-
}
|
32
|
-
if (autorun) {
|
33
|
-
this.run().catch(error => {
|
34
|
-
this.emit('error', error);
|
35
|
-
});
|
36
|
-
}
|
37
|
-
}
|
38
|
-
emit(event, ...args) {
|
39
|
-
return super.emit(event, ...args);
|
40
|
-
}
|
41
|
-
off(eventName, listener) {
|
42
|
-
super.off(eventName, listener);
|
43
|
-
return this;
|
44
|
-
}
|
45
|
-
on(event, listener) {
|
46
|
-
super.on(event, listener);
|
47
|
-
return this;
|
48
|
-
}
|
49
|
-
once(event, listener) {
|
50
|
-
super.once(event, listener);
|
51
|
-
return this;
|
52
|
-
}
|
53
|
-
/**
|
54
|
-
* Run the scheduler.
|
55
|
-
*
|
56
|
-
* This method will run the scheduler in the background,
|
57
|
-
* and will not return until the scheduler is closed.
|
58
|
-
*
|
59
|
-
* If the QueueScheduler was instantiated with autorun: false,
|
60
|
-
* then it is not needed to manually call this method.
|
61
|
-
*/
|
62
|
-
async run() {
|
63
|
-
if (!this.running) {
|
64
|
-
try {
|
65
|
-
this.running = true;
|
66
|
-
const client = await this.waitUntilReady();
|
67
|
-
const key = this.keys.delay;
|
68
|
-
const opts = this.opts;
|
69
|
-
try {
|
70
|
-
await client.client('SETNAME', this.clientName(QUEUE_SCHEDULER_SUFFIX));
|
71
|
-
}
|
72
|
-
catch (err) {
|
73
|
-
if (!clientCommandMessageReg.test(err.message)) {
|
74
|
-
throw err;
|
75
|
-
}
|
76
|
-
}
|
77
|
-
const [nextTimestamp, streamId = '0-0'] = await this.updateDelaySet(Date.now());
|
78
|
-
let streamLastId = streamId;
|
79
|
-
if (nextTimestamp) {
|
80
|
-
this.nextTimestamp = nextTimestamp;
|
81
|
-
}
|
82
|
-
while (!this.closing) {
|
83
|
-
// Check if at least the min stalled check time has passed.
|
84
|
-
await this.checkConnectionError(() => this.moveStalledJobsToWait());
|
85
|
-
// Listen to the delay event stream from lastDelayStreamTimestamp
|
86
|
-
// Can we use XGROUPS to reduce redundancy?
|
87
|
-
const nextDelay = this.nextTimestamp - Date.now();
|
88
|
-
const blockTime = Math.round(Math.min(opts.stalledInterval, Math.max(nextDelay, 0)));
|
89
|
-
const data = await this.checkConnectionError(() => this.readDelayedData(client, key, streamLastId, blockTime));
|
90
|
-
if (data && data[0]) {
|
91
|
-
const stream = data[0];
|
92
|
-
const events = stream[1];
|
93
|
-
for (let i = 0; i < events.length; i++) {
|
94
|
-
streamLastId = events[i][0];
|
95
|
-
const args = array2obj(events[i][1]);
|
96
|
-
const nextTimestamp = parseInt(args.nextTimestamp);
|
97
|
-
if (nextTimestamp < this.nextTimestamp) {
|
98
|
-
this.nextTimestamp = nextTimestamp;
|
99
|
-
}
|
100
|
-
}
|
101
|
-
//
|
102
|
-
// We trim to a length of 100, which should be a very safe value
|
103
|
-
// for all kind of scenarios.
|
104
|
-
//
|
105
|
-
if (!this.closing) {
|
106
|
-
await this.checkConnectionError(() => client.xtrim(key, 'MAXLEN', '~', 100));
|
107
|
-
}
|
108
|
-
}
|
109
|
-
const now = Date.now();
|
110
|
-
const nextDelayedJobDelay = this.nextTimestamp - now;
|
111
|
-
if (nextDelayedJobDelay <= 0) {
|
112
|
-
const [nextTimestamp, id] = await this.updateDelaySet(now);
|
113
|
-
if (nextTimestamp) {
|
114
|
-
this.nextTimestamp = nextTimestamp;
|
115
|
-
streamLastId = id;
|
116
|
-
}
|
117
|
-
else {
|
118
|
-
this.nextTimestamp = Number.MAX_VALUE;
|
119
|
-
}
|
120
|
-
}
|
121
|
-
}
|
122
|
-
this.running = false;
|
123
|
-
}
|
124
|
-
catch (error) {
|
125
|
-
this.running = false;
|
126
|
-
throw error;
|
127
|
-
}
|
128
|
-
}
|
129
|
-
else {
|
130
|
-
throw new Error('Queue Scheduler is already running.');
|
131
|
-
}
|
132
|
-
}
|
133
|
-
/**
|
134
|
-
* isRunning
|
135
|
-
*
|
136
|
-
* @returns true if the scheduler is running
|
137
|
-
*
|
138
|
-
*/
|
139
|
-
isRunning() {
|
140
|
-
return this.running;
|
141
|
-
}
|
142
|
-
async readDelayedData(client, key, streamLastId, blockTime) {
|
143
|
-
if (!this.closing) {
|
144
|
-
let data;
|
145
|
-
if (blockTime) {
|
146
|
-
try {
|
147
|
-
this.isBlocked = true;
|
148
|
-
data = await client.xread('BLOCK', blockTime, 'STREAMS', key, streamLastId);
|
149
|
-
}
|
150
|
-
finally {
|
151
|
-
this.isBlocked = false;
|
152
|
-
}
|
153
|
-
}
|
154
|
-
else {
|
155
|
-
data = await client.xread('STREAMS', key, streamLastId);
|
156
|
-
}
|
157
|
-
// Cast to actual return type, see: https://github.com/DefinitelyTyped/DefinitelyTyped/issues/44301
|
158
|
-
return data;
|
159
|
-
}
|
160
|
-
}
|
161
|
-
async updateDelaySet(timestamp) {
|
162
|
-
if (!this.closing) {
|
163
|
-
const result = await this.checkConnectionError(() => this.scripts.updateDelaySet(timestamp));
|
164
|
-
if (!result) {
|
165
|
-
return [0, '0'];
|
166
|
-
}
|
167
|
-
return result;
|
168
|
-
}
|
169
|
-
return [0, '0'];
|
170
|
-
}
|
171
|
-
async moveStalledJobsToWait() {
|
172
|
-
if (!this.closing) {
|
173
|
-
const [failed, stalled] = await this.scripts.moveStalledJobsToWait();
|
174
|
-
failed.forEach((jobId) => this.emit('failed', jobId, new Error('job stalled more than allowable limit'), 'active'));
|
175
|
-
stalled.forEach((jobId) => this.emit('stalled', jobId, 'active'));
|
176
|
-
}
|
177
|
-
}
|
178
|
-
/**
|
179
|
-
* Close the scheduler.
|
180
|
-
*
|
181
|
-
*/
|
182
|
-
close() {
|
183
|
-
if (this.closing) {
|
184
|
-
return this.closing;
|
185
|
-
}
|
186
|
-
if (this.isBlocked) {
|
187
|
-
this.closing = this.disconnect();
|
188
|
-
}
|
189
|
-
else {
|
190
|
-
this.closing = super.close();
|
191
|
-
}
|
192
|
-
return this.closing;
|
193
|
-
}
|
194
|
-
}
|
195
|
-
//# sourceMappingURL=queue-scheduler.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"queue-scheduler.js","sourceRoot":"","sources":["../../../src/classes/queue-scheduler.ts"],"names":[],"mappings":"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"}
|
@@ -1,54 +0,0 @@
|
|
1
|
-
--[[
|
2
|
-
Move next job to be processed to active, lock it and fetch its data. The job
|
3
|
-
may be delayed, in that case we need to move it to the delayed set instead.
|
4
|
-
|
5
|
-
This operation guarantees that the worker owns the job during the lock
|
6
|
-
expiration time. The worker is responsible of keeping the lock fresh
|
7
|
-
so that no other worker picks this job again.
|
8
|
-
|
9
|
-
Input:
|
10
|
-
KEYS[1] wait key
|
11
|
-
KEYS[2] active key
|
12
|
-
KEYS[3] priority key
|
13
|
-
KEYS[4] stream events key
|
14
|
-
KEYS[5] stalled key
|
15
|
-
|
16
|
-
-- Rate limiting
|
17
|
-
KEYS[6] rate limiter key
|
18
|
-
KEYS[7] delayed key
|
19
|
-
|
20
|
-
-- Delay events
|
21
|
-
KEYS[8] delay stream key
|
22
|
-
|
23
|
-
-- Arguments
|
24
|
-
ARGV[1] key prefix
|
25
|
-
ARGV[2] timestamp
|
26
|
-
ARGV[3] optional job ID
|
27
|
-
ARGV[4] opts
|
28
|
-
|
29
|
-
opts - token - lock token
|
30
|
-
opts - lockDuration
|
31
|
-
opts - limiter
|
32
|
-
]]
|
33
|
-
|
34
|
-
local jobId
|
35
|
-
local rcall = redis.call
|
36
|
-
|
37
|
-
-- Includes
|
38
|
-
--- @include "includes/moveJobFromWaitToActive"
|
39
|
-
|
40
|
-
if(ARGV[3] ~= "") then
|
41
|
-
jobId = ARGV[3]
|
42
|
-
|
43
|
-
-- clean stalled key
|
44
|
-
rcall("SREM", KEYS[5], jobId)
|
45
|
-
else
|
46
|
-
-- no job ID, try non-blocking move from wait to active
|
47
|
-
jobId = rcall("RPOPLPUSH", KEYS[1], KEYS[2])
|
48
|
-
end
|
49
|
-
|
50
|
-
if jobId then
|
51
|
-
local opts = cmsgpack.unpack(ARGV[4])
|
52
|
-
|
53
|
-
return moveJobFromWaitToActive(KEYS, ARGV[1], jobId, ARGV[2], opts)
|
54
|
-
end
|
@@ -1,23 +0,0 @@
|
|
1
|
-
import { QueueBaseOptions } from './queue-options';
|
2
|
-
/**
|
3
|
-
* Options for customizing the behaviour of the scheduler.
|
4
|
-
*
|
5
|
-
* @see {@link https://docs.bullmq.io/guide/jobs/stalled}
|
6
|
-
* @see {@link https://docs.bullmq.io/guide/queuescheduler}
|
7
|
-
*/
|
8
|
-
export interface QueueSchedulerOptions extends QueueBaseOptions {
|
9
|
-
/**
|
10
|
-
* Condition to start scheduler at instance creation.
|
11
|
-
*/
|
12
|
-
autorun?: boolean;
|
13
|
-
/**
|
14
|
-
* Amount of times a job can be recovered from a stalled state
|
15
|
-
* to the `wait` state. If this is exceeded, the job is moved
|
16
|
-
* to `failed`.
|
17
|
-
*/
|
18
|
-
maxStalledCount?: number;
|
19
|
-
/**
|
20
|
-
* Number of milliseconds between stallness checks.
|
21
|
-
*/
|
22
|
-
stalledInterval?: number;
|
23
|
-
}
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"queue-scheduler-options.js","sourceRoot":"","sources":["../../../src/interfaces/queue-scheduler-options.ts"],"names":[],"mappings":""}
|