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.
Files changed (81) hide show
  1. package/dist/cjs/classes/child-processor.js +0 -20
  2. package/dist/cjs/classes/child-processor.js.map +1 -1
  3. package/dist/cjs/classes/index.d.ts +0 -2
  4. package/dist/cjs/classes/index.js +0 -2
  5. package/dist/cjs/classes/index.js.map +1 -1
  6. package/dist/cjs/classes/queue-getters.d.ts +1 -0
  7. package/dist/cjs/classes/queue-getters.js +27 -2
  8. package/dist/cjs/classes/queue-getters.js.map +1 -1
  9. package/dist/cjs/classes/redis-connection.d.ts +2 -1
  10. package/dist/cjs/classes/redis-connection.js +5 -0
  11. package/dist/cjs/classes/redis-connection.js.map +1 -1
  12. package/dist/cjs/classes/scripts.js +6 -4
  13. package/dist/cjs/classes/scripts.js.map +1 -1
  14. package/dist/cjs/classes/worker.d.ts +11 -0
  15. package/dist/cjs/classes/worker.js +54 -21
  16. package/dist/cjs/classes/worker.js.map +1 -1
  17. package/dist/{esm/commands/addJob-9.lua → cjs/commands/addJob-8.lua} +10 -2
  18. package/dist/cjs/commands/includes/checkStalledJobs.lua +136 -0
  19. package/dist/cjs/commands/includes/getNextDelayedTimestamp.lua +13 -0
  20. package/dist/cjs/commands/includes/moveJobFromWaitToActive.lua +3 -10
  21. package/dist/cjs/commands/includes/promoteDelayedJobs.lua +57 -0
  22. package/dist/cjs/commands/moveStalledJobsToWait-8.lua +4 -102
  23. package/dist/cjs/commands/moveToActive-9.lua +67 -0
  24. package/dist/cjs/commands/moveToFinished-12.lua +29 -5
  25. package/dist/cjs/commands/promote-6.lua +6 -0
  26. package/dist/cjs/interfaces/index.d.ts +0 -1
  27. package/dist/cjs/interfaces/index.js +0 -1
  28. package/dist/cjs/interfaces/index.js.map +1 -1
  29. package/dist/cjs/interfaces/sandboxed-job.d.ts +0 -1
  30. package/dist/cjs/interfaces/worker-options.d.ts +10 -0
  31. package/dist/esm/classes/child-processor.js +0 -20
  32. package/dist/esm/classes/child-processor.js.map +1 -1
  33. package/dist/esm/classes/index.d.ts +0 -2
  34. package/dist/esm/classes/index.js +0 -2
  35. package/dist/esm/classes/index.js.map +1 -1
  36. package/dist/esm/classes/queue-getters.d.ts +1 -0
  37. package/dist/esm/classes/queue-getters.js +27 -2
  38. package/dist/esm/classes/queue-getters.js.map +1 -1
  39. package/dist/esm/classes/redis-connection.d.ts +2 -1
  40. package/dist/esm/classes/redis-connection.js +5 -0
  41. package/dist/esm/classes/redis-connection.js.map +1 -1
  42. package/dist/esm/classes/scripts.js +6 -4
  43. package/dist/esm/classes/scripts.js.map +1 -1
  44. package/dist/esm/classes/worker.d.ts +11 -0
  45. package/dist/esm/classes/worker.js +54 -21
  46. package/dist/esm/classes/worker.js.map +1 -1
  47. package/dist/{cjs/commands/addJob-9.lua → esm/commands/addJob-8.lua} +10 -2
  48. package/dist/esm/commands/includes/checkStalledJobs.lua +136 -0
  49. package/dist/esm/commands/includes/getNextDelayedTimestamp.lua +13 -0
  50. package/dist/esm/commands/includes/moveJobFromWaitToActive.lua +3 -10
  51. package/dist/esm/commands/includes/promoteDelayedJobs.lua +57 -0
  52. package/dist/esm/commands/moveStalledJobsToWait-8.lua +4 -102
  53. package/dist/esm/commands/moveToActive-9.lua +67 -0
  54. package/dist/esm/commands/moveToFinished-12.lua +29 -5
  55. package/dist/esm/commands/promote-6.lua +6 -0
  56. package/dist/esm/interfaces/index.d.ts +0 -1
  57. package/dist/esm/interfaces/index.js +0 -1
  58. package/dist/esm/interfaces/index.js.map +1 -1
  59. package/dist/esm/interfaces/sandboxed-job.d.ts +0 -1
  60. package/dist/esm/interfaces/worker-options.d.ts +10 -0
  61. package/package.json +1 -1
  62. package/dist/cjs/classes/compat.d.ts +0 -320
  63. package/dist/cjs/classes/compat.js +0 -682
  64. package/dist/cjs/classes/compat.js.map +0 -1
  65. package/dist/cjs/classes/queue-scheduler.d.ts +0 -75
  66. package/dist/cjs/classes/queue-scheduler.js +0 -199
  67. package/dist/cjs/classes/queue-scheduler.js.map +0 -1
  68. package/dist/cjs/commands/moveToActive-8.lua +0 -54
  69. package/dist/cjs/interfaces/queue-scheduler-options.d.ts +0 -23
  70. package/dist/cjs/interfaces/queue-scheduler-options.js +0 -3
  71. package/dist/cjs/interfaces/queue-scheduler-options.js.map +0 -1
  72. package/dist/esm/classes/compat.d.ts +0 -320
  73. package/dist/esm/classes/compat.js +0 -678
  74. package/dist/esm/classes/compat.js.map +0 -1
  75. package/dist/esm/classes/queue-scheduler.d.ts +0 -75
  76. package/dist/esm/classes/queue-scheduler.js +0 -195
  77. package/dist/esm/classes/queue-scheduler.js.map +0 -1
  78. package/dist/esm/commands/moveToActive-8.lua +0 -54
  79. package/dist/esm/interfaces/queue-scheduler-options.d.ts +0 -23
  80. package/dist/esm/interfaces/queue-scheduler-options.js +0 -2
  81. 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,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=queue-scheduler-options.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"queue-scheduler-options.js","sourceRoot":"","sources":["../../../src/interfaces/queue-scheduler-options.ts"],"names":[],"mappings":""}