bullmq 2.4.0 → 3.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 (91) hide show
  1. package/dist/cjs/classes/backoffs.d.ts +3 -6
  2. package/dist/cjs/classes/backoffs.js +8 -8
  3. package/dist/cjs/classes/backoffs.js.map +1 -1
  4. package/dist/cjs/classes/flow-producer.js +2 -1
  5. package/dist/cjs/classes/flow-producer.js.map +1 -1
  6. package/dist/cjs/classes/job.d.ts +3 -3
  7. package/dist/cjs/classes/job.js +1 -1
  8. package/dist/cjs/classes/job.js.map +1 -1
  9. package/dist/cjs/classes/queue-base.js +1 -1
  10. package/dist/cjs/classes/queue-base.js.map +1 -1
  11. package/dist/cjs/classes/queue.d.ts +8 -6
  12. package/dist/cjs/classes/queue.js +10 -9
  13. package/dist/cjs/classes/queue.js.map +1 -1
  14. package/dist/cjs/classes/repeat.d.ts +0 -1
  15. package/dist/cjs/classes/repeat.js +4 -5
  16. package/dist/cjs/classes/repeat.js.map +1 -1
  17. package/dist/cjs/classes/scripts.d.ts +4 -4
  18. package/dist/cjs/classes/scripts.js +9 -16
  19. package/dist/cjs/classes/scripts.js.map +1 -1
  20. package/dist/cjs/classes/worker.d.ts +12 -3
  21. package/dist/cjs/classes/worker.js +50 -34
  22. package/dist/cjs/classes/worker.js.map +1 -1
  23. package/dist/cjs/commands/includes/getRateLimitTTL.lua +13 -0
  24. package/dist/cjs/commands/includes/moveJobFromWaitToActive.lua +15 -34
  25. package/dist/cjs/commands/includes/promoteDelayedJobs.lua +0 -6
  26. package/dist/cjs/commands/moveToActive-9.lua +11 -2
  27. package/dist/cjs/commands/moveToFinished-12.lua +8 -1
  28. package/dist/cjs/interfaces/advanced-options.d.ts +4 -4
  29. package/dist/cjs/interfaces/base-job-options.d.ts +0 -6
  30. package/dist/cjs/interfaces/queue-options.d.ts +0 -10
  31. package/dist/cjs/interfaces/rate-limiter-options.d.ts +0 -18
  32. package/dist/cjs/interfaces/repeat-options.d.ts +1 -6
  33. package/dist/cjs/scripts/moveToActive-9.js +35 -36
  34. package/dist/cjs/scripts/moveToActive-9.js.map +1 -1
  35. package/dist/cjs/scripts/moveToFinished-12.js +33 -36
  36. package/dist/cjs/scripts/moveToFinished-12.js.map +1 -1
  37. package/dist/cjs/types/backoff-strategy.d.ts +2 -0
  38. package/dist/cjs/types/backoff-strategy.js +3 -0
  39. package/dist/cjs/types/backoff-strategy.js.map +1 -0
  40. package/dist/cjs/types/index.d.ts +2 -1
  41. package/dist/cjs/types/index.js +2 -1
  42. package/dist/cjs/types/index.js.map +1 -1
  43. package/dist/cjs/utils.d.ts +1 -3
  44. package/dist/cjs/utils.js +1 -13
  45. package/dist/cjs/utils.js.map +1 -1
  46. package/dist/esm/classes/backoffs.d.ts +3 -6
  47. package/dist/esm/classes/backoffs.js +8 -8
  48. package/dist/esm/classes/backoffs.js.map +1 -1
  49. package/dist/esm/classes/flow-producer.js +3 -2
  50. package/dist/esm/classes/flow-producer.js.map +1 -1
  51. package/dist/esm/classes/job.d.ts +3 -3
  52. package/dist/esm/classes/job.js +1 -1
  53. package/dist/esm/classes/job.js.map +1 -1
  54. package/dist/esm/classes/queue-base.js +1 -1
  55. package/dist/esm/classes/queue-base.js.map +1 -1
  56. package/dist/esm/classes/queue.d.ts +8 -6
  57. package/dist/esm/classes/queue.js +11 -10
  58. package/dist/esm/classes/queue.js.map +1 -1
  59. package/dist/esm/classes/repeat.d.ts +0 -1
  60. package/dist/esm/classes/repeat.js +4 -5
  61. package/dist/esm/classes/repeat.js.map +1 -1
  62. package/dist/esm/classes/scripts.d.ts +4 -4
  63. package/dist/esm/classes/scripts.js +7 -14
  64. package/dist/esm/classes/scripts.js.map +1 -1
  65. package/dist/esm/classes/worker.d.ts +12 -3
  66. package/dist/esm/classes/worker.js +50 -34
  67. package/dist/esm/classes/worker.js.map +1 -1
  68. package/dist/esm/commands/includes/getRateLimitTTL.lua +13 -0
  69. package/dist/esm/commands/includes/moveJobFromWaitToActive.lua +15 -34
  70. package/dist/esm/commands/includes/promoteDelayedJobs.lua +0 -6
  71. package/dist/esm/commands/moveToActive-9.lua +11 -2
  72. package/dist/esm/commands/moveToFinished-12.lua +8 -1
  73. package/dist/esm/interfaces/advanced-options.d.ts +4 -4
  74. package/dist/esm/interfaces/base-job-options.d.ts +0 -6
  75. package/dist/esm/interfaces/queue-options.d.ts +0 -10
  76. package/dist/esm/interfaces/rate-limiter-options.d.ts +0 -18
  77. package/dist/esm/interfaces/repeat-options.d.ts +1 -6
  78. package/dist/esm/scripts/moveToActive-9.js +35 -36
  79. package/dist/esm/scripts/moveToActive-9.js.map +1 -1
  80. package/dist/esm/scripts/moveToFinished-12.js +33 -36
  81. package/dist/esm/scripts/moveToFinished-12.js.map +1 -1
  82. package/dist/esm/types/backoff-strategy.d.ts +2 -0
  83. package/dist/esm/types/backoff-strategy.js +2 -0
  84. package/dist/esm/types/backoff-strategy.js.map +1 -0
  85. package/dist/esm/types/index.d.ts +2 -1
  86. package/dist/esm/types/index.js +2 -1
  87. package/dist/esm/types/index.js.map +1 -1
  88. package/dist/esm/utils.d.ts +1 -3
  89. package/dist/esm/utils.js +0 -11
  90. package/dist/esm/utils.js.map +1 -1
  91. package/package.json +1 -1
