bullmq 3.0.0 → 3.0.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.
Files changed (38) hide show
  1. package/README.md +1 -1
  2. package/dist/cjs/classes/scripts.d.ts +2 -2
  3. package/dist/cjs/classes/scripts.js +34 -6
  4. package/dist/cjs/classes/scripts.js.map +1 -1
  5. package/dist/cjs/commands/moveToDelayed-8.lua +63 -0
  6. package/dist/{esm/commands/retryJob-6.lua → cjs/commands/retryJob-8.lua} +15 -8
  7. package/dist/cjs/scripts/index.d.ts +2 -2
  8. package/dist/cjs/scripts/index.js +2 -2
  9. package/dist/cjs/scripts/{moveToDelayed-5.d.ts → moveToDelayed-8.d.ts} +0 -0
  10. package/dist/cjs/scripts/moveToDelayed-8.js +116 -0
  11. package/dist/cjs/scripts/moveToDelayed-8.js.map +1 -0
  12. package/dist/cjs/scripts/{retryJob-6.d.ts → retryJob-8.d.ts} +0 -0
  13. package/dist/cjs/scripts/retryJob-8.js +112 -0
  14. package/dist/cjs/scripts/retryJob-8.js.map +1 -0
  15. package/dist/esm/classes/scripts.d.ts +2 -2
  16. package/dist/esm/classes/scripts.js +34 -6
  17. package/dist/esm/classes/scripts.js.map +1 -1
  18. package/dist/esm/commands/moveToDelayed-8.lua +63 -0
  19. package/dist/{cjs/commands/retryJob-6.lua → esm/commands/retryJob-8.lua} +15 -8
  20. package/dist/esm/scripts/index.d.ts +2 -2
  21. package/dist/esm/scripts/index.js +2 -2
  22. package/dist/esm/scripts/{moveToDelayed-5.d.ts → moveToDelayed-8.d.ts} +0 -0
  23. package/dist/esm/scripts/moveToDelayed-8.js +113 -0
  24. package/dist/esm/scripts/moveToDelayed-8.js.map +1 -0
  25. package/dist/esm/scripts/{retryJob-6.d.ts → retryJob-8.d.ts} +0 -0
  26. package/dist/esm/scripts/retryJob-8.js +109 -0
  27. package/dist/esm/scripts/retryJob-8.js.map +1 -0
  28. package/package.json +1 -1
  29. package/dist/cjs/commands/moveToDelayed-5.lua +0 -54
  30. package/dist/cjs/scripts/moveToDelayed-5.js +0 -52
  31. package/dist/cjs/scripts/moveToDelayed-5.js.map +0 -1
  32. package/dist/cjs/scripts/retryJob-6.js +0 -60
  33. package/dist/cjs/scripts/retryJob-6.js.map +0 -1
  34. package/dist/esm/commands/moveToDelayed-5.lua +0 -54
  35. package/dist/esm/scripts/moveToDelayed-5.js +0 -49
  36. package/dist/esm/scripts/moveToDelayed-5.js.map +0 -1
  37. package/dist/esm/scripts/retryJob-6.js +0 -57
  38. package/dist/esm/scripts/retryJob-6.js.map +0 -1
package/README.md CHANGED
@@ -159,7 +159,7 @@ This is just scratching the surface, check all the features and more in the offi
159
159
 
160
160
  Since there are a few job queue solutions, here is a table comparing them:
161
161
 
162
- | Feature | Bullmq-Pro | Bullmq | Bull | Kue | Bee | Agenda |
162
+ | Feature | BullMQ-Pro | BullMQ | Bull | Kue | Bee | Agenda |
163
163
  | :------------------------ | :-------------: | :-------------: | :-------------: | :---: | -------- | ------ |
164
164
  | Backend | redis | redis | redis | redis | redis | mongo |
165
165
  | Observables | ✓ | | | | | |
