bullmq 1.14.6 → 1.15.1
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 +2 -4
- package/dist/bullmq.d.ts +8 -1
- package/dist/classes/child-pool.js.map +1 -1
- package/dist/classes/queue.d.ts +4 -0
- package/dist/classes/queue.js +22 -1
- package/dist/classes/queue.js.map +1 -1
- package/dist/classes/scripts.d.ts +4 -0
- package/dist/classes/scripts.js +15 -0
- package/dist/classes/scripts.js.map +1 -1
- package/dist/commands/obliterate-2.lua +119 -0
- package/dist/interfaces/queue-options.d.ts +0 -2
- package/dist/interfaces/queue-options.js.map +1 -1
- package/dist/test/test_obliterate.d.ts +1 -0
- package/dist/test/test_obliterate.js +104 -0
- package/dist/test/test_obliterate.js.map +1 -0
- package/dist/utils.d.ts +1 -1
- package/dist/utils.js.map +1 -1
- package/docs/gitbook/.gitbook/assets/image.png +0 -0
- package/docs/gitbook/CHANGELOG.md +28 -0
- package/docs/gitbook/SUMMARY.md +3 -0
- package/docs/gitbook/guide/jobs/fifo.md +1 -1
- package/docs/gitbook/guide/jobs/getters.md +36 -0
- package/docs/gitbook/guide/jobs/repeatable.md +1 -1
- package/docs/gitbook/guide/workers/graceful-shutdown.md +18 -0
- package/docs/gitbook/guide/workers/pausing-queues.md +26 -0
- package/docs/gitbook/guide/workers/sandboxed-processors.md +1 -1
- package/package.json +1 -1
- package/src/classes/child-pool.ts +1 -1
- package/src/classes/queue.ts +28 -1
- package/src/classes/scripts.ts +21 -0
- package/src/commands/obliterate-2.lua +119 -0
- package/src/interfaces/queue-options.ts +0 -3
- package/src/test/test_obliterate.ts +127 -0
- package/src/utils.ts +1 -1
package/README.md
CHANGED
@@ -29,11 +29,9 @@
|
|
29
29
|
</p>
|
30
30
|
</div>
|
31
31
|
|
32
|
-
#
|
32
|
+
# NEW! Tutorials
|
33
33
|
|
34
|
-
|
35
|
-
|
36
|
-
Please vote here: https://twitter.com/manast/status/1318168684049977345
|
34
|
+
You can find tutorials and news in this blog: https://blog.taskforce.sh/
|
37
35
|
|
38
36
|
# Official FrontEnd
|
39
37
|
|
package/dist/bullmq.d.ts
CHANGED
@@ -314,6 +314,10 @@ export declare class Queue<T = any, R = any, N extends string = string> extends
|
|
314
314
|
*/
|
315
315
|
drain(delayed?: boolean): Promise<[Error, any][]>;
|
316
316
|
clean(grace: number, limit: number, type?: 'completed' | 'wait' | 'active' | 'paused' | 'delayed' | 'failed'): Promise<any>;
|
317
|
+
obliterate(opts?: {
|
318
|
+
force?: boolean;
|
319
|
+
count?: number;
|
320
|
+
}): Promise<void>;
|
317
321
|
trimEvents(maxLength: number): Promise<number>;
|
318
322
|
}
|
319
323
|
|
@@ -337,7 +341,6 @@ export declare class QueueBase extends EventEmitter {
|
|
337
341
|
|
338
342
|
export declare interface QueueBaseOptions {
|
339
343
|
connection?: ConnectionOptions;
|
340
|
-
client?: Redis;
|
341
344
|
/**
|
342
345
|
* Prefix for all queue keys.
|
343
346
|
*/
|
@@ -652,6 +655,10 @@ export declare class Scripts {
|
|
652
655
|
static updateDelaySet(queue: QueueBase, delayedTimestamp: number): Promise<any>;
|
653
656
|
static promote(queue: QueueBase, jobId: string): Promise<any>;
|
654
657
|
static moveStalledJobsToWait(queue: QueueScheduler): Promise<any>;
|
658
|
+
static obliterate(queue: Queue, opts: {
|
659
|
+
force: boolean;
|
660
|
+
count: number;
|
661
|
+
}): Promise<any>;
|
655
662
|
}
|
656
663
|
|
657
664
|
export declare interface Strategies {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"child-pool.js","sourceRoot":"","sources":["../../src/classes/child-pool.ts"],"names":[],"mappings":";;;AAAA,iDAAmD;AACnD,6BAA6B;AAC7B,mCAAkD;AAClD,oCAAoC;AACpC,yBAAyB;AACzB,+BAAiC;AACjC,mDAA4C;AAE5C,MAAM,IAAI,GAAG,gBAAS,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;AAEhC,MAAM,kBAAkB,GAAG,KAAM,CAAC;AAMlC,MAAM,eAAe,GAAG,KAAK,EAAE,QAAkB,EAAqB,EAAE;IACtE,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,MAAM,aAAa,GAAa,EAAE,CAAC;IAEnC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QACxC,MAAM,GAAG,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;QACxB,IAAI,GAAG,CAAC,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE;YACnC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;SACpB;aAAM;YACL,MAAM,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YAClC,MAAM,IAAI,GAAG,MAAM,OAAO,EAAE,CAAC;YAC7B,aAAa,CAAC,IAAI,CAAC,GAAG,OAAO,IAAI,IAAI,EAAE,CAAC,CAAC;SAC1C;KACF;IAED,OAAO,QAAQ,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;AACxC,CAAC,CAAC;AAEF,KAAK,UAAU,SAAS,CAAC,KAAmB,EAAE,WAAmB;IAC/D,MAAM,UAAU,GAAG,IAAI,OAAO,
|
1
|
+
{"version":3,"file":"child-pool.js","sourceRoot":"","sources":["../../src/classes/child-pool.ts"],"names":[],"mappings":"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"}
|
package/dist/classes/queue.d.ts
CHANGED
@@ -56,5 +56,9 @@ export declare class Queue<T = any, R = any, N extends string = string> extends
|
|
56
56
|
*/
|
57
57
|
drain(delayed?: boolean): Promise<[Error, any][]>;
|
58
58
|
clean(grace: number, limit: number, type?: 'completed' | 'wait' | 'active' | 'paused' | 'delayed' | 'failed'): Promise<any>;
|
59
|
+
obliterate(opts?: {
|
60
|
+
force?: boolean;
|
61
|
+
count?: number;
|
62
|
+
}): Promise<void>;
|
59
63
|
trimEvents(maxLength: number): Promise<number>;
|
60
64
|
}
|
package/dist/classes/queue.js
CHANGED
@@ -123,7 +123,7 @@ class Queue extends _1.QueueGetters {
|
|
123
123
|
return multi.exec();
|
124
124
|
}
|
125
125
|
}
|
126
|
-
|
126
|
+
/* @method clean
|
127
127
|
*
|
128
128
|
* Cleans jobs from a queue. Similar to drain but keeps jobs within a certain
|
129
129
|
* grace period.
|
@@ -138,6 +138,27 @@ class Queue extends _1.QueueGetters {
|
|
138
138
|
this.emit('cleaned', jobs, type);
|
139
139
|
return jobs;
|
140
140
|
}
|
141
|
+
/* @method obliterate
|
142
|
+
*
|
143
|
+
* Completely destroys the queue and all of its contents irreversibly.
|
144
|
+
* This method will the *pause* the queue and requires that there are no
|
145
|
+
* active jobs. It is possible to bypass this requirement, i.e. not
|
146
|
+
* having active jobs using the "force" option.
|
147
|
+
*
|
148
|
+
* Note: This operation requires to iterate on all the jobs stored in the queue
|
149
|
+
* and can be slow for very large queues.
|
150
|
+
*
|
151
|
+
* @param { { force: boolean, count: number }} opts. Use force = true to force obliteration even
|
152
|
+
* with active jobs in the queue. Use count with the maximun number of deleted keys per iteration,
|
153
|
+
* 1000 is the default.
|
154
|
+
*/
|
155
|
+
async obliterate(opts) {
|
156
|
+
await this.pause();
|
157
|
+
let cursor = 0;
|
158
|
+
do {
|
159
|
+
cursor = await scripts_1.Scripts.obliterate(this, Object.assign({ force: false, count: 1000 }, opts));
|
160
|
+
} while (cursor);
|
161
|
+
}
|
141
162
|
async trimEvents(maxLength) {
|
142
163
|
const client = await this.client;
|
143
164
|
return client.xtrim(this.keys.events, 'MAXLEN', '~', maxLength);
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"queue.js","sourceRoot":"","sources":["../../src/classes/queue.ts"],"names":[],"mappings":"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
|
1
|
+
{"version":3,"file":"queue.js","sourceRoot":"","sources":["../../src/classes/queue.ts"],"names":[],"mappings":"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"}
|
@@ -41,4 +41,8 @@ export declare class Scripts {
|
|
41
41
|
static updateDelaySet(queue: QueueBase, delayedTimestamp: number): Promise<any>;
|
42
42
|
static promote(queue: QueueBase, jobId: string): Promise<any>;
|
43
43
|
static moveStalledJobsToWait(queue: QueueScheduler): Promise<any>;
|
44
|
+
static obliterate(queue: Queue, opts: {
|
45
|
+
force: boolean;
|
46
|
+
count: number;
|
47
|
+
}): Promise<any>;
|
44
48
|
}
|
package/dist/classes/scripts.js
CHANGED
@@ -308,6 +308,21 @@ class Scripts {
|
|
308
308
|
];
|
309
309
|
return client.moveStalledJobsToWait(keys.concat(args));
|
310
310
|
}
|
311
|
+
static async obliterate(queue, opts) {
|
312
|
+
const client = await queue.client;
|
313
|
+
const keys = [queue.keys.meta, queue.toKey('')];
|
314
|
+
const args = [opts.count, opts.force ? 'force' : null];
|
315
|
+
const result = await client.obliterate(keys.concat(args));
|
316
|
+
if (result < 0) {
|
317
|
+
switch (result) {
|
318
|
+
case -1:
|
319
|
+
throw new Error('Cannot obliterate non-paused queue');
|
320
|
+
case -2:
|
321
|
+
throw new Error('Cannot obliterate queue with active jobs');
|
322
|
+
}
|
323
|
+
}
|
324
|
+
return result;
|
325
|
+
}
|
311
326
|
}
|
312
327
|
exports.Scripts = Scripts;
|
313
328
|
function raw2jobData(raw) {
|
@@ -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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"}
|
@@ -0,0 +1,119 @@
|
|
1
|
+
--[[
|
2
|
+
Completely obliterates a queue and all of its contents
|
3
|
+
Input:
|
4
|
+
|
5
|
+
KEYS[1] meta
|
6
|
+
KEYS[2] base
|
7
|
+
|
8
|
+
ARGV[1] count
|
9
|
+
ARGV[2] force
|
10
|
+
]]
|
11
|
+
|
12
|
+
-- This command completely destroys a queue including all of its jobs, current or past
|
13
|
+
-- leaving no trace of its existence. Since this script needs to iterate to find all the job
|
14
|
+
-- keys, consider that this call may be slow for very large queues.
|
15
|
+
|
16
|
+
-- The queue needs to be "paused" or it will return an error
|
17
|
+
-- If the queue has currently active jobs then the script by default will return error,
|
18
|
+
-- however this behaviour can be overrided using the `force` option.
|
19
|
+
local maxCount = tonumber(ARGV[1])
|
20
|
+
local count = 0
|
21
|
+
local baseKey = KEYS[2]
|
22
|
+
|
23
|
+
local rcall = redis.call
|
24
|
+
local function getListItems(keyName)
|
25
|
+
return rcall('LRANGE', keyName, 0, -1)
|
26
|
+
end
|
27
|
+
|
28
|
+
local function getZSetItems(keyName)
|
29
|
+
return rcall('ZRANGE', keyName, 0, -1)
|
30
|
+
end
|
31
|
+
|
32
|
+
local function getSetItems(keyName)
|
33
|
+
return rcall('SMEMBERS', keyName, 0, -1)
|
34
|
+
end
|
35
|
+
|
36
|
+
local function removeKeys(parentKey, keys)
|
37
|
+
for i, key in ipairs(keys) do
|
38
|
+
if(count > maxCount) then
|
39
|
+
return true
|
40
|
+
end
|
41
|
+
rcall("DEL", baseKey .. key)
|
42
|
+
count = count + 1
|
43
|
+
end
|
44
|
+
rcall("DEL", parentKey)
|
45
|
+
return false
|
46
|
+
end
|
47
|
+
|
48
|
+
local function removeLockKeys(keys)
|
49
|
+
for i, key in ipairs(keys) do
|
50
|
+
if(count > maxCount) then
|
51
|
+
return true
|
52
|
+
end
|
53
|
+
rcall("DEL", baseKey .. key .. ':lock')
|
54
|
+
count = count + 1
|
55
|
+
end
|
56
|
+
return false
|
57
|
+
end
|
58
|
+
|
59
|
+
-- 1) Check if paused, if not return with error.
|
60
|
+
if rcall("HEXISTS", KEYS[1], "paused") ~= 1 then
|
61
|
+
return -1 -- Error, NotPaused
|
62
|
+
end
|
63
|
+
|
64
|
+
-- 2) Check if there are active jobs, if there are and not "force" return error.
|
65
|
+
local activeKey = baseKey .. 'active'
|
66
|
+
local activeKeys = getListItems(activeKey)
|
67
|
+
if (#activeKeys > 0) then
|
68
|
+
if(ARGV[2] == "") then
|
69
|
+
return -2 -- Error, ExistsActiveJobs
|
70
|
+
end
|
71
|
+
end
|
72
|
+
|
73
|
+
if(removeLockKeys(activeKeys)) then
|
74
|
+
return 1
|
75
|
+
end
|
76
|
+
|
77
|
+
if(removeKeys(activeKey, activeKeys)) then
|
78
|
+
return 1
|
79
|
+
end
|
80
|
+
|
81
|
+
local waitKey = baseKey .. 'paused'
|
82
|
+
if(removeKeys(waitKey, getListItems(waitKey))) then
|
83
|
+
return 1
|
84
|
+
end
|
85
|
+
|
86
|
+
local delayedKey = baseKey .. 'delayed'
|
87
|
+
if(removeKeys(delayedKey, getZSetItems(delayedKey))) then
|
88
|
+
return 1
|
89
|
+
end
|
90
|
+
|
91
|
+
local completedKey = baseKey .. 'completed'
|
92
|
+
if(removeKeys(completedKey, getZSetItems(completedKey))) then
|
93
|
+
return 1
|
94
|
+
end
|
95
|
+
|
96
|
+
local failedKey = baseKey .. 'failed'
|
97
|
+
if(removeKeys(failedKey, getZSetItems(failedKey))) then
|
98
|
+
return 1
|
99
|
+
end
|
100
|
+
|
101
|
+
local waitKey = baseKey .. 'wait'
|
102
|
+
if(removeKeys(waitKey, getListItems(waitKey))) then
|
103
|
+
return 1
|
104
|
+
end
|
105
|
+
|
106
|
+
local waitKey = baseKey .. 'wait'
|
107
|
+
if(removeKeys(waitKey, getListItems(waitKey))) then
|
108
|
+
return 1
|
109
|
+
end
|
110
|
+
|
111
|
+
rcall("DEL", baseKey .. 'priority')
|
112
|
+
rcall("DEL", baseKey .. 'events')
|
113
|
+
rcall("DEL", baseKey .. 'delay')
|
114
|
+
rcall("DEL", baseKey .. 'stalled-check')
|
115
|
+
rcall("DEL", baseKey .. 'stalled')
|
116
|
+
rcall("DEL", baseKey .. 'id')
|
117
|
+
rcall("DEL", baseKey .. 'meta')
|
118
|
+
|
119
|
+
return 0
|
@@ -1,5 +1,4 @@
|
|
1
1
|
import { JobsOptions } from '../interfaces';
|
2
|
-
import { Redis } from 'ioredis';
|
3
2
|
import { ConnectionOptions } from './redis-options';
|
4
3
|
export declare enum ClientType {
|
5
4
|
blocking = "blocking",
|
@@ -7,7 +6,6 @@ export declare enum ClientType {
|
|
7
6
|
}
|
8
7
|
export interface QueueBaseOptions {
|
9
8
|
connection?: ConnectionOptions;
|
10
|
-
client?: Redis;
|
11
9
|
/**
|
12
10
|
* Prefix for all queue keys.
|
13
11
|
*/
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"queue-options.js","sourceRoot":"","sources":["../../src/interfaces/queue-options.ts"],"names":[],"mappings":";;;
|
1
|
+
{"version":3,"file":"queue-options.js","sourceRoot":"","sources":["../../src/interfaces/queue-options.ts"],"names":[],"mappings":";;;AAGA,IAAY,UAGX;AAHD,WAAY,UAAU;IACpB,mCAAqB,CAAA;IACrB,+BAAiB,CAAA;AACnB,CAAC,EAHW,UAAU,GAAV,kBAAU,KAAV,kBAAU,QAGrB"}
|
@@ -0,0 +1 @@
|
|
1
|
+
export {};
|
@@ -0,0 +1,104 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
const classes_1 = require("../classes");
|
4
|
+
const utils_1 = require("@src/utils");
|
5
|
+
const chai_1 = require("chai");
|
6
|
+
const IORedis = require("ioredis");
|
7
|
+
const mocha_1 = require("mocha");
|
8
|
+
const uuid_1 = require("uuid");
|
9
|
+
mocha_1.describe('Obliterate', () => {
|
10
|
+
let queue;
|
11
|
+
let queueEvents;
|
12
|
+
let queueName;
|
13
|
+
mocha_1.beforeEach(async function () {
|
14
|
+
queueName = 'test-' + uuid_1.v4();
|
15
|
+
queue = new classes_1.Queue(queueName);
|
16
|
+
queueEvents = new classes_1.QueueEvents(queueName);
|
17
|
+
await queueEvents.waitUntilReady();
|
18
|
+
});
|
19
|
+
afterEach(async function () {
|
20
|
+
await queue.close();
|
21
|
+
await queueEvents.close();
|
22
|
+
await utils_1.removeAllQueueData(new IORedis(), queueName);
|
23
|
+
});
|
24
|
+
mocha_1.it('should obliterate an empty queue', async () => {
|
25
|
+
await queue.waitUntilReady();
|
26
|
+
await queue.obliterate();
|
27
|
+
const client = await queue.client;
|
28
|
+
const keys = await client.keys(`bull:${queue.name}:*`);
|
29
|
+
chai_1.expect(keys.length).to.be.eql(0);
|
30
|
+
});
|
31
|
+
mocha_1.it('should obliterate a queue with jobs in different statuses', async () => {
|
32
|
+
await queue.waitUntilReady();
|
33
|
+
await queue.add('test', { foo: 'bar' });
|
34
|
+
await queue.add('test', { foo: 'bar2' });
|
35
|
+
await queue.add('test', { foo: 'bar3' }, { delay: 5000 });
|
36
|
+
const job = await queue.add('test', { qux: 'baz' });
|
37
|
+
let first = true;
|
38
|
+
const worker = new classes_1.Worker(queue.name, async (job) => {
|
39
|
+
if (first) {
|
40
|
+
first = false;
|
41
|
+
throw new Error('failed first');
|
42
|
+
}
|
43
|
+
return utils_1.delay(250);
|
44
|
+
});
|
45
|
+
await worker.waitUntilReady();
|
46
|
+
await job.waitUntilFinished(queueEvents);
|
47
|
+
await queue.obliterate();
|
48
|
+
const client = await queue.client;
|
49
|
+
const keys = await client.keys(`bull:${queue.name}:*`);
|
50
|
+
chai_1.expect(keys.length).to.be.eql(0);
|
51
|
+
await worker.close();
|
52
|
+
});
|
53
|
+
mocha_1.it('should raise exception if queue has active jobs', async () => {
|
54
|
+
await queue.waitUntilReady();
|
55
|
+
await queue.add('test', { foo: 'bar' });
|
56
|
+
const job = await queue.add('test', { qux: 'baz' });
|
57
|
+
await queue.add('test', { foo: 'bar2' });
|
58
|
+
await queue.add('test', { foo: 'bar3' }, { delay: 5000 });
|
59
|
+
let first = true;
|
60
|
+
const worker = new classes_1.Worker(queue.name, async (job) => {
|
61
|
+
if (first) {
|
62
|
+
first = false;
|
63
|
+
throw new Error('failed first');
|
64
|
+
}
|
65
|
+
return utils_1.delay(250);
|
66
|
+
});
|
67
|
+
await worker.waitUntilReady();
|
68
|
+
await job.waitUntilFinished(queueEvents);
|
69
|
+
try {
|
70
|
+
await queue.obliterate();
|
71
|
+
}
|
72
|
+
catch (err) {
|
73
|
+
const client = await queue.client;
|
74
|
+
const keys = await client.keys(`bull:${queue.name}:*`);
|
75
|
+
chai_1.expect(keys.length).to.be.not.eql(0);
|
76
|
+
await worker.close();
|
77
|
+
return;
|
78
|
+
}
|
79
|
+
throw new Error('Should raise an exception if there are active jobs');
|
80
|
+
});
|
81
|
+
mocha_1.it('should obliterate if queue has active jobs using "force"', async () => {
|
82
|
+
await queue.waitUntilReady();
|
83
|
+
await queue.add('test', { foo: 'bar' });
|
84
|
+
const job = await queue.add('test', { qux: 'baz' });
|
85
|
+
await queue.add('test', { foo: 'bar2' });
|
86
|
+
await queue.add('test', { foo: 'bar3' }, { delay: 5000 });
|
87
|
+
let first = true;
|
88
|
+
const worker = new classes_1.Worker(queue.name, async (job) => {
|
89
|
+
if (first) {
|
90
|
+
first = false;
|
91
|
+
throw new Error('failed first');
|
92
|
+
}
|
93
|
+
return utils_1.delay(250);
|
94
|
+
});
|
95
|
+
await worker.waitUntilReady();
|
96
|
+
await job.waitUntilFinished(queueEvents);
|
97
|
+
await queue.obliterate({ force: true });
|
98
|
+
const client = await queue.client;
|
99
|
+
const keys = await client.keys(`bull:${queue.name}:*`);
|
100
|
+
chai_1.expect(keys.length).to.be.eql(0);
|
101
|
+
await worker.close();
|
102
|
+
});
|
103
|
+
});
|
104
|
+
//# sourceMappingURL=test_obliterate.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"test_obliterate.js","sourceRoot":"","sources":["../../src/test/test_obliterate.ts"],"names":[],"mappings":"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"}
|
package/dist/utils.d.ts
CHANGED
@@ -9,4 +9,4 @@ export declare function array2obj(arr: string[]): {
|
|
9
9
|
};
|
10
10
|
export declare function delay(ms: number): Promise<void>;
|
11
11
|
export declare function isRedisInstance(obj: any): boolean;
|
12
|
-
export declare function removeAllQueueData(client: Redis, queueName: string, prefix?: string): Promise<
|
12
|
+
export declare function removeAllQueueData(client: Redis, queueName: string, prefix?: string): Promise<void>;
|
package/dist/utils.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":";;;AAEa,QAAA,WAAW,GAA6B,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AAErE,SAAgB,QAAQ,CAAC,EAAyB,EAAE,GAAQ,EAAE,IAAW;IACvE,IAAI;QACF,OAAO,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;KAC5B;IAAC,OAAO,CAAC,EAAE;QACV,mBAAW,CAAC,KAAK,GAAG,CAAC,CAAC;QACtB,OAAO,mBAAW,CAAC;KACpB;AACH,CAAC;AAPD,4BAOC;AAED,SAAgB,OAAO,CAAC,GAAW;IACjC,KAAK,MAAM,GAAG,IAAI,GAAG,EAAE;QACrB,IAAI,GAAG,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE;YAC3B,OAAO,KAAK,CAAC;SACd;KACF;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAPD,0BAOC;AAED,SAAgB,SAAS,CAAC,GAAa;IACrC,MAAM,GAAG,GAAgC,EAAE,CAAC;IAC5C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;QACtC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;KAC1B;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAND,8BAMC;AAED,SAAgB,KAAK,CAAC,EAAU;IAC9B,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE;QAC3B,UAAU,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC;IAClC,CAAC,CAAC,CAAC;AACL,CAAC;AAJD,sBAIC;AAED,SAAgB,eAAe,CAAC,GAAQ;IACtC,IAAI,CAAC,GAAG,EAAE;QACR,OAAO,KAAK,CAAC;KACd;IACD,MAAM,QAAQ,GAAG,CAAC,SAAS,EAAE,YAAY,EAAE,WAAW,CAAC,CAAC;IACxD,OAAO,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,GAAG,CAAC,IAAI,CAAC,KAAK,UAAU,CAAC,CAAC;AACjE,CAAC;AAND,0CAMC;AAEM,KAAK,UAAU,kBAAkB,CACtC,MAAa,EACb,SAAiB,EACjB,MAAM,GAAG,MAAM;IAEf,MAAM,OAAO,GAAG,GAAG,MAAM,IAAI,SAAS,IAAI,CAAC;IAC3C,OAAO,IAAI,OAAO,
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"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"}
|
Binary file
|
@@ -1,3 +1,31 @@
|
|
1
|
+
## [1.15.1](https://github.com/taskforcesh/bullmq/compare/v1.15.0...v1.15.1) (2021-03-19)
|
2
|
+
|
3
|
+
|
4
|
+
### Bug Fixes
|
5
|
+
|
6
|
+
* **obliterate:** safer implementation ([82f571f](https://github.com/taskforcesh/bullmq/commit/82f571f2548c61c776b897fd1c5050bb09c8afca))
|
7
|
+
|
8
|
+
# [1.15.0](https://github.com/taskforcesh/bullmq/compare/v1.14.8...v1.15.0) (2021-03-18)
|
9
|
+
|
10
|
+
|
11
|
+
### Features
|
12
|
+
|
13
|
+
* add method to "obliterate" a queue, fixes [#430](https://github.com/taskforcesh/bullmq/issues/430) ([624be0e](https://github.com/taskforcesh/bullmq/commit/624be0ed48159c2aa405025938925a723330e0c2))
|
14
|
+
|
15
|
+
## [1.14.8](https://github.com/taskforcesh/bullmq/compare/v1.14.7...v1.14.8) (2021-03-06)
|
16
|
+
|
17
|
+
|
18
|
+
### Bug Fixes
|
19
|
+
|
20
|
+
* specify promise type to make TS 4.1 and 4.2 happy. ([#418](https://github.com/taskforcesh/bullmq/issues/418)) ([702f609](https://github.com/taskforcesh/bullmq/commit/702f609b410d8b0652c2d0504a8a67526966fdc3))
|
21
|
+
|
22
|
+
## [1.14.7](https://github.com/taskforcesh/bullmq/compare/v1.14.6...v1.14.7) (2021-02-16)
|
23
|
+
|
24
|
+
|
25
|
+
### Bug Fixes
|
26
|
+
|
27
|
+
* remove "client" property of QueueBaseOptions ([#324](https://github.com/taskforcesh/bullmq/issues/324)) ([e0b9e71](https://github.com/taskforcesh/bullmq/commit/e0b9e71c4da4a93af54c4386af461c61ab5f146c))
|
28
|
+
|
1
29
|
## [1.14.6](https://github.com/taskforcesh/bullmq/compare/v1.14.5...v1.14.6) (2021-02-16)
|
2
30
|
|
3
31
|
|
package/docs/gitbook/SUMMARY.md
CHANGED
@@ -12,8 +12,10 @@
|
|
12
12
|
* [Queues](guide/queues.md)
|
13
13
|
* [Workers](guide/workers/README.md)
|
14
14
|
* [Concurrency](guide/workers/concurrency.md)
|
15
|
+
* [Graceful shutdown](guide/workers/graceful-shutdown.md)
|
15
16
|
* [Stalled Jobs](guide/workers/stalled-jobs.md)
|
16
17
|
* [Sandboxed processors](guide/workers/sandboxed-processors.md)
|
18
|
+
* [Pausing queues](guide/workers/pausing-queues.md)
|
17
19
|
* [Jobs](guide/jobs/README.md)
|
18
20
|
* [FIFO](guide/jobs/fifo.md)
|
19
21
|
* [LIFO](guide/jobs/lifo.md)
|
@@ -21,6 +23,7 @@
|
|
21
23
|
* [Repeatable](guide/jobs/repeatable.md)
|
22
24
|
* [Prioritized](guide/jobs/proritized.md)
|
23
25
|
* [Stalled](guide/jobs/stalled.md)
|
26
|
+
* [Getters](guide/jobs/getters.md)
|
24
27
|
* [Rate limiting](guide/rate-limiting.md)
|
25
28
|
* [Retrying failing jobs](guide/retrying-failing-jobs.md)
|
26
29
|
* [Returning job data](guide/returning-job-data.md)
|
@@ -0,0 +1,36 @@
|
|
1
|
+
# Getters
|
2
|
+
|
3
|
+
When jobs are added to a queue, they will be in different statuses during their lifetime. BullMQ provides methods to retrieve information and jobs from the different statuses.
|
4
|
+
|
5
|
+
|
6
|
+
|
7
|
+

|
8
|
+
|
9
|
+
#### Job Counts
|
10
|
+
|
11
|
+
It is often necessary to know how many jobs are in a given status:
|
12
|
+
|
13
|
+
```typescript
|
14
|
+
import { Queue } from 'bullmq'
|
15
|
+
|
16
|
+
const myQueue = new Queue('Paint');
|
17
|
+
|
18
|
+
const counts = await myQueue.getJobCounts('wait', 'completed', 'failed');
|
19
|
+
|
20
|
+
// Returns an object like this { wait: number, completed: number, failed: number }
|
21
|
+
```
|
22
|
+
|
23
|
+
The available status are: _completed, failed, delayed, active, wait, paused_ and _repeat._
|
24
|
+
|
25
|
+
#### Get Jobs
|
26
|
+
|
27
|
+
It is also possible to retrieve the jobs with pagination style semantics. For example:
|
28
|
+
|
29
|
+
```typescript
|
30
|
+
const completed = await myQueue.getJobs(['completed'], 0, 100, true);
|
31
|
+
|
32
|
+
// returns the oldest 100 jobs
|
33
|
+
```
|
34
|
+
|
35
|
+
|
36
|
+
|
@@ -0,0 +1,18 @@
|
|
1
|
+
# Graceful shutdown
|
2
|
+
|
3
|
+
BullMQ supports graceful shutdowns of the workers. This is important so that we can minimize stalled jobs when a worker for some reason must be shutdown. But note that even in the event of an "ungraceful shutdown", the stalled mechanism in BullMQ allows for new workers to pick up stalled jobs and continue working on them.
|
4
|
+
|
5
|
+
{% hint style="danger" %}
|
6
|
+
In order for stalled jobs to be picked up by other workers you need to have a [QueueScheduler](https://docs.bullmq.io/guide/queuescheduler) class running in the system.
|
7
|
+
{% endhint %}
|
8
|
+
|
9
|
+
In order to perform a shutdown just call the _**close**_ method:
|
10
|
+
|
11
|
+
```typescript
|
12
|
+
await worker.close();
|
13
|
+
```
|
14
|
+
|
15
|
+
The above call will mark the worker as _closing_ so it will not pick up new jobs, at the same time it will wait for all the current jobs to be processed \(or failed\). This call will not timeout by itself, so you should make sure that your jobs finalize in a timely maner. If this call fails for some reason or it is not able to complete, the pending jobs will be marked as stalled and processed by other workers \(if correct stalled options are configured on the [QueueScheduler](https://github.com/taskforcesh/bullmq/blob/3a8873b6453405e6f8e57331f6cee30977406670/docs/gitbook/api/bullmq.queuescheduleroptions.md)\).
|
16
|
+
|
17
|
+
|
18
|
+
|
@@ -0,0 +1,26 @@
|
|
1
|
+
# Pausing queues
|
2
|
+
|
3
|
+
BullMQ supports pausing queues globally or locally. A queue is paused globally when no workers will pick up any jobs from the queue. When you pause a queue, the workers that are currently busy processing a job, will continue working on that job until it completes \(or failed\), and then will just keep idling until the queue has been unpaused.
|
4
|
+
|
5
|
+
Pausing a queue is performed by calling the _**pause**_ method on a [queue](https://github.com/taskforcesh/bullmq/blob/master/docs/gitbook/api/bullmq.queue.md) instance:
|
6
|
+
|
7
|
+
```typescript
|
8
|
+
await myQueue.pause();
|
9
|
+
```
|
10
|
+
|
11
|
+
It is also possible to pause a given worker instance, this is what we call pause locally. This pause works in a similar way as the global pause in the sense that the worker will conclude processing the jobs it has already started but will not process any new ones:
|
12
|
+
|
13
|
+
```typescript
|
14
|
+
await myWorker.pause();
|
15
|
+
```
|
16
|
+
|
17
|
+
The call above will be executed almost immediately, but note it is an async method, this is because it can also be called with an extra parameter so that the call waits for all the jobs in that given worker to complete:
|
18
|
+
|
19
|
+
```typescript
|
20
|
+
await myWorker.pause(true);
|
21
|
+
```
|
22
|
+
|
23
|
+
The call is useful if for some reason you want to know exactly when the jobs in the worker have all finalized.
|
24
|
+
|
25
|
+
|
26
|
+
|
package/package.json
CHANGED
@@ -33,7 +33,7 @@ const convertExecArgv = async (execArgv: string[]): Promise<string[]> => {
|
|
33
33
|
};
|
34
34
|
|
35
35
|
async function initChild(child: ChildProcess, processFile: string) {
|
36
|
-
const onComplete = new Promise(resolve => {
|
36
|
+
const onComplete = new Promise<void>(resolve => {
|
37
37
|
const onMessageHandler = (msg: any) => {
|
38
38
|
if (msg.cmd === 'init-complete') {
|
39
39
|
resolve();
|
package/src/classes/queue.ts
CHANGED
@@ -175,7 +175,7 @@ export class Queue<
|
|
175
175
|
}
|
176
176
|
}
|
177
177
|
|
178
|
-
|
178
|
+
/* @method clean
|
179
179
|
*
|
180
180
|
* Cleans jobs from a queue. Similar to drain but keeps jobs within a certain
|
181
181
|
* grace period.
|
@@ -207,6 +207,33 @@ export class Queue<
|
|
207
207
|
return jobs;
|
208
208
|
}
|
209
209
|
|
210
|
+
/* @method obliterate
|
211
|
+
*
|
212
|
+
* Completely destroys the queue and all of its contents irreversibly.
|
213
|
+
* This method will the *pause* the queue and requires that there are no
|
214
|
+
* active jobs. It is possible to bypass this requirement, i.e. not
|
215
|
+
* having active jobs using the "force" option.
|
216
|
+
*
|
217
|
+
* Note: This operation requires to iterate on all the jobs stored in the queue
|
218
|
+
* and can be slow for very large queues.
|
219
|
+
*
|
220
|
+
* @param { { force: boolean, count: number }} opts. Use force = true to force obliteration even
|
221
|
+
* with active jobs in the queue. Use count with the maximun number of deleted keys per iteration,
|
222
|
+
* 1000 is the default.
|
223
|
+
*/
|
224
|
+
async obliterate(opts?: { force?: boolean; count?: number }) {
|
225
|
+
await this.pause();
|
226
|
+
|
227
|
+
let cursor = 0;
|
228
|
+
do {
|
229
|
+
cursor = await Scripts.obliterate(this, {
|
230
|
+
force: false,
|
231
|
+
count: 1000,
|
232
|
+
...opts,
|
233
|
+
});
|
234
|
+
} while (cursor);
|
235
|
+
}
|
236
|
+
|
210
237
|
async trimEvents(maxLength: number) {
|
211
238
|
const client = await this.client;
|
212
239
|
return client.xtrim(this.keys.events, 'MAXLEN', '~', maxLength);
|
package/src/classes/scripts.ts
CHANGED
@@ -472,6 +472,27 @@ export class Scripts {
|
|
472
472
|
return (<any>client).moveStalledJobsToWait(keys.concat(args));
|
473
473
|
}
|
474
474
|
|
475
|
+
static async obliterate(
|
476
|
+
queue: Queue,
|
477
|
+
opts: { force: boolean; count: number },
|
478
|
+
) {
|
479
|
+
const client = await queue.client;
|
480
|
+
|
481
|
+
const keys: (string | number)[] = [queue.keys.meta, queue.toKey('')];
|
482
|
+
const args = [opts.count, opts.force ? 'force' : null];
|
483
|
+
|
484
|
+
const result = await (<any>client).obliterate(keys.concat(args));
|
485
|
+
if (result < 0) {
|
486
|
+
switch (result) {
|
487
|
+
case -1:
|
488
|
+
throw new Error('Cannot obliterate non-paused queue');
|
489
|
+
case -2:
|
490
|
+
throw new Error('Cannot obliterate queue with active jobs');
|
491
|
+
}
|
492
|
+
}
|
493
|
+
return result;
|
494
|
+
}
|
495
|
+
|
475
496
|
/*
|
476
497
|
// *
|
477
498
|
// * Attempts to reprocess a job
|
@@ -0,0 +1,119 @@
|
|
1
|
+
--[[
|
2
|
+
Completely obliterates a queue and all of its contents
|
3
|
+
Input:
|
4
|
+
|
5
|
+
KEYS[1] meta
|
6
|
+
KEYS[2] base
|
7
|
+
|
8
|
+
ARGV[1] count
|
9
|
+
ARGV[2] force
|
10
|
+
]]
|
11
|
+
|
12
|
+
-- This command completely destroys a queue including all of its jobs, current or past
|
13
|
+
-- leaving no trace of its existence. Since this script needs to iterate to find all the job
|
14
|
+
-- keys, consider that this call may be slow for very large queues.
|
15
|
+
|
16
|
+
-- The queue needs to be "paused" or it will return an error
|
17
|
+
-- If the queue has currently active jobs then the script by default will return error,
|
18
|
+
-- however this behaviour can be overrided using the `force` option.
|
19
|
+
local maxCount = tonumber(ARGV[1])
|
20
|
+
local count = 0
|
21
|
+
local baseKey = KEYS[2]
|
22
|
+
|
23
|
+
local rcall = redis.call
|
24
|
+
local function getListItems(keyName)
|
25
|
+
return rcall('LRANGE', keyName, 0, -1)
|
26
|
+
end
|
27
|
+
|
28
|
+
local function getZSetItems(keyName)
|
29
|
+
return rcall('ZRANGE', keyName, 0, -1)
|
30
|
+
end
|
31
|
+
|
32
|
+
local function getSetItems(keyName)
|
33
|
+
return rcall('SMEMBERS', keyName, 0, -1)
|
34
|
+
end
|
35
|
+
|
36
|
+
local function removeKeys(parentKey, keys)
|
37
|
+
for i, key in ipairs(keys) do
|
38
|
+
if(count > maxCount) then
|
39
|
+
return true
|
40
|
+
end
|
41
|
+
rcall("DEL", baseKey .. key)
|
42
|
+
count = count + 1
|
43
|
+
end
|
44
|
+
rcall("DEL", parentKey)
|
45
|
+
return false
|
46
|
+
end
|
47
|
+
|
48
|
+
local function removeLockKeys(keys)
|
49
|
+
for i, key in ipairs(keys) do
|
50
|
+
if(count > maxCount) then
|
51
|
+
return true
|
52
|
+
end
|
53
|
+
rcall("DEL", baseKey .. key .. ':lock')
|
54
|
+
count = count + 1
|
55
|
+
end
|
56
|
+
return false
|
57
|
+
end
|
58
|
+
|
59
|
+
-- 1) Check if paused, if not return with error.
|
60
|
+
if rcall("HEXISTS", KEYS[1], "paused") ~= 1 then
|
61
|
+
return -1 -- Error, NotPaused
|
62
|
+
end
|
63
|
+
|
64
|
+
-- 2) Check if there are active jobs, if there are and not "force" return error.
|
65
|
+
local activeKey = baseKey .. 'active'
|
66
|
+
local activeKeys = getListItems(activeKey)
|
67
|
+
if (#activeKeys > 0) then
|
68
|
+
if(ARGV[2] == "") then
|
69
|
+
return -2 -- Error, ExistsActiveJobs
|
70
|
+
end
|
71
|
+
end
|
72
|
+
|
73
|
+
if(removeLockKeys(activeKeys)) then
|
74
|
+
return 1
|
75
|
+
end
|
76
|
+
|
77
|
+
if(removeKeys(activeKey, activeKeys)) then
|
78
|
+
return 1
|
79
|
+
end
|
80
|
+
|
81
|
+
local waitKey = baseKey .. 'paused'
|
82
|
+
if(removeKeys(waitKey, getListItems(waitKey))) then
|
83
|
+
return 1
|
84
|
+
end
|
85
|
+
|
86
|
+
local delayedKey = baseKey .. 'delayed'
|
87
|
+
if(removeKeys(delayedKey, getZSetItems(delayedKey))) then
|
88
|
+
return 1
|
89
|
+
end
|
90
|
+
|
91
|
+
local completedKey = baseKey .. 'completed'
|
92
|
+
if(removeKeys(completedKey, getZSetItems(completedKey))) then
|
93
|
+
return 1
|
94
|
+
end
|
95
|
+
|
96
|
+
local failedKey = baseKey .. 'failed'
|
97
|
+
if(removeKeys(failedKey, getZSetItems(failedKey))) then
|
98
|
+
return 1
|
99
|
+
end
|
100
|
+
|
101
|
+
local waitKey = baseKey .. 'wait'
|
102
|
+
if(removeKeys(waitKey, getListItems(waitKey))) then
|
103
|
+
return 1
|
104
|
+
end
|
105
|
+
|
106
|
+
local waitKey = baseKey .. 'wait'
|
107
|
+
if(removeKeys(waitKey, getListItems(waitKey))) then
|
108
|
+
return 1
|
109
|
+
end
|
110
|
+
|
111
|
+
rcall("DEL", baseKey .. 'priority')
|
112
|
+
rcall("DEL", baseKey .. 'events')
|
113
|
+
rcall("DEL", baseKey .. 'delay')
|
114
|
+
rcall("DEL", baseKey .. 'stalled-check')
|
115
|
+
rcall("DEL", baseKey .. 'stalled')
|
116
|
+
rcall("DEL", baseKey .. 'id')
|
117
|
+
rcall("DEL", baseKey .. 'meta')
|
118
|
+
|
119
|
+
return 0
|
@@ -1,6 +1,4 @@
|
|
1
1
|
import { JobsOptions } from '../interfaces';
|
2
|
-
|
3
|
-
import { Redis } from 'ioredis';
|
4
2
|
import { ConnectionOptions } from './redis-options';
|
5
3
|
|
6
4
|
export enum ClientType {
|
@@ -10,7 +8,6 @@ export enum ClientType {
|
|
10
8
|
|
11
9
|
export interface QueueBaseOptions {
|
12
10
|
connection?: ConnectionOptions;
|
13
|
-
client?: Redis;
|
14
11
|
/**
|
15
12
|
* Prefix for all queue keys.
|
16
13
|
*/
|
@@ -0,0 +1,127 @@
|
|
1
|
+
import { Queue, QueueEvents, QueueScheduler, Worker } from '../classes';
|
2
|
+
import { delay, removeAllQueueData } from '@src/utils';
|
3
|
+
import { expect } from 'chai';
|
4
|
+
import * as IORedis from 'ioredis';
|
5
|
+
import { beforeEach, describe, it } from 'mocha';
|
6
|
+
import { v4 } from 'uuid';
|
7
|
+
|
8
|
+
describe('Obliterate', () => {
|
9
|
+
let queue: Queue;
|
10
|
+
let queueEvents: QueueEvents;
|
11
|
+
let queueName: string;
|
12
|
+
|
13
|
+
beforeEach(async function() {
|
14
|
+
queueName = 'test-' + v4();
|
15
|
+
queue = new Queue(queueName);
|
16
|
+
queueEvents = new QueueEvents(queueName);
|
17
|
+
await queueEvents.waitUntilReady();
|
18
|
+
});
|
19
|
+
|
20
|
+
afterEach(async function() {
|
21
|
+
await queue.close();
|
22
|
+
await queueEvents.close();
|
23
|
+
await removeAllQueueData(new IORedis(), queueName);
|
24
|
+
});
|
25
|
+
|
26
|
+
it('should obliterate an empty queue', async () => {
|
27
|
+
await queue.waitUntilReady();
|
28
|
+
|
29
|
+
await queue.obliterate();
|
30
|
+
|
31
|
+
const client = await queue.client;
|
32
|
+
const keys = await client.keys(`bull:${queue.name}:*`);
|
33
|
+
|
34
|
+
expect(keys.length).to.be.eql(0);
|
35
|
+
});
|
36
|
+
|
37
|
+
it('should obliterate a queue with jobs in different statuses', async () => {
|
38
|
+
await queue.waitUntilReady();
|
39
|
+
|
40
|
+
await queue.add('test', { foo: 'bar' });
|
41
|
+
await queue.add('test', { foo: 'bar2' });
|
42
|
+
await queue.add('test', { foo: 'bar3' }, { delay: 5000 });
|
43
|
+
const job = await queue.add('test', { qux: 'baz' });
|
44
|
+
|
45
|
+
let first = true;
|
46
|
+
const worker = new Worker(queue.name, async job => {
|
47
|
+
if (first) {
|
48
|
+
first = false;
|
49
|
+
throw new Error('failed first');
|
50
|
+
}
|
51
|
+
return delay(250);
|
52
|
+
});
|
53
|
+
await worker.waitUntilReady();
|
54
|
+
|
55
|
+
await job.waitUntilFinished(queueEvents);
|
56
|
+
|
57
|
+
await queue.obliterate();
|
58
|
+
const client = await queue.client;
|
59
|
+
const keys = await client.keys(`bull:${queue.name}:*`);
|
60
|
+
expect(keys.length).to.be.eql(0);
|
61
|
+
|
62
|
+
await worker.close();
|
63
|
+
});
|
64
|
+
|
65
|
+
it('should raise exception if queue has active jobs', async () => {
|
66
|
+
await queue.waitUntilReady();
|
67
|
+
|
68
|
+
await queue.add('test', { foo: 'bar' });
|
69
|
+
const job = await queue.add('test', { qux: 'baz' });
|
70
|
+
|
71
|
+
await queue.add('test', { foo: 'bar2' });
|
72
|
+
await queue.add('test', { foo: 'bar3' }, { delay: 5000 });
|
73
|
+
|
74
|
+
let first = true;
|
75
|
+
const worker = new Worker(queue.name, async job => {
|
76
|
+
if (first) {
|
77
|
+
first = false;
|
78
|
+
throw new Error('failed first');
|
79
|
+
}
|
80
|
+
return delay(250);
|
81
|
+
});
|
82
|
+
await worker.waitUntilReady();
|
83
|
+
|
84
|
+
await job.waitUntilFinished(queueEvents);
|
85
|
+
|
86
|
+
try {
|
87
|
+
await queue.obliterate();
|
88
|
+
} catch (err) {
|
89
|
+
const client = await queue.client;
|
90
|
+
const keys = await client.keys(`bull:${queue.name}:*`);
|
91
|
+
expect(keys.length).to.be.not.eql(0);
|
92
|
+
|
93
|
+
await worker.close();
|
94
|
+
return;
|
95
|
+
}
|
96
|
+
|
97
|
+
throw new Error('Should raise an exception if there are active jobs');
|
98
|
+
});
|
99
|
+
|
100
|
+
it('should obliterate if queue has active jobs using "force"', async () => {
|
101
|
+
await queue.waitUntilReady();
|
102
|
+
|
103
|
+
await queue.add('test', { foo: 'bar' });
|
104
|
+
const job = await queue.add('test', { qux: 'baz' });
|
105
|
+
|
106
|
+
await queue.add('test', { foo: 'bar2' });
|
107
|
+
await queue.add('test', { foo: 'bar3' }, { delay: 5000 });
|
108
|
+
|
109
|
+
let first = true;
|
110
|
+
const worker = new Worker(queue.name, async job => {
|
111
|
+
if (first) {
|
112
|
+
first = false;
|
113
|
+
throw new Error('failed first');
|
114
|
+
}
|
115
|
+
return delay(250);
|
116
|
+
});
|
117
|
+
await worker.waitUntilReady();
|
118
|
+
|
119
|
+
await job.waitUntilFinished(queueEvents);
|
120
|
+
await queue.obliterate({ force: true });
|
121
|
+
const client = await queue.client;
|
122
|
+
const keys = await client.keys(`bull:${queue.name}:*`);
|
123
|
+
expect(keys.length).to.be.eql(0);
|
124
|
+
|
125
|
+
await worker.close();
|
126
|
+
});
|
127
|
+
});
|
package/src/utils.ts
CHANGED
@@ -48,7 +48,7 @@ export async function removeAllQueueData(
|
|
48
48
|
prefix = 'bull',
|
49
49
|
) {
|
50
50
|
const pattern = `${prefix}:${queueName}:*`;
|
51
|
-
return new Promise((resolve, reject) => {
|
51
|
+
return new Promise<void>((resolve, reject) => {
|
52
52
|
const stream = client.scanStream({
|
53
53
|
match: pattern,
|
54
54
|
});
|