@@ -5,11 +5,6 @@ import { ParserOptions } from 'cron-parser';
5
5
  * @see {@link https://docs.bullmq.io/guide/jobs/repeatable}
6
6
  */
7
7
  export interface RepeatOptions extends Omit<ParserOptions, 'iterator'> {
8
- /**
9
- * @deprecated Use pattern option instead.
10
- * A cron pattern
11
- */
12
- cron?: string;
13
8
  /**
14
9
  * A repeat pattern
15
10
  */
@@ -20,7 +15,7 @@ export interface RepeatOptions extends Omit<ParserOptions, 'iterator'> {
20
15
  limit?: number;
21
16
  /**
22
17
  * Repeat after this amount of milliseconds
23
- * (`cron` setting cannot be used together with this setting.)
18
+ * (`pattern` setting cannot be used together with this setting.)
24
19
  */
25
20
  every?: number;
26
21
  /**
@@ -49,41 +49,25 @@ local rcall = redis.call
49
49
  local function moveJobFromWaitToActive(keys, keyPrefix, jobId, processedOn, opts)
50
50
  -- Check if we need to perform rate limiting.
51
51
  local maxJobs = tonumber(opts['limiter'] and opts['limiter']['max'])
52
+ local expireTime
52
53
  if(maxJobs) then
53
54
  local rateLimiterKey = keys[6];
54
- local groupKey
55
- local groupKeyOpt = opts['limiter'] and opts['limiter']['groupKey'] or ""
56
- if groupKeyOpt ~= "" then
57
- groupKey = string.match(jobId, "[^:]+$")
58
- if groupKey ~= jobId then
59
- rateLimiterKey = rateLimiterKey .. ":" .. groupKey
60
- end
55
+ local jobCounter = tonumber(rcall("INCR", rateLimiterKey))
56
+ if jobCounter == 1 then
57
+ local limiterDuration = opts['limiter'] and opts['limiter']['duration']
58
+ rcall("PEXPIRE", rateLimiterKey, limiterDuration)
61
59
  end
62
- local jobCounter
63
- if groupKey ~= nil then
64
- if rateLimiterKey ~= keys[6] then
65
- jobCounter = tonumber(rcall("INCR", rateLimiterKey))
66
- end
67
- else
68
- jobCounter = tonumber(rcall("INCR", rateLimiterKey))
69
- end
70
- local limiterDuration = opts['limiter'] and opts['limiter']['duration']
71
- -- check if rate limit hit
72
- if jobCounter ~= nil and jobCounter > maxJobs then
73
- local exceedingJobs = jobCounter - maxJobs
74
- local expireTime = tonumber(rcall("PTTL", rateLimiterKey))
75
- local delay = expireTime + ((exceedingJobs - 1) * limiterDuration) / maxJobs;
76
- local timestamp = delay + tonumber(processedOn)
77
- -- put job into delayed queue
78
- rcall("ZADD", keys[7], timestamp * 0x1000 + bit.band(jobCounter, 0xfff), jobId);
79
- rcall("XADD", keys[4], "*", "event", "delayed", "jobId", jobId, "delay", timestamp);
80
- -- remove from active queue
60
+ -- check if we passed rate limit, we need to remove the job and return expireTime
61
+ if jobCounter > maxJobs then
62
+ expireTime = rcall("PTTL", rateLimiterKey)
63
+ -- remove from active queue and add back to the wait list
81
64
  rcall("LREM", keys[2], 1, jobId)
65
+ rcall("RPUSH", keys[1], jobId)
82
66
  -- Return when we can process more jobs
83
- return expireTime
67
+ return {0, 0, expireTime}
84
68
  else
85
- if jobCounter == 1 then
86
- rcall("PEXPIRE", rateLimiterKey, limiterDuration)
69
+ if jobCounter == maxJobs then
70
+ expireTime = rcall("PTTL", rateLimiterKey)
87
71
  end
88
72
  end
89
73
  end
@@ -97,7 +81,7 @@ local function moveJobFromWaitToActive(keys, keyPrefix, jobId, processedOn, opts
97
81
  rcall("XADD", keys[4], "*", "event", "active", "jobId", jobId, "prev", "waiting")
98
82
  rcall("HSET", jobKey, "processedOn", processedOn)
99
83
  rcall("HINCRBY", jobKey, "attemptsMade", 1)
100
- return {rcall("HGETALL", jobKey), jobId} -- get job data
84
+ return {rcall("HGETALL", jobKey), jobId, expireTime} -- get job data
101
85
  end
102
86
  --[[
103
87
  Function to return the next delayed job timestamp.
@@ -169,19 +153,34 @@ local function promoteDelayedJobs(delayedKey, waitKey, priorityKey, pausedKey,
169
153
  rcall("HSET", prefix .. jobId, "delay", 0)
170
154
  end
171
155
  end
172
- local nextTimestamp = rcall("ZRANGE", delayedKey, 0, 0, "WITHSCORES")[2]
173
- if (nextTimestamp ~= nil) then
174
- nextTimestamp = nextTimestamp / 0x1000
156
+ end
157
+ local function getRateLimitTTL(opts, limiterKey)
158
+ local maxJobs = tonumber(opts['limiter'] and opts['limiter']['max'])
159
+ if maxJobs then
160
+ local jobCounter = tonumber(rcall("GET", limiterKey))
161
+ if jobCounter ~= nil and jobCounter >= maxJobs then
162
+ local pttl = rcall("PTTL", KEYS[6])
163
+ if pttl > 0 then
164
+ return pttl
165
+ end
166
+ end
175
167
  end
176
- return nextTimestamp
168
+ return 0
177
169
  end
178
170
  -- Check if there are delayed jobs that we can move to wait.
179
171
  promoteDelayedJobs(KEYS[7], KEYS[1], KEYS[3], KEYS[8], KEYS[9], KEYS[4], ARGV[1], ARGV[2])
172
+ local opts
180
173
  if (ARGV[3] ~= "") then
181
174
  jobId = ARGV[3]
182
175
  -- clean stalled key
183
176
  rcall("SREM", KEYS[5], jobId)
184
177
  else
178
+ -- Check if we are rate limited first.
179
+ opts = cmsgpack.unpack(ARGV[4])
180
+ local pttl = getRateLimitTTL(opts, KEYS[6])
181
+ if pttl > 0 then
182
+ return { 0, 0, pttl }
183
+ end
185
184
  -- no job ID, try non-blocking move from wait to active
186
185
  jobId = rcall("RPOPLPUSH", KEYS[1], KEYS[2])
187
186
  end
@@ -189,14 +188,14 @@ end
189
188
  if jobId == "0" then
190
189
  rcall("LREM", KEYS[2], 1, 0)
191
190
  elseif jobId then
192
- local opts = cmsgpack.unpack(ARGV[4])
191
+ opts = opts or cmsgpack.unpack(ARGV[4])
193
192
  -- this script is not really moving, it is preparing the job for processing
194
193
  return moveJobFromWaitToActive(KEYS, ARGV[1], jobId, ARGV[2], opts)
195
194
  end
196
195
  -- Return the timestamp for the next delayed job if any.
197
196
  local nextTimestamp = getNextDelayedTimestamp(KEYS[7])
198
197
  if (nextTimestamp ~= nil) then
199
- return nextTimestamp - tonumber(ARGV[2])
198
+ return { 0, 0, 0, nextTimestamp - tonumber(ARGV[2])}
200
199
  end
201
200
  `;
202
201
  exports.moveToActive = {
@@ -1 +1 @@
1
- {"version":3,"file":"moveToActive-9.js","sourceRoot":"","sources":["../../../src/scripts/moveToActive-9.ts"],"names":[],"mappings":";;;AAAA,MAAM,OAAO,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqMf,CAAC;AACW,QAAA,YAAY,GAAG;IAC1B,IAAI,EAAE,cAAc;IACpB,OAAO;IACP,IAAI,EAAE,CAAC;CACR,CAAC"}
1
+ {"version":3,"file":"moveToActive-9.js","sourceRoot":"","sources":["../../../src/scripts/moveToActive-9.ts"],"names":[],"mappings":";;;AAAA,MAAM,OAAO,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoMf,CAAC;AACW,QAAA,YAAY,GAAG;IAC1B,IAAI,EAAE,cAAc;IACpB,OAAO;IACP,IAAI,EAAE,CAAC;CACR,CAAC"}
@@ -134,41 +134,25 @@ end
134
134
  local function moveJobFromWaitToActive(keys, keyPrefix, jobId, processedOn, opts)
135
135
  -- Check if we need to perform rate limiting.
136
136
  local maxJobs = tonumber(opts['limiter'] and opts['limiter']['max'])
137
+ local expireTime
137
138
  if(maxJobs) then
138
139
  local rateLimiterKey = keys[6];
139
- local groupKey
140
- local groupKeyOpt = opts['limiter'] and opts['limiter']['groupKey'] or ""
141
- if groupKeyOpt ~= "" then
142
- groupKey = string.match(jobId, "[^:]+$")
143
- if groupKey ~= jobId then
144
- rateLimiterKey = rateLimiterKey .. ":" .. groupKey
145
- end
146
- end
147
- local jobCounter
148
- if groupKey ~= nil then
149
- if rateLimiterKey ~= keys[6] then
150
- jobCounter = tonumber(rcall("INCR", rateLimiterKey))
151
- end
152
- else
153
- jobCounter = tonumber(rcall("INCR", rateLimiterKey))
140
+ local jobCounter = tonumber(rcall("INCR", rateLimiterKey))
141
+ if jobCounter == 1 then
142
+ local limiterDuration = opts['limiter'] and opts['limiter']['duration']
143
+ rcall("PEXPIRE", rateLimiterKey, limiterDuration)
154
144
  end
155
- local limiterDuration = opts['limiter'] and opts['limiter']['duration']
156
- -- check if rate limit hit
157
- if jobCounter ~= nil and jobCounter > maxJobs then
158
- local exceedingJobs = jobCounter - maxJobs
159
- local expireTime = tonumber(rcall("PTTL", rateLimiterKey))
160
- local delay = expireTime + ((exceedingJobs - 1) * limiterDuration) / maxJobs;
161
- local timestamp = delay + tonumber(processedOn)
162
- -- put job into delayed queue
163
- rcall("ZADD", keys[7], timestamp * 0x1000 + bit.band(jobCounter, 0xfff), jobId);
164
- rcall("XADD", keys[4], "*", "event", "delayed", "jobId", jobId, "delay", timestamp);
165
- -- remove from active queue
145
+ -- check if we passed rate limit, we need to remove the job and return expireTime
146
+ if jobCounter > maxJobs then
147
+ expireTime = rcall("PTTL", rateLimiterKey)
148
+ -- remove from active queue and add back to the wait list
166
149
  rcall("LREM", keys[2], 1, jobId)
150
+ rcall("RPUSH", keys[1], jobId)
167
151
  -- Return when we can process more jobs
168
- return expireTime
152
+ return {0, 0, expireTime}
169
153
  else
170
- if jobCounter == 1 then
171
- rcall("PEXPIRE", rateLimiterKey, limiterDuration)
154
+ if jobCounter == maxJobs then
155
+ expireTime = rcall("PTTL", rateLimiterKey)
172
156
  end
173
157
  end
174
158
  end
@@ -182,7 +166,7 @@ local function moveJobFromWaitToActive(keys, keyPrefix, jobId, processedOn, opts
182
166
  rcall("XADD", keys[4], "*", "event", "active", "jobId", jobId, "prev", "waiting")
183
167
  rcall("HSET", jobKey, "processedOn", processedOn)
184
168
  rcall("HINCRBY", jobKey, "attemptsMade", 1)
185
- return {rcall("HGETALL", jobKey), jobId} -- get job data
169
+ return {rcall("HGETALL", jobKey), jobId, expireTime} -- get job data
186
170
  end
187
171
  --[[
188
172
  Function to recursively move from waitingChildren to failed.
@@ -266,11 +250,6 @@ local function promoteDelayedJobs(delayedKey, waitKey, priorityKey, pausedKey,
266
250
  rcall("HSET", prefix .. jobId, "delay", 0)
267
251
  end
268
252
  end
269
- local nextTimestamp = rcall("ZRANGE", delayedKey, 0, 0, "WITHSCORES")[2]
270
- if (nextTimestamp ~= nil) then
271
- nextTimestamp = nextTimestamp / 0x1000
272
- end
273
- return nextTimestamp
274
253
  end
275
254
  --[[
276
255
  Functions to remove jobs by max age.
@@ -421,6 +400,19 @@ local function updateParentDepsIfNeeded(parentKey, parentQueueKey, parentDepende
421
400
  rcall("XADD", parentQueueKey .. ":events", "*", "event", "waiting", "jobId", parentId, "prev", "waiting-children")
422
401
  end
423
402
  end
403
+ local function getRateLimitTTL(opts, limiterKey)
404
+ local maxJobs = tonumber(opts['limiter'] and opts['limiter']['max'])
405
+ if maxJobs then
406
+ local jobCounter = tonumber(rcall("GET", limiterKey))
407
+ if jobCounter ~= nil and jobCounter >= maxJobs then
408
+ local pttl = rcall("PTTL", KEYS[6])
409
+ if pttl > 0 then
410
+ return pttl
411
+ end
412
+ end
413
+ end
414
+ return 0
415
+ end
424
416
  local jobIdKey = KEYS[10]
425
417
  if rcall("EXISTS", jobIdKey) == 1 then -- // Make sure job exists
426
418
  local opts = cmsgpack.unpack(ARGV[9])
@@ -507,6 +499,11 @@ if rcall("EXISTS", jobIdKey) == 1 then -- // Make sure job exists
507
499
  if (ARGV[7] == "1") then
508
500
  -- Check if there are delayed jobs that can be promoted
509
501
  promoteDelayedJobs(KEYS[7], KEYS[1], KEYS[3], KEYS[8], KEYS[11], KEYS[4], ARGV[8], timestamp)
502
+ -- Check if we are rate limited first.
503
+ local pttl = getRateLimitTTL(opts, KEYS[6])
504
+ if pttl > 0 then
505
+ return { 0, 0, pttl }
506
+ end
510
507
  jobId = rcall("RPOPLPUSH", KEYS[1], KEYS[2])
511
508
  if jobId == "0" then
512
509
  rcall("LREM", KEYS[2], 1, 0)
@@ -518,7 +515,7 @@ if rcall("EXISTS", jobIdKey) == 1 then -- // Make sure job exists
518
515
  if (nextTimestamp ~= nil) then
519
516
  -- The result is guaranteed to be positive, since the
520
517
  -- ZRANGEBYSCORE command would have return a job otherwise.
521
- return nextTimestamp - timestamp
518
+ return {0, 0, 0, nextTimestamp - timestamp}
522
519
  end
523
520
  end
524
521
  local waitLen = rcall("LLEN", KEYS[1])
@@ -1 +1 @@
1
- {"version":3,"file":"moveToFinished-12.js","sourceRoot":"","sources":["../../../src/scripts/moveToFinished-12.ts"],"names":[],"mappings":";;;AAAA,MAAM,OAAO,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmhBf,CAAC;AACW,QAAA,cAAc,GAAG;IAC5B,IAAI,EAAE,gBAAgB;IACtB,OAAO;IACP,IAAI,EAAE,EAAE;CACT,CAAC"}
1
+ {"version":3,"file":"moveToFinished-12.js","sourceRoot":"","sources":["../../../src/scripts/moveToFinished-12.ts"],"names":[],"mappings":";;;AAAA,MAAM,OAAO,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAghBf,CAAC;AACW,QAAA,cAAc,GAAG;IAC5B,IAAI,EAAE,gBAAgB;IACtB,OAAO;IACP,IAAI,EAAE,EAAE;CACT,CAAC"}
@@ -0,0 +1,2 @@
1
+ import { Job } from '../classes/job';
2
+ export declare type BackoffStrategy = (attemptsMade?: number, type?: string, err?: Error, job?: Job) => Promise<number> | number;
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=backoff-strategy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"backoff-strategy.js","sourceRoot":"","sources":["../../../src/types/backoff-strategy.ts"],"names":[],"mappings":""}
@@ -1,5 +1,6 @@
1
- export * from './repeat-strategy';
1
+ export * from './backoff-strategy';
2
2
  export * from './finished-status';
3
3
  export * from './job-json-sandbox';
4
4
  export * from './job-options';
5
5
  export * from './job-type';
6
+ export * from './repeat-strategy';
@@ -1,9 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const tslib_1 = require("tslib");
4
- tslib_1.__exportStar(require("./repeat-strategy"), exports);
4
+ tslib_1.__exportStar(require("./backoff-strategy"), exports);
5
5
  tslib_1.__exportStar(require("./finished-status"), exports);
6
6
  tslib_1.__exportStar(require("./job-json-sandbox"), exports);
7
7
  tslib_1.__exportStar(require("./job-options"), exports);
8
8
  tslib_1.__exportStar(require("./job-type"), exports);
9
+ tslib_1.__exportStar(require("./repeat-strategy"), exports);
9
10
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/types/index.ts"],"names":[],"mappings":";;;AAAA,4DAAkC;AAClC,4DAAkC;AAClC,6DAAmC;AACnC,wDAA8B;AAC9B,qDAA2B"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/types/index.ts"],"names":[],"mappings":";;;AAAA,6DAAmC;AACnC,4DAAkC;AAClC,6DAAmC;AACnC,wDAA8B;AAC9B,qDAA2B;AAC3B,4DAAkC"}
@@ -1,8 +1,7 @@
1
1
  /// <reference types="node" />
2
2
  /// <reference types="node" />
3
3
  import { Cluster, Redis } from 'ioredis';
4
- import { ChildMessage, ParentMessage, QueueOptions, RedisClient } from './interfaces';
5
- import { JobsOptions } from './types';
4
+ import { ChildMessage, ParentMessage, RedisClient } from './interfaces';
6
5
  import { ChildProcess } from 'child_process';
7
6
  export declare const errorObject: {
8
7
  [index: string]: any;
@@ -24,7 +23,6 @@ export declare function getParentKey(opts: {
24
23
  id: string;
25
24
  queue: string;
26
25
  }): string;
27
- export declare function jobIdForGroup(jobOpts: JobsOptions, data: any, queueOpts: QueueOptions): string;
28
26
  export declare const clientCommandMessageReg: RegExp;
29
27
  export declare const DELAY_TIME_5 = 5000;
30
28
  export declare const DELAY_TIME_1 = 100;
package/dist/cjs/utils.js CHANGED
@@ -1,12 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.QUEUE_EVENT_SUFFIX = exports.QUEUE_SCHEDULER_SUFFIX = exports.WORKER_SUFFIX = exports.parentSend = exports.isRedisVersionLowerThan = exports.childSend = exports.asyncSend = exports.isNotConnectionError = exports.DELAY_TIME_1 = exports.DELAY_TIME_5 = exports.clientCommandMessageReg = exports.jobIdForGroup = exports.getParentKey = exports.removeAllQueueData = exports.isRedisCluster = exports.isRedisInstance = exports.delay = exports.array2obj = exports.isEmpty = exports.lengthInUtf8Bytes = exports.tryCatch = exports.errorObject = void 0;
3
+ exports.QUEUE_EVENT_SUFFIX = exports.QUEUE_SCHEDULER_SUFFIX = exports.WORKER_SUFFIX = exports.parentSend = exports.isRedisVersionLowerThan = exports.childSend = exports.asyncSend = exports.isNotConnectionError = exports.DELAY_TIME_1 = exports.DELAY_TIME_5 = exports.clientCommandMessageReg = exports.getParentKey = exports.removeAllQueueData = exports.isRedisCluster = exports.isRedisInstance = exports.delay = exports.array2obj = exports.isEmpty = exports.lengthInUtf8Bytes = exports.tryCatch = exports.errorObject = void 0;
4
4
  const ioredis_1 = require("ioredis");
5
5
  // eslint-disable-next-line @typescript-eslint/ban-ts-comment
6
6
  // @ts-ignore
7
7
  const utils_1 = require("ioredis/built/utils");
8
- const uuid_1 = require("uuid");
9
- const lodash_1 = require("lodash");
10
8
  const semver = require("semver");
11
9
  exports.errorObject = { value: null };
12
10
  function tryCatch(fn, ctx, args) {
@@ -96,16 +94,6 @@ function getParentKey(opts) {
96
94
  }
97
95
  }
98
96
  exports.getParentKey = getParentKey;
99
- function jobIdForGroup(jobOpts, data, queueOpts) {
100
- const jobId = jobOpts === null || jobOpts === void 0 ? void 0 : jobOpts.jobId;
101
- const groupKeyPath = (0, lodash_1.get)(queueOpts, 'limiter.groupKey');
102
- const groupKey = (0, lodash_1.get)(data, groupKeyPath);
103
- if (groupKeyPath && !(typeof groupKey === 'undefined')) {
104
- return `${jobId || (0, uuid_1.v4)()}:${groupKey}`;
105
- }
106
- return jobId;
107
- }
108
- exports.jobIdForGroup = jobIdForGroup;
109
97
  exports.clientCommandMessageReg = /ERR unknown command ['`]\s*client\s*['`]/;
110
98
  exports.DELAY_TIME_5 = 5000;
111
99
  exports.DELAY_TIME_1 = 100;
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":";;;AAAA,qCAAyC;AACzC,6DAA6D;AAC7D,aAAa;AACb,+CAAkE;AAClE,+BAA0B;AAC1B,mCAA6B;AAC7B,iCAAiC;AAUpB,QAAA,WAAW,GAA6B,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AAErE,SAAgB,QAAQ,CACtB,EAAyB,EACzB,GAAQ,EACR,IAAW;IAEX,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;AAXD,4BAWC;AAED;;;;GAIG;AACH,SAAgB,iBAAiB,CAAC,GAAW;IAC3C,OAAO,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;AACxC,CAAC;AAFD,8CAEC;AAED,SAAgB,OAAO,CAAC,GAAW;IACjC,KAAK,MAAM,GAAG,IAAI,GAAG,EAAE;QACrB,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE;YAClD,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;AAED,SAAgB,cAAc,CAAC,GAAY;IACzC,OAAO,eAAe,CAAC,GAAG,CAAC,IAAc,GAAI,CAAC,SAAS,CAAC;AAC1D,CAAC;AAFD,wCAEC;AAEM,KAAK,UAAU,kBAAkB,CACtC,MAAmB,EACnB,SAAiB,EACjB,MAAM,GAAG,MAAM;IAEf,IAAI,MAAM,YAAY,iBAAO,EAAE;QAC7B,6BAA6B;QAC7B,kDAAkD;QAClD,OAAO,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;KAC/B;IACD,MAAM,OAAO,GAAG,GAAG,MAAM,IAAI,SAAS,IAAI,CAAC;IAC3C,OAAO,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QAC3C,MAAM,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC;YAC/B,KAAK,EAAE,OAAO;SACf,CAAC,CAAC;QACH,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAc,EAAE,EAAE;YACnC,IAAI,IAAI,CAAC,MAAM,EAAE;gBACf,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;gBACnC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;oBACjB,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBACpB,CAAC,CAAC,CAAC;gBACH,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;oBAC5B,MAAM,CAAC,KAAK,CAAC,CAAC;gBAChB,CAAC,CAAC,CAAC;aACJ;QACH,CAAC,CAAC,CAAC;QACH,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC;QAClC,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IAC7C,CAAC,CAAC,CAAC;AACL,CAAC;AA7BD,gDA6BC;AAED,SAAgB,YAAY,CAAC,IAAmC;IAC9D,IAAI,IAAI,EAAE;QACR,OAAO,GAAG,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,EAAE,EAAE,CAAC;KACnC;AACH,CAAC;AAJD,oCAIC;AAED,SAAgB,aAAa,CAC3B,OAAoB,EACpB,IAAS,EACT,SAAuB;IAEvB,MAAM,KAAK,GAAG,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,KAAK,CAAC;IAC7B,MAAM,YAAY,GAAG,IAAA,YAAG,EAAC,SAAS,EAAE,kBAAkB,CAAC,CAAC;IACxD,MAAM,QAAQ,GAAG,IAAA,YAAG,EAAC,IAAI,EAAE,YAAY,CAAC,CAAC;IACzC,IAAI,YAAY,IAAI,CAAC,CAAC,OAAO,QAAQ,KAAK,WAAW,CAAC,EAAE;QACtD,OAAO,GAAG,KAAK,IAAI,IAAA,SAAE,GAAE,IAAI,QAAQ,EAAE,CAAC;KACvC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAZD,sCAYC;AAEY,QAAA,uBAAuB,GAClC,0CAA0C,CAAC;AAEhC,QAAA,YAAY,GAAG,IAAI,CAAC;AAEpB,QAAA,YAAY,GAAG,GAAG,CAAC;AAEhC,SAAgB,oBAAoB,CAAC,KAAY;IAC/C,MAAM,YAAY,GAAG,GAAI,KAAe,CAAC,OAAO,EAAE,CAAC;IACnD,OAAO,CACL,YAAY,KAAK,mCAA2B;QAC5C,CAAC,YAAY,CAAC,QAAQ,CAAC,cAAc,CAAC,CACvC,CAAC;AACJ,CAAC;AAND,oDAMC;AAMM,MAAM,SAAS,GAAG,CACvB,IAAO,EACP,GAAQ,EACO,EAAE;IACjB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,UAAU,EAAE;YACnC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,GAAU,EAAE,EAAE;gBAC5B,IAAI,GAAG,EAAE;oBACP,MAAM,CAAC,GAAG,CAAC,CAAC;iBACb;qBAAM;oBACL,OAAO,EAAE,CAAC;iBACX;YACH,CAAC,CAAC,CAAC;SACJ;aAAM;YACL,OAAO,EAAE,CAAC;SACX;IACH,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAjBW,QAAA,SAAS,aAiBpB;AAEK,MAAM,SAAS,GAAG,CACvB,IAAoB,EACpB,GAAiB,EACF,EAAE,CAAC,IAAA,iBAAS,EAAiB,IAAI,EAAE,GAAG,CAAC,CAAC;AAH5C,QAAA,SAAS,aAGmC;AAElD,MAAM,uBAAuB,GAAG,CACrC,cAAsB,EACtB,cAAsB,EACb,EAAE;IACX,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC;IAE5D,OAAO,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;AAC5C,CAAC,CAAC;AAPW,QAAA,uBAAuB,2BAOlC;AAEK,MAAM,UAAU,GAAG,CACxB,KAAmB,EACnB,GAAkB,EACH,EAAE,CAAC,IAAA,iBAAS,EAAe,KAAK,EAAE,GAAG,CAAC,CAAC;AAH3C,QAAA,UAAU,cAGiC;AAE3C,QAAA,aAAa,GAAG,EAAE,CAAC;AAEnB,QAAA,sBAAsB,GAAG,KAAK,CAAC;AAE/B,QAAA,kBAAkB,GAAG,KAAK,CAAC"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"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"}
@@ -1,15 +1,12 @@
1
1
  import { Job } from './job';
2
2
  import { BackoffOptions } from '../interfaces/backoff-options';
3
+ import { BackoffStrategy } from '../types';
3
4
  interface BuiltInStrategies {
4
- [index: string]: (delay: number) => BackoffFunction;
5
+ [index: string]: (delay: number) => BackoffStrategy;
5
6
  }
6
- export interface Strategies {
7
- [index: string]: BackoffFunction;
8
- }
9
- export declare type BackoffFunction = (attemptsMade?: number, err?: Error, job?: Job) => number;
10
7
  export declare class Backoffs {
11
8
  static builtinStrategies: BuiltInStrategies;
12
9
  static normalize(backoff: number | BackoffOptions): BackoffOptions;
13
- static calculate(backoff: BackoffOptions, attemptsMade: number, customStrategies: Strategies, err: Error, job: Job): number;
10
+ static calculate(backoff: BackoffOptions, attemptsMade: number, err: Error, job: Job, customStrategy?: BackoffStrategy): Promise<number> | number;
14
11
  }
15
12
  export {};
@@ -10,10 +10,10 @@ export class Backoffs {
10
10
  return backoff;
11
11
  }
12
12
  }
13
- static calculate(backoff, attemptsMade, customStrategies, err, job) {
13
+ static calculate(backoff, attemptsMade, err, job, customStrategy) {
14
14
  if (backoff) {
15
- const strategy = lookupStrategy(backoff, customStrategies);
16
- return strategy(attemptsMade, err, job);
15
+ const strategy = lookupStrategy(backoff, customStrategy);
16
+ return strategy(attemptsMade, backoff.type, err, job);
17
17
  }
18
18
  }
19
19
  }
@@ -29,13 +29,13 @@ Backoffs.builtinStrategies = {
29
29
  };
30
30
  },
31
31
  };
32
- function lookupStrategy(backoff, customStrategies) {
33
- if (backoff.type in (customStrategies || {})) {
34
- return customStrategies[backoff.type];
35
- }
36
- else if (backoff.type in Backoffs.builtinStrategies) {
32
+ function lookupStrategy(backoff, customStrategy) {
33
+ if (backoff.type in Backoffs.builtinStrategies) {
37
34
  return Backoffs.builtinStrategies[backoff.type](backoff.delay);
38
35
  }
36
+ else if (customStrategy) {
37
+ return customStrategy;
38
+ }
39
39
  else {
40
40
  throw new Error(`Unknown backoff strategy ${backoff.type}.
41
41
  If a custom backoff strategy is used, specify it when the queue is created.`);
@@ -1 +1 @@
1
- {"version":3,"file":"backoffs.js","sourceRoot":"","sources":["../../../src/classes/backoffs.ts"],"names":[],"mappings":"AAiBA,MAAM,OAAO,QAAQ;IAenB,MAAM,CAAC,SAAS,CAAC,OAAgC;QAC/C,IAAI,MAAM,CAAC,QAAQ,CAAS,OAAO,CAAC,EAAE;YACpC,OAAO;gBACL,IAAI,EAAE,OAAO;gBACb,KAAK,EAAU,OAAO;aACvB,CAAC;SACH;aAAM,IAAI,OAAO,EAAE;YAClB,OAAuB,OAAO,CAAC;SAChC;IACH,CAAC;IAED,MAAM,CAAC,SAAS,CACd,OAAuB,EACvB,YAAoB,EACpB,gBAA4B,EAC5B,GAAU,EACV,GAAQ;QAER,IAAI,OAAO,EAAE;YACX,MAAM,QAAQ,GAAG,cAAc,CAAC,OAAO,EAAE,gBAAgB,CAAC,CAAC;YAE3D,OAAO,QAAQ,CAAC,YAAY,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;SACzC;IACH,CAAC;;AArCM,0BAAiB,GAAsB;IAC5C,KAAK,EAAE,UAAU,KAAa;QAC5B,OAAO;YACL,OAAO,KAAK,CAAC;QACf,CAAC,CAAC;IACJ,CAAC;IAED,WAAW,EAAE,UAAU,KAAa;QAClC,OAAO,UAAU,YAAoB;YACnC,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,YAAY,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC;QAC7D,CAAC,CAAC;IACJ,CAAC;CACF,CAAC;AA4BJ,SAAS,cAAc,CACrB,OAAuB,EACvB,gBAA4B;IAE5B,IAAI,OAAO,CAAC,IAAI,IAAI,CAAC,gBAAgB,IAAI,EAAE,CAAC,EAAE;QAC5C,OAAO,gBAAgB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;KACvC;SAAM,IAAI,OAAO,CAAC,IAAI,IAAI,QAAQ,CAAC,iBAAiB,EAAE;QACrD,OAAO,QAAQ,CAAC,iBAAiB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;KAChE;SAAM;QACL,MAAM,IAAI,KAAK,CACb,4BAA4B,OAAO,CAAC,IAAI;kFACoC,CAC7E,CAAC;KACH;AACH,CAAC"}
1
+ {"version":3,"file":"backoffs.js","sourceRoot":"","sources":["../../../src/classes/backoffs.ts"],"names":[],"mappings":"AAQA,MAAM,OAAO,QAAQ;IAenB,MAAM,CAAC,SAAS,CAAC,OAAgC;QAC/C,IAAI,MAAM,CAAC,QAAQ,CAAS,OAAO,CAAC,EAAE;YACpC,OAAO;gBACL,IAAI,EAAE,OAAO;gBACb,KAAK,EAAU,OAAO;aACvB,CAAC;SACH;aAAM,IAAI,OAAO,EAAE;YAClB,OAAuB,OAAO,CAAC;SAChC;IACH,CAAC;IAED,MAAM,CAAC,SAAS,CACd,OAAuB,EACvB,YAAoB,EACpB,GAAU,EACV,GAAQ,EACR,cAAgC;QAEhC,IAAI,OAAO,EAAE;YACX,MAAM,QAAQ,GAAG,cAAc,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;YAEzD,OAAO,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;SACvD;IACH,CAAC;;AArCM,0BAAiB,GAAsB;IAC5C,KAAK,EAAE,UAAU,KAAa;QAC5B,OAAO;YACL,OAAO,KAAK,CAAC;QACf,CAAC,CAAC;IACJ,CAAC;IAED,WAAW,EAAE,UAAU,KAAa;QAClC,OAAO,UAAU,YAAoB;YACnC,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,YAAY,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC;QAC7D,CAAC,CAAC;IACJ,CAAC;CACF,CAAC;AA4BJ,SAAS,cAAc,CACrB,OAAuB,EACvB,cAA+B;IAE/B,IAAI,OAAO,CAAC,IAAI,IAAI,QAAQ,CAAC,iBAAiB,EAAE;QAC9C,OAAO,QAAQ,CAAC,iBAAiB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;KAChE;SAAM,IAAI,cAAc,EAAE;QACzB,OAAO,cAAc,CAAC;KACvB;SAAM;QACL,MAAM,IAAI,KAAK,CACb,4BAA4B,OAAO,CAAC,IAAI;kFACoC,CAC7E,CAAC;KACH;AACH,CAAC"}
@@ -1,7 +1,7 @@
1
1
  import { EventEmitter } from 'events';
2
2
  import { get } from 'lodash';
3
3
  import { v4 } from 'uuid';
4
- import { getParentKey, jobIdForGroup } from '../utils';
4
+ import { getParentKey } from '../utils';
5
5
  import { Job } from './job';
6
6
  import { QueueKeys } from './queue-keys';
7
7
  import { RedisConnection } from './redis-connection';
@@ -134,10 +134,11 @@ export class FlowProducer extends EventEmitter {
134
134
  * @returns
135
135
  */
136
136
  addNode({ multi, node, parent, queuesOpts }) {
137
+ var _a;
137
138
  const queue = this.queueFromNode(node, new QueueKeys(node.prefix || this.opts.prefix));
138
139
  const queueOpts = queuesOpts && queuesOpts[node.queueName];
139
140
  const jobsOpts = get(queueOpts, 'defaultJobOptions');
140
- const jobId = jobIdForGroup(node.opts, node.data, queueOpts) || v4();
141
+ const jobId = ((_a = node.opts) === null || _a === void 0 ? void 0 : _a.jobId) || v4();
141
142
  const job = new this.Job(queue, node.name, node.data, Object.assign(Object.assign(Object.assign({}, (jobsOpts ? jobsOpts : {})), node.opts), { parent: parent === null || parent === void 0 ? void 0 : parent.parentOpts }), jobId);
142
143
  const parentKey = getParentKey(parent === null || parent === void 0 ? void 0 : parent.parentOpts);
143
144
  if (node.children && node.children.length > 0) {
@@ -1 +1 @@
1
- {"version":3,"file":"flow-producer.js","sourceRoot":"","sources":["../../../src/classes/flow-producer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"flow-producer.js","sourceRoot":"","sources":["../../../src/classes/flow-producer.ts"],"names":[],"mappings":"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"}
@@ -2,7 +2,7 @@ import { ChainableCommander } from 'ioredis';
2
2
  import { JobJson, JobJsonRaw, ParentKeys, RedisClient } from '../interfaces';
3
3
  import { FinishedStatus, JobsOptions, JobState, JobJsonSandbox } from '../types';
4
4
  import { QueueEvents } from './queue-events';
5
- import { MinimalQueue, ParentOpts, Scripts, JobData } from './scripts';
5
+ import { MinimalQueue, ParentOpts, Scripts } from './scripts';
6
6
  export declare type BulkJobOptions = Omit<JobsOptions, 'repeat'>;
7
7
  export interface MoveToWaitingChildrenOpts {
8
8
  child?: {
@@ -154,7 +154,7 @@ export declare class Job<DataType = any, ReturnType = any, NameType extends stri
154
154
  * @returns
155
155
  */
156
156
  static fromId<T = any, R = any, N extends string = string>(queue: MinimalQueue, jobId: string): Promise<Job<T, R, N> | undefined>;
157
- toJSON(): Omit<this, "toJSON" | "scripts" | "prefix" | "discard" | "addJob" | "changeDelay" | "extendLock" | "getState" | "moveToDelayed" | "moveToWaitingChildren" | "promote" | "updateProgress" | "queue" | "asJSON" | "asJSONSandbox" | "update" | "log" | "remove" | "moveToCompleted" | "moveToFailed" | "isCompleted" | "isFailed" | "isDelayed" | "isWaitingChildren" | "isActive" | "isWaiting" | "queueName" | "queueQualifiedName" | "getChildrenValues" | "getDependencies" | "getDependenciesCount" | "waitUntilFinished" | "retry">;
157
+ toJSON(): Omit<this, "toJSON" | "scripts" | "prefix" | "addJob" | "changeDelay" | "extendLock" | "getState" | "moveToDelayed" | "moveToWaitingChildren" | "promote" | "updateProgress" | "discard" | "queue" | "asJSON" | "asJSONSandbox" | "update" | "log" | "remove" | "moveToCompleted" | "moveToFailed" | "isCompleted" | "isFailed" | "isDelayed" | "isWaitingChildren" | "isActive" | "isWaiting" | "queueName" | "queueQualifiedName" | "getChildrenValues" | "getDependencies" | "getDependenciesCount" | "waitUntilFinished" | "retry">;
158
158
  /**
159
159
  * Prepares a job to be serialized for storage in Redis.
160
160
  * @returns
@@ -206,7 +206,7 @@ export declare class Job<DataType = any, ReturnType = any, NameType extends stri
206
206
  * @param fetchNext - True when wanting to fetch the next job.
207
207
  * @returns Returns the jobData of the next job in the waiting queue.
208
208
  */
209
- moveToCompleted(returnValue: ReturnType, token: string, fetchNext?: boolean): Promise<JobData | []>;
209
+ moveToCompleted(returnValue: ReturnType, token: string, fetchNext?: boolean): Promise<any[]>;
210
210
  /**
211
211
  * Moves a job to the failed queue.
212
212
  *
@@ -344,7 +344,7 @@ export class Job {
344
344
  !(err instanceof UnrecoverableError || err.name == 'UnrecoverableError')) {
345
345
  const opts = queue.opts;
346
346
  // Check if backoff is needed
347
- const delay = await Backoffs.calculate(this.opts.backoff, this.attemptsMade, opts.settings && opts.settings.backoffStrategies, err, this);
347
+ const delay = await Backoffs.calculate(this.opts.backoff, this.attemptsMade, err, this, opts.settings && opts.settings.backoffStrategy);
348
348
  if (delay === -1) {
349
349
  moveToFailed = true;
350
350
  }