@@ -36,7 +36,7 @@ export declare class Scripts {
36
36
  getState(jobId: string): Promise<JobState | 'unknown'>;
37
37
  changeDelay(jobId: string, delay: number): Promise<void>;
38
38
  private changeDelayArgs;
39
- moveToDelayedArgs(jobId: string, timestamp: number, token: string): string[];
39
+ moveToDelayedArgs(jobId: string, timestamp: number, token: string): (string | number)[];
40
40
  moveToWaitingChildrenArgs(jobId: string, token: string, opts?: MoveToWaitingChildrenOpts): string[];
41
41
  moveToDelayed(jobId: string, timestamp: number, token?: string): Promise<void>;
42
42
  /**
@@ -57,7 +57,7 @@ export declare class Scripts {
57
57
  * @returns Id jobs from the deleted records.
58
58
  */
59
59
  cleanJobsInSet(set: string, timestamp: number, limit?: number): Promise<string[]>;
60
- retryJobArgs(jobId: string, lifo: boolean, token: string): string[];
60
+ retryJobArgs(jobId: string, lifo: boolean, token: string): (string | number)[];
61
61
  protected retryJobsArgs(state: FinishedStatus, count: number, timestamp: number): (string | number)[];
62
62
  retryJobs(state?: FinishedStatus, count?: number, timestamp?: number): Promise<number>;
63
63
  /**
@@ -303,11 +303,27 @@ class Scripts {
303
303
  if (timestamp > 0) {
304
304
  timestamp = timestamp * 0x1000 + (+jobId & 0xfff);
305
305
  }
306
- const keys = ['active', 'delayed', jobId].map(name => {
306
+ const keys = [
307
+ 'wait',
308
+ 'active',
309
+ 'priority',
310
+ 'delayed',
311
+ jobId,
312
+ ].map(name => {
307
313
  return this.queue.toKey(name);
308
314
  });
309
- keys.push.apply(keys, [this.queue.keys.events, this.queue.keys.delay]);
310
- return keys.concat([JSON.stringify(timestamp), jobId, token]);
315
+ keys.push.apply(keys, [
316
+ this.queue.keys.events,
317
+ this.queue.keys.paused,
318
+ this.queue.keys.meta,
319
+ ]);
320
+ return keys.concat([
321
+ this.queue.keys[''],
322
+ Date.now(),
323
+ JSON.stringify(timestamp),
324
+ jobId,
325
+ token,
326
+ ]);
311
327
  }
312
328
  moveToWaitingChildrenArgs(jobId, token, opts) {
313
329
  const timestamp = Date.now();
@@ -371,12 +387,24 @@ class Scripts {
371
387
  ]);
372
388
  }
373
389
  retryJobArgs(jobId, lifo, token) {
374
- const keys = ['active', 'wait', 'paused', jobId, 'meta'].map(name => {
390
+ const keys = [
391
+ 'active',
392
+ 'wait',
393
+ 'paused',
394
+ jobId,
395
+ 'meta',
396
+ ].map(name => {
375
397
  return this.queue.toKey(name);
376
398
  });
377
- keys.push(this.queue.keys.events);
399
+ keys.push(this.queue.keys.events, this.queue.keys.delayed, this.queue.keys.priority);
378
400
  const pushCmd = (lifo ? 'R' : 'L') + 'PUSH';
379
- return keys.concat([pushCmd, jobId, token]);
401
+ return keys.concat([
402
+ this.queue.toKey(''),
403
+ Date.now(),
404
+ pushCmd,
405
+ jobId,
406
+ token,
407
+ ]);
380
408
  }
381
409
  retryJobsArgs(state, count, timestamp) {
382
410
  const keys = [
@@ -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,63 @@
1
+ --[[
2
+ Moves job from active to delayed set.
3
+
4
+ Input:
5
+ KEYS[1] wait key
6
+ KEYS[2] active key
7
+ KEYS[3] priority key
8
+ KEYS[4] delayed key
9
+ KEYS[5] job key
10
+ KEYS[6] events stream
11
+ KEYS[7] paused key
12
+ KEYS[8] meta key
13
+
14
+ ARGV[1] key prefix
15
+ ARGV[2] timestamp
16
+ ARGV[3] delayedTimestamp
17
+ ARGV[4] the id of the job
18
+ ARGV[5] queue token
19
+
20
+ Output:
21
+ 0 - OK
22
+ -1 - Missing job.
23
+ -3 - Job not in active set.
24
+
25
+ Events:
26
+ - delayed key.
27
+ ]]
28
+ local rcall = redis.call
29
+
30
+ -- Includes
31
+ --- @include "includes/promoteDelayedJobs"
32
+
33
+ promoteDelayedJobs(KEYS[4], KEYS[1], KEYS[3], KEYS[7], KEYS[8], KEYS[6], ARGV[1], ARGV[2])
34
+
35
+ if rcall("EXISTS", KEYS[5]) == 1 then
36
+
37
+ if ARGV[5] ~= "0" then
38
+ local lockKey = KEYS[5] .. ':lock'
39
+ if rcall("GET", lockKey) == ARGV[5] then
40
+ rcall("DEL", lockKey)
41
+ else
42
+ return -2
43
+ end
44
+ end
45
+
46
+ local jobId = ARGV[4]
47
+ local score = tonumber(ARGV[3])
48
+ local delayedTimestamp = (score / 0x1000)
49
+
50
+ local numRemovedElements = rcall("LREM", KEYS[2], -1, jobId)
51
+
52
+ if(numRemovedElements < 1) then
53
+ return -3
54
+ end
55
+
56
+ rcall("ZADD", KEYS[4], score, jobId)
57
+
58
+ rcall("XADD", KEYS[6], "*", "event", "delayed", "jobId", jobId, "delay", delayedTimestamp);
59
+
60
+ return 0
61
+ else
62
+ return -1
63
+ end
@@ -8,10 +8,14 @@
8
8
  KEYS[4] job key
9
9
  KEYS[5] 'meta'
10
10
  KEYS[6] events stream
11
+ KEYS[7] delayed key
12
+ KEYS[8] priority key
11
13
 
12
- ARGV[1] pushCmd
13
- ARGV[2] jobId
14
- ARGV[3] token
14
+ ARGV[1] key prefix
15
+ ARGV[2] timestamp
16
+ ARGV[3] pushCmd
17
+ ARGV[4] jobId
18
+ ARGV[5] token
15
19
 
16
20
  Events:
17
21
  'waiting'
@@ -25,12 +29,15 @@ local rcall = redis.call
25
29
 
26
30
  -- Includes
27
31
  --- @include "includes/getTargetQueueList"
32
+ --- @include "includes/promoteDelayedJobs"
33
+
34
+ promoteDelayedJobs(KEYS[7], KEYS[2], KEYS[8], KEYS[3], KEYS[5], KEYS[6], ARGV[1], ARGV[2])
28
35
 
29
36
  if rcall("EXISTS", KEYS[4]) == 1 then
30
37
 
31
- if ARGV[3] ~= "0" then
38
+ if ARGV[5] ~= "0" then
32
39
  local lockKey = KEYS[4] .. ':lock'
33
- if rcall("GET", lockKey) == ARGV[3] then
40
+ if rcall("GET", lockKey) == ARGV[5] then
34
41
  rcall("DEL", lockKey)
35
42
  else
36
43
  return -2
@@ -39,11 +46,11 @@ if rcall("EXISTS", KEYS[4]) == 1 then
39
46
 
40
47
  local target = getTargetQueueList(KEYS[5], KEYS[2], KEYS[3])
41
48
 
42
- rcall("LREM", KEYS[1], 0, ARGV[2])
43
- rcall(ARGV[1], target, ARGV[2])
49
+ rcall("LREM", KEYS[1], 0, ARGV[4])
50
+ rcall(ARGV[3], target, ARGV[4])
44
51
 
45
52
  -- Emit waiting event
46
- rcall("XADD", KEYS[6], "*", "event", "waiting", "jobId", ARGV[2], "prev", "failed");
53
+ rcall("XADD", KEYS[6], "*", "event", "waiting", "jobId", ARGV[4], "prev", "failed");
47
54
 
48
55
  return 0
49
56
  else
@@ -9,7 +9,7 @@ export * from './isFinished-3';
9
9
  export * from './isJobInList-1';
10
10
  export * from './moveStalledJobsToWait-8';
11
11
  export * from './moveToActive-9';
12
- export * from './moveToDelayed-5';
12
+ export * from './moveToDelayed-8';
13
13
  export * from './moveToFinished-12';
14
14
  export * from './moveToWaitingChildren-4';
15
15
  export * from './obliterate-2';
@@ -19,7 +19,7 @@ export * from './releaseLock-1';
19
19
  export * from './removeJob-1';
20
20
  export * from './removeRepeatable-2';
21
21
  export * from './reprocessJob-4';
22
- export * from './retryJob-6';
22
+ export * from './retryJob-8';
23
23
  export * from './retryJobs-6';
24
24
  export * from './takeLock-1';
25
25
  export * from './updateData-1';
@@ -12,7 +12,7 @@ tslib_1.__exportStar(require("./isFinished-3"), exports);
12
12
  tslib_1.__exportStar(require("./isJobInList-1"), exports);
13
13
  tslib_1.__exportStar(require("./moveStalledJobsToWait-8"), exports);
14
14
  tslib_1.__exportStar(require("./moveToActive-9"), exports);
15
- tslib_1.__exportStar(require("./moveToDelayed-5"), exports);
15
+ tslib_1.__exportStar(require("./moveToDelayed-8"), exports);
16
16
  tslib_1.__exportStar(require("./moveToFinished-12"), exports);
17
17
  tslib_1.__exportStar(require("./moveToWaitingChildren-4"), exports);
18
18
  tslib_1.__exportStar(require("./obliterate-2"), exports);
@@ -22,7 +22,7 @@ tslib_1.__exportStar(require("./releaseLock-1"), exports);
22
22
  tslib_1.__exportStar(require("./removeJob-1"), exports);
23
23
  tslib_1.__exportStar(require("./removeRepeatable-2"), exports);
24
24
  tslib_1.__exportStar(require("./reprocessJob-4"), exports);
25
- tslib_1.__exportStar(require("./retryJob-6"), exports);
25
+ tslib_1.__exportStar(require("./retryJob-8"), exports);
26
26
  tslib_1.__exportStar(require("./retryJobs-6"), exports);
27
27
  tslib_1.__exportStar(require("./takeLock-1"), exports);
28
28
  tslib_1.__exportStar(require("./updateData-1"), exports);
@@ -0,0 +1,116 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.moveToDelayed = void 0;
4
+ const content = `--[[
5
+ Moves job from active to delayed set.
6
+ Input:
7
+ KEYS[1] wait key
8
+ KEYS[2] active key
9
+ KEYS[3] priority key
10
+ KEYS[4] delayed key
11
+ KEYS[5] job key
12
+ KEYS[6] events stream
13
+ KEYS[7] paused key
14
+ KEYS[8] meta key
15
+ ARGV[1] key prefix
16
+ ARGV[2] timestamp
17
+ ARGV[3] delayedTimestamp
18
+ ARGV[4] the id of the job
19
+ ARGV[5] queue token
20
+ Output:
21
+ 0 - OK
22
+ -1 - Missing job.
23
+ -3 - Job not in active set.
24
+ Events:
25
+ - delayed key.
26
+ ]]
27
+ local rcall = redis.call
28
+ -- Includes
29
+ --[[
30
+ Updates the delay set, by moving delayed jobs that should
31
+ be processed now to "wait".
32
+ Events:
33
+ 'waiting'
34
+ ]]
35
+ local rcall = redis.call
36
+ -- Includes
37
+ --[[
38
+ Function to add job considering priority.
39
+ ]]
40
+ local function addJobWithPriority(priorityKey, priority, targetKey, jobId)
41
+ rcall("ZADD", priorityKey, priority, jobId)
42
+ local count = rcall("ZCOUNT", priorityKey, 0, priority)
43
+ local len = rcall("LLEN", targetKey)
44
+ local id = rcall("LINDEX", targetKey, len - (count - 1))
45
+ if id then
46
+ rcall("LINSERT", targetKey, "BEFORE", id, jobId)
47
+ else
48
+ rcall("RPUSH", targetKey, jobId)
49
+ end
50
+ end
51
+ --[[
52
+ Function to check for the meta.paused key to decide if we are paused or not
53
+ (since an empty list and !EXISTS are not really the same).
54
+ ]]
55
+ local function getTargetQueueList(queueMetaKey, waitKey, pausedKey)
56
+ if rcall("HEXISTS", queueMetaKey, "paused") ~= 1 then
57
+ return waitKey
58
+ else
59
+ return pausedKey
60
+ end
61
+ end
62
+ -- Try to get as much as 1000 jobs at once, and returns the nextTimestamp if
63
+ -- there are more delayed jobs to process.
64
+ local function promoteDelayedJobs(delayedKey, waitKey, priorityKey, pausedKey,
65
+ metaKey, eventStreamKey, prefix, timestamp)
66
+ local jobs = rcall("ZRANGEBYSCORE", delayedKey, 0, (timestamp + 1) * 0x1000, "LIMIT", 0, 1000)
67
+ if (#jobs > 0) then
68
+ rcall("ZREM", delayedKey, unpack(jobs))
69
+ -- check if we need to use push in paused instead of waiting
70
+ local target = getTargetQueueList(metaKey, waitKey, pausedKey)
71
+ for _, jobId in ipairs(jobs) do
72
+ local priority =
73
+ tonumber(rcall("HGET", prefix .. jobId, "priority")) or 0
74
+ if priority == 0 then
75
+ -- LIFO or FIFO
76
+ rcall("LPUSH", target, jobId)
77
+ else
78
+ addJobWithPriority(priorityKey, priority, target, jobId)
79
+ end
80
+ -- Emit waiting event
81
+ rcall("XADD", eventStreamKey, "*", "event", "waiting", "jobId",
82
+ jobId, "prev", "delayed")
83
+ rcall("HSET", prefix .. jobId, "delay", 0)
84
+ end
85
+ end
86
+ end
87
+ promoteDelayedJobs(KEYS[4], KEYS[1], KEYS[3], KEYS[7], KEYS[8], KEYS[6], ARGV[1], ARGV[2])
88
+ if rcall("EXISTS", KEYS[5]) == 1 then
89
+ if ARGV[5] ~= "0" then
90
+ local lockKey = KEYS[5] .. ':lock'
91
+ if rcall("GET", lockKey) == ARGV[5] then
92
+ rcall("DEL", lockKey)
93
+ else
94
+ return -2
95
+ end
96
+ end
97
+ local jobId = ARGV[4]
98
+ local score = tonumber(ARGV[3])
99
+ local delayedTimestamp = (score / 0x1000)
100
+ local numRemovedElements = rcall("LREM", KEYS[2], -1, jobId)
101
+ if(numRemovedElements < 1) then
102
+ return -3
103
+ end
104
+ rcall("ZADD", KEYS[4], score, jobId)
105
+ rcall("XADD", KEYS[6], "*", "event", "delayed", "jobId", jobId, "delay", delayedTimestamp);
106
+ return 0
107
+ else
108
+ return -1
109
+ end
110
+ `;
111
+ exports.moveToDelayed = {
112
+ name: 'moveToDelayed',
113
+ content,
114
+ keys: 8,
115
+ };
116
+ //# sourceMappingURL=moveToDelayed-8.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"moveToDelayed-8.js","sourceRoot":"","sources":["../../../src/scripts/moveToDelayed-8.ts"],"names":[],"mappings":";;;AAAA,MAAM,OAAO,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA0Gf,CAAC;AACW,QAAA,aAAa,GAAG;IAC3B,IAAI,EAAE,eAAe;IACrB,OAAO;IACP,IAAI,EAAE,CAAC;CACR,CAAC"}
@@ -0,0 +1,112 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.retryJob = void 0;
4
+ const content = `--[[
5
+ Retries a failed job by moving it back to the wait queue.
6
+ Input:
7
+ KEYS[1] 'active',
8
+ KEYS[2] 'wait'
9
+ KEYS[3] 'paused'
10
+ KEYS[4] job key
11
+ KEYS[5] 'meta'
12
+ KEYS[6] events stream
13
+ KEYS[7] delayed key
14
+ KEYS[8] priority key
15
+ ARGV[1] key prefix
16
+ ARGV[2] timestamp
17
+ ARGV[3] pushCmd
18
+ ARGV[4] jobId
19
+ ARGV[5] token
20
+ Events:
21
+ 'waiting'
22
+ Output:
23
+ 0 - OK
24
+ -1 - Missing key
25
+ -2 - Missing lock
26
+ ]]
27
+ local rcall = redis.call
28
+ -- Includes
29
+ --[[
30
+ Function to check for the meta.paused key to decide if we are paused or not
31
+ (since an empty list and !EXISTS are not really the same).
32
+ ]]
33
+ local function getTargetQueueList(queueMetaKey, waitKey, pausedKey)
34
+ if rcall("HEXISTS", queueMetaKey, "paused") ~= 1 then
35
+ return waitKey
36
+ else
37
+ return pausedKey
38
+ end
39
+ end
40
+ --[[
41
+ Updates the delay set, by moving delayed jobs that should
42
+ be processed now to "wait".
43
+ Events:
44
+ 'waiting'
45
+ ]]
46
+ local rcall = redis.call
47
+ -- Includes
48
+ --[[
49
+ Function to add job considering priority.
50
+ ]]
51
+ local function addJobWithPriority(priorityKey, priority, targetKey, jobId)
52
+ rcall("ZADD", priorityKey, priority, jobId)
53
+ local count = rcall("ZCOUNT", priorityKey, 0, priority)
54
+ local len = rcall("LLEN", targetKey)
55
+ local id = rcall("LINDEX", targetKey, len - (count - 1))
56
+ if id then
57
+ rcall("LINSERT", targetKey, "BEFORE", id, jobId)
58
+ else
59
+ rcall("RPUSH", targetKey, jobId)
60
+ end
61
+ end
62
+ -- Try to get as much as 1000 jobs at once, and returns the nextTimestamp if
63
+ -- there are more delayed jobs to process.
64
+ local function promoteDelayedJobs(delayedKey, waitKey, priorityKey, pausedKey,
65
+ metaKey, eventStreamKey, prefix, timestamp)
66
+ local jobs = rcall("ZRANGEBYSCORE", delayedKey, 0, (timestamp + 1) * 0x1000, "LIMIT", 0, 1000)
67
+ if (#jobs > 0) then
68
+ rcall("ZREM", delayedKey, unpack(jobs))
69
+ -- check if we need to use push in paused instead of waiting
70
+ local target = getTargetQueueList(metaKey, waitKey, pausedKey)
71
+ for _, jobId in ipairs(jobs) do
72
+ local priority =
73
+ tonumber(rcall("HGET", prefix .. jobId, "priority")) or 0
74
+ if priority == 0 then
75
+ -- LIFO or FIFO
76
+ rcall("LPUSH", target, jobId)
77
+ else
78
+ addJobWithPriority(priorityKey, priority, target, jobId)
79
+ end
80
+ -- Emit waiting event
81
+ rcall("XADD", eventStreamKey, "*", "event", "waiting", "jobId",
82
+ jobId, "prev", "delayed")
83
+ rcall("HSET", prefix .. jobId, "delay", 0)
84
+ end
85
+ end
86
+ end
87
+ promoteDelayedJobs(KEYS[7], KEYS[2], KEYS[8], KEYS[3], KEYS[5], KEYS[6], ARGV[1], ARGV[2])
88
+ if rcall("EXISTS", KEYS[4]) == 1 then
89
+ if ARGV[5] ~= "0" then
90
+ local lockKey = KEYS[4] .. ':lock'
91
+ if rcall("GET", lockKey) == ARGV[5] then
92
+ rcall("DEL", lockKey)
93
+ else
94
+ return -2
95
+ end
96
+ end
97
+ local target = getTargetQueueList(KEYS[5], KEYS[2], KEYS[3])
98
+ rcall("LREM", KEYS[1], 0, ARGV[4])
99
+ rcall(ARGV[3], target, ARGV[4])
100
+ -- Emit waiting event
101
+ rcall("XADD", KEYS[6], "*", "event", "waiting", "jobId", ARGV[4], "prev", "failed");
102
+ return 0
103
+ else
104
+ return -1
105
+ end
106
+ `;
107
+ exports.retryJob = {
108
+ name: 'retryJob',
109
+ content,
110
+ keys: 8,
111
+ };
112
+ //# sourceMappingURL=retryJob-8.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"retryJob-8.js","sourceRoot":"","sources":["../../../src/scripts/retryJob-8.ts"],"names":[],"mappings":";;;AAAA,MAAM,OAAO,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsGf,CAAC;AACW,QAAA,QAAQ,GAAG;IACtB,IAAI,EAAE,UAAU;IAChB,OAAO;IACP,IAAI,EAAE,CAAC;CACR,CAAC"}
@@ -36,7 +36,7 @@ export declare class Scripts {
36
36
  getState(jobId: string): Promise<JobState | 'unknown'>;
37
37
  changeDelay(jobId: string, delay: number): Promise<void>;
38
38
  private changeDelayArgs;
39
- moveToDelayedArgs(jobId: string, timestamp: number, token: string): string[];
39
+ moveToDelayedArgs(jobId: string, timestamp: number, token: string): (string | number)[];
40
40
  moveToWaitingChildrenArgs(jobId: string, token: string, opts?: MoveToWaitingChildrenOpts): string[];
41
41
  moveToDelayed(jobId: string, timestamp: number, token?: string): Promise<void>;
42
42
  /**
@@ -57,7 +57,7 @@ export declare class Scripts {
57
57
  * @returns Id jobs from the deleted records.
58
58
  */
59
59
  cleanJobsInSet(set: string, timestamp: number, limit?: number): Promise<string[]>;
60
- retryJobArgs(jobId: string, lifo: boolean, token: string): string[];
60
+ retryJobArgs(jobId: string, lifo: boolean, token: string): (string | number)[];
61
61
  protected retryJobsArgs(state: FinishedStatus, count: number, timestamp: number): (string | number)[];
62
62
  retryJobs(state?: FinishedStatus, count?: number, timestamp?: number): Promise<number>;
63
63
  /**
@@ -301,11 +301,27 @@ export class Scripts {
301
301
  if (timestamp > 0) {
302
302
  timestamp = timestamp * 0x1000 + (+jobId & 0xfff);
303
303
  }
304
- const keys = ['active', 'delayed', jobId].map(name => {
304
+ const keys = [
305
+ 'wait',
306
+ 'active',
307
+ 'priority',
308
+ 'delayed',
309
+ jobId,
310
+ ].map(name => {
305
311
  return this.queue.toKey(name);
306
312
  });
307
- keys.push.apply(keys, [this.queue.keys.events, this.queue.keys.delay]);
308
- return keys.concat([JSON.stringify(timestamp), jobId, token]);
313
+ keys.push.apply(keys, [
314
+ this.queue.keys.events,
315
+ this.queue.keys.paused,
316
+ this.queue.keys.meta,
317
+ ]);
318
+ return keys.concat([
319
+ this.queue.keys[''],
320
+ Date.now(),
321
+ JSON.stringify(timestamp),
322
+ jobId,
323
+ token,
324
+ ]);
309
325
  }
310
326
  moveToWaitingChildrenArgs(jobId, token, opts) {
311
327
  const timestamp = Date.now();
@@ -369,12 +385,24 @@ export class Scripts {
369
385
  ]);
370
386
  }
371
387
  retryJobArgs(jobId, lifo, token) {
372
- const keys = ['active', 'wait', 'paused', jobId, 'meta'].map(name => {
388
+ const keys = [
389
+ 'active',
390
+ 'wait',
391
+ 'paused',
392
+ jobId,
393
+ 'meta',
394
+ ].map(name => {
373
395
  return this.queue.toKey(name);
374
396
  });
375
- keys.push(this.queue.keys.events);
397
+ keys.push(this.queue.keys.events, this.queue.keys.delayed, this.queue.keys.priority);
376
398
  const pushCmd = (lifo ? 'R' : 'L') + 'PUSH';
377
- return keys.concat([pushCmd, jobId, token]);
399
+ return keys.concat([
400
+ this.queue.toKey(''),
401
+ Date.now(),
402
+ pushCmd,
403
+ jobId,
404
+ token,
405
+ ]);
378
406
  }
379
407
  retryJobsArgs(state, count, timestamp) {
380
408
  const keys = [