bullmq 2.3.2 → 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 (97) 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 +18 -2
  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/commands/promote-6.lua +2 -10
  29. package/dist/cjs/interfaces/advanced-options.d.ts +4 -4
  30. package/dist/cjs/interfaces/base-job-options.d.ts +0 -6
  31. package/dist/cjs/interfaces/queue-options.d.ts +0 -10
  32. package/dist/cjs/interfaces/rate-limiter-options.d.ts +0 -18
  33. package/dist/cjs/interfaces/repeat-options.d.ts +1 -6
  34. package/dist/cjs/scripts/moveToActive-9.js +35 -36
  35. package/dist/cjs/scripts/moveToActive-9.js.map +1 -1
  36. package/dist/cjs/scripts/moveToFinished-12.js +33 -36
  37. package/dist/cjs/scripts/moveToFinished-12.js.map +1 -1
  38. package/dist/cjs/scripts/promote-6.js +15 -9
  39. package/dist/cjs/scripts/promote-6.js.map +1 -1
  40. package/dist/cjs/types/backoff-strategy.d.ts +2 -0
  41. package/dist/cjs/types/backoff-strategy.js +3 -0
  42. package/dist/cjs/types/backoff-strategy.js.map +1 -0
  43. package/dist/cjs/types/index.d.ts +2 -1
  44. package/dist/cjs/types/index.js +2 -1
  45. package/dist/cjs/types/index.js.map +1 -1
  46. package/dist/cjs/utils.d.ts +1 -3
  47. package/dist/cjs/utils.js +1 -13
  48. package/dist/cjs/utils.js.map +1 -1
  49. package/dist/esm/classes/backoffs.d.ts +3 -6
  50. package/dist/esm/classes/backoffs.js +8 -8
  51. package/dist/esm/classes/backoffs.js.map +1 -1
  52. package/dist/esm/classes/flow-producer.js +19 -3
  53. package/dist/esm/classes/flow-producer.js.map +1 -1
  54. package/dist/esm/classes/job.d.ts +3 -3
  55. package/dist/esm/classes/job.js +1 -1
  56. package/dist/esm/classes/job.js.map +1 -1
  57. package/dist/esm/classes/queue-base.js +1 -1
  58. package/dist/esm/classes/queue-base.js.map +1 -1
  59. package/dist/esm/classes/queue.d.ts +8 -6
  60. package/dist/esm/classes/queue.js +11 -10
  61. package/dist/esm/classes/queue.js.map +1 -1
  62. package/dist/esm/classes/repeat.d.ts +0 -1
  63. package/dist/esm/classes/repeat.js +4 -5
  64. package/dist/esm/classes/repeat.js.map +1 -1
  65. package/dist/esm/classes/scripts.d.ts +4 -4
  66. package/dist/esm/classes/scripts.js +7 -14
  67. package/dist/esm/classes/scripts.js.map +1 -1
  68. package/dist/esm/classes/worker.d.ts +12 -3
  69. package/dist/esm/classes/worker.js +50 -34
  70. package/dist/esm/classes/worker.js.map +1 -1
  71. package/dist/esm/commands/includes/getRateLimitTTL.lua +13 -0
  72. package/dist/esm/commands/includes/moveJobFromWaitToActive.lua +15 -34
  73. package/dist/esm/commands/includes/promoteDelayedJobs.lua +0 -6
  74. package/dist/esm/commands/moveToActive-9.lua +11 -2
  75. package/dist/esm/commands/moveToFinished-12.lua +8 -1
  76. package/dist/esm/commands/promote-6.lua +2 -10
  77. package/dist/esm/interfaces/advanced-options.d.ts +4 -4
  78. package/dist/esm/interfaces/base-job-options.d.ts +0 -6
  79. package/dist/esm/interfaces/queue-options.d.ts +0 -10
  80. package/dist/esm/interfaces/rate-limiter-options.d.ts +0 -18
  81. package/dist/esm/interfaces/repeat-options.d.ts +1 -6
  82. package/dist/esm/scripts/moveToActive-9.js +35 -36
  83. package/dist/esm/scripts/moveToActive-9.js.map +1 -1
  84. package/dist/esm/scripts/moveToFinished-12.js +33 -36
  85. package/dist/esm/scripts/moveToFinished-12.js.map +1 -1
  86. package/dist/esm/scripts/promote-6.js +15 -9
  87. package/dist/esm/scripts/promote-6.js.map +1 -1
  88. package/dist/esm/types/backoff-strategy.d.ts +2 -0
  89. package/dist/esm/types/backoff-strategy.js +2 -0
  90. package/dist/esm/types/backoff-strategy.js.map +1 -0
  91. package/dist/esm/types/index.d.ts +2 -1
  92. package/dist/esm/types/index.js +2 -1
  93. package/dist/esm/types/index.js.map +1 -1
  94. package/dist/esm/utils.d.ts +1 -3
  95. package/dist/esm/utils.js +0 -11
  96. package/dist/esm/utils.js.map +1 -1
  97. package/package.json +1 -1
@@ -9,22 +9,4 @@ export interface RateLimiterOptions {
9
9
  * of `max` jobs will be processed.
10
10
  */
11
11
  duration: number;
12
- /**
13
- * It is possible to define a rate limiter based on group keys,
14
- * for example you may want to have a rate limiter per customer
15
- * instead of a global rate limiter for all customers
16
- *
17
- * @see {@link https://docs.bullmq.io/guide/rate-limiting}
18
- */
19
- groupKey?: string;
20
- /**
21
- * This option enables a heuristic so that when a queue is heavily
22
- * rete limited, it delays the workers so that they do not try
23
- * to pick jobs when there is no point in doing so.
24
- * Note: It is not recommended to use this option when using
25
- * groupKeys unless you have a big amount of workers since
26
- * you may be delaying workers that could pick jobs in groups that
27
- * have not been rate limited.
28
- */
29
- workerDelay?: boolean;
30
12
  }
@@ -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"}
@@ -18,6 +18,20 @@ const content = `--[[
18
18
  local rcall = redis.call;
19
19
  local jobId = ARGV[2]
20
20
  -- Includes
21
+ --[[
22
+ Function to add job considering priority.
23
+ ]]
24
+ local function addJobWithPriority(priorityKey, priority, targetKey, jobId)
25
+ rcall("ZADD", priorityKey, priority, jobId)
26
+ local count = rcall("ZCOUNT", priorityKey, 0, priority)
27
+ local len = rcall("LLEN", targetKey)
28
+ local id = rcall("LINDEX", targetKey, len - (count - 1))
29
+ if id then
30
+ rcall("LINSERT", targetKey, "BEFORE", id, jobId)
31
+ else
32
+ rcall("RPUSH", targetKey, jobId)
33
+ end
34
+ end
21
35
  --[[
22
36
  Function to check for the meta.paused key to decide if we are paused or not
23
37
  (since an empty list and !EXISTS are not really the same).
@@ -42,15 +56,7 @@ if rcall("ZREM", KEYS[1], jobId) == 1 then
42
56
  rcall("LPUSH", target, jobId)
43
57
  else
44
58
  -- Priority add
45
- rcall("ZADD", KEYS[5], priority, jobId)
46
- local count = rcall("ZCOUNT", KEYS[5], 0, priority)
47
- local len = rcall("LLEN", target)
48
- local id = rcall("LINDEX", target, len - (count - 1))
49
- if id then
50
- rcall("LINSERT", target, "BEFORE", id, jobId)
51
- else
52
- rcall("RPUSH", target, jobId)
53
- end
59
+ addJobWithPriority(KEYS[5], priority, target, jobId)
54
60
  end
55
61
  -- Emit waiting event (wait..ing@token)
56
62
  rcall("XADD", KEYS[6], "*", "event", "waiting", "jobId", jobId, "prev", "delayed");
@@ -1 +1 @@
1
- {"version":3,"file":"promote-6.js","sourceRoot":"","sources":["../../../src/scripts/promote-6.ts"],"names":[],"mappings":";;;AAAA,MAAM,OAAO,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAyDZ,CAAC;AACQ,QAAA,OAAO,GAAG;IACrB,IAAI,EAAE,SAAS;IACf,OAAO;IACP,IAAI,EAAE,CAAC;CACR,CAAC"}
1
+ {"version":3,"file":"promote-6.js","sourceRoot":"","sources":["../../../src/scripts/promote-6.ts"],"names":[],"mappings":";;;AAAA,MAAM,OAAO,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IA+DZ,CAAC;AACQ,QAAA,OAAO,GAAG;IACrB,IAAI,EAAE,SAAS;IACf,OAAO;IACP,IAAI,EAAE,CAAC;CACR,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) {
@@ -184,7 +185,22 @@ export class FlowProducer extends EventEmitter {
184
185
  * @returns
185
186
  */
186
187
  addNodes(multi, nodes) {
187
- return nodes.map(node => this.addNode({ multi, node }));
188
+ return nodes.map(node => {
189
+ var _a;
190
+ const parentOpts = (_a = node === null || node === void 0 ? void 0 : node.opts) === null || _a === void 0 ? void 0 : _a.parent;
191
+ const parentKey = getParentKey(parentOpts);
192
+ const parentDependenciesKey = parentKey
193
+ ? `${parentKey}:dependencies`
194
+ : undefined;
195
+ return this.addNode({
196
+ multi,
197
+ node,
198
+ parent: {
199
+ parentOpts,
200
+ parentDependenciesKey,
201
+ },
202
+ });
203
+ });
188
204
  }
189
205
  async getNode(client, node) {
190
206
  const queue = this.queueFromNode(node, new QueueKeys(node.prefix));
@@ -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":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAC;AAE7B,OAAO,EAAE,EAAE,EAAE,MAAM,MAAM,CAAC;AAS1B,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AACxC,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAC5B,OAAO,EAAW,SAAS,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAoErD;;;;;;;GAOG;AACH,MAAM,OAAO,YAAa,SAAQ,YAAY;IAQ5C,YACS,OAAyB,EAAE,EAClC,aAAqC,eAAe;QAEpD,KAAK,EAAE,CAAC;QAHD,SAAI,GAAJ,IAAI,CAAuB;QAKlC,IAAI,CAAC,IAAI,mBACP,MAAM,EAAE,MAAM,IACX,IAAI,CACR,CAAC;QAEF,IAAI,CAAC,UAAU,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAClD,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;QAChE,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC,CAAC;QAEnE,IAAI,CAAC,SAAS,GAAG,IAAI,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC9C,CAAC;IAED,IAAI,CACF,KAAQ,EACR,GAAG,IAAyC;QAE5C,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,CAAC;IACpC,CAAC;IAED,GAAG,CACD,SAAY,EACZ,QAAiC;QAEjC,KAAK,CAAC,GAAG,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;QAC/B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,EAAE,CACA,KAAQ,EACR,QAAiC;QAEjC,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QAC1B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,CACF,KAAQ,EACR,QAAiC;QAEjC,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QAC5B,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;;;;;OASG;IACH,KAAK,CAAC,GAAG,CAAC,IAAa,EAAE,IAAe;;QACtC,IAAI,IAAI,CAAC,OAAO,EAAE;YAChB,OAAO;SACR;QACD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;QAC5C,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC;QAE7B,MAAM,UAAU,GAAG,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,IAAI,0CAAE,MAAM,CAAC;QACtC,MAAM,SAAS,GAAG,YAAY,CAAC,UAAU,CAAC,CAAC;QAC3C,MAAM,qBAAqB,GAAG,SAAS;YACrC,CAAC,CAAC,GAAG,SAAS,eAAe;YAC7B,CAAC,CAAC,SAAS,CAAC;QAEd,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC;YAC5B,KAAK;YACL,IAAI,EAAE,IAAI;YACV,UAAU,EAAE,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,aAAa;YAC/B,MAAM,EAAE;gBACN,UAAU;gBACV,qBAAqB;aACtB;SACF,CAAC,CAAC;QAEH,MAAM,KAAK,CAAC,IAAI,EAAE,CAAC;QAEnB,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,OAAO,CAAC,IAAc;QAC1B,IAAI,IAAI,CAAC,OAAO,EAAE;YAChB,OAAO;SACR;QACD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;QAE5C,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAC/B;YACE,KAAK,EAAE,EAAE;YACT,WAAW,EAAE,EAAE;SAChB,EACD,IAAI,CACL,CAAC;QACF,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;QAEnD,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;IAChC,CAAC;IAED;;OAEG;IACH,IAAc,GAAG;QACf,OAAO,GAAG,CAAC;IACb,CAAC;IAED;;;;;;;;;;;;;OAaG;IACH,KAAK,CAAC,OAAO,CAAC,KAAgB;QAC5B,IAAI,IAAI,CAAC,OAAO,EAAE;YAChB,OAAO;SACR;QACD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;QAC5C,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC;QAE7B,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QAE9C,MAAM,KAAK,CAAC,IAAI,EAAE,CAAC;QAEnB,OAAO,SAAS,CAAC;IACnB,CAAC;IAED;;;;;;;;;;OAUG;IACO,OAAO,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAe;;QAChE,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAC9B,IAAI,EACJ,IAAI,SAAS,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAC/C,CAAC;QACF,MAAM,SAAS,GAAG,UAAU,IAAI,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAE3D,MAAM,QAAQ,GAAG,GAAG,CAAC,SAAS,EAAE,mBAAmB,CAAC,CAAC;QACrD,MAAM,KAAK,GAAG,CAAA,MAAA,IAAI,CAAC,IAAI,0CAAE,KAAK,KAAI,EAAE,EAAE,CAAC;QAEvC,MAAM,GAAG,GAAG,IAAI,IAAI,CAAC,GAAG,CACtB,KAAK,EACL,IAAI,CAAC,IAAI,EACT,IAAI,CAAC,IAAI,gDAEJ,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,GAC1B,IAAI,CAAC,IAAI,KACZ,MAAM,EAAE,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,UAAU,KAE5B,KAAK,CACN,CAAC;QAEF,MAAM,SAAS,GAAG,YAAY,CAAC,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,UAAU,CAAC,CAAC;QAEnD,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;YAC7C,iEAAiE;YACjE,MAAM,QAAQ,GAAG,KAAK,CAAC;YACvB,MAAM,eAAe,GAAG,IAAI,SAAS,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACvE,MAAM,eAAe,GAAG,eAAe,CAAC,KAAK,CAC3C,IAAI,CAAC,SAAS,EACd,kBAAkB,CACnB,CAAC;YAEF,GAAG,CAAC,MAAM,CAAS,KAAiB,EAAE;gBACpC,qBAAqB,EAAE,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,qBAAqB;gBACpD,eAAe;gBACf,SAAS;aACV,CAAC,CAAC;YAEH,MAAM,qBAAqB,GAAG,GAAG,eAAe,CAAC,KAAK,CACpD,IAAI,CAAC,SAAS,EACd,QAAQ,CACT,eAAe,CAAC;YAEjB,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC;gBAChC,KAAK;gBACL,KAAK,EAAE,IAAI,CAAC,QAAQ;gBACpB,MAAM,EAAE;oBACN,UAAU,EAAE;wBACV,EAAE,EAAE,QAAQ;wBACZ,KAAK,EAAE,eAAe,CAAC,oBAAoB,CAAC,IAAI,CAAC,SAAS,CAAC;qBAC5D;oBACD,qBAAqB;iBACtB;gBACD,UAAU;aACX,CAAC,CAAC;YAEH,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC;SAC1B;aAAM;YACL,GAAG,CAAC,MAAM,CAAS,KAAiB,EAAE;gBACpC,qBAAqB,EAAE,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,qBAAqB;gBACpD,SAAS;aACV,CAAC,CAAC;YAEH,OAAO,EAAE,GAAG,EAAE,CAAC;SAChB;IACH,CAAC;IAED;;;;;;;;;OASG;IACO,QAAQ,CAAC,KAAyB,EAAE,KAAgB;QAC5D,OAAO,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;;YACtB,MAAM,UAAU,GAAG,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,IAAI,0CAAE,MAAM,CAAC;YACtC,MAAM,SAAS,GAAG,YAAY,CAAC,UAAU,CAAC,CAAC;YAC3C,MAAM,qBAAqB,GAAG,SAAS;gBACrC,CAAC,CAAC,GAAG,SAAS,eAAe;gBAC7B,CAAC,CAAC,SAAS,CAAC;YAEd,OAAO,IAAI,CAAC,OAAO,CAAC;gBAClB,KAAK;gBACL,IAAI;gBACJ,MAAM,EAAE;oBACN,UAAU;oBACV,qBAAqB;iBACtB;aACF,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,OAAO,CAAC,MAAmB,EAAE,IAAc;QACvD,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,IAAI,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;QAEnE,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;QAElD,IAAI,GAAG,EAAE;YACP,MAAM,EAAE,SAAS,GAAG,EAAE,EAAE,WAAW,GAAG,EAAE,EAAE,GAAG,MAAM,GAAG,CAAC,eAAe,CAAC;gBACrE,SAAS,EAAE;oBACT,KAAK,EAAE,IAAI,CAAC,WAAW;iBACxB;gBACD,WAAW,EAAE;oBACX,KAAK,EAAE,IAAI,CAAC,WAAW;iBACxB;aACF,CAAC,CAAC;YACH,MAAM,aAAa,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAE7C,MAAM,aAAa,GAAG,aAAa,CAAC,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC;YAChE,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;YAChC,IAAI,aAAa,GAAG,CAAC,IAAI,QAAQ,EAAE;gBACjC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,WAAW,CACrC,MAAM,EACN,CAAC,GAAG,aAAa,EAAE,GAAG,WAAW,CAAC,EAClC,QAAQ,EACR,IAAI,CAAC,WAAW,CACjB,CAAC;gBAEF,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC;aAC1B;iBAAM;gBACL,OAAO,EAAE,GAAG,EAAE,CAAC;aAChB;SACF;IACH,CAAC;IAEO,WAAW,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAmB;QACvE,OAAO,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC;IAC9E,CAAC;IAEO,WAAW,CACjB,MAAmB,EACnB,YAAsB,EACtB,KAAa,EACb,WAAmB;QAEnB,MAAM,QAAQ,GAAG,CAAC,GAAW,EAAE,EAAE;YAC/B,MAAM,CAAC,MAAM,EAAE,SAAS,EAAE,EAAE,EAAE,OAAO,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAExD,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE;gBAC1B,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE;gBACrC,SAAS;gBACT,MAAM;gBACN,KAAK;gBACL,WAAW;aACZ,CAAC,CAAC;QACL,CAAC,CAAC;QAEF,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IACtD,CAAC;IAED;;;;;;;OAOG;IACK,aAAa,CACnB,IAAoD,EACpD,SAAoB;QAEpB,OAAO;YACL,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,MAAM;YAC9B,IAAI,EAAE,IAAI,CAAC,SAAS;YACpB,IAAI,EAAE,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC;YACvC,KAAK,EAAE,CAAC,IAAY,EAAE,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC;YAC9D,IAAI,EAAE,EAAE;YACR,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,cAAc,EAAE,KAAK,IAAI,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM;YAClD,cAAc,EAAE,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAQ;YACrD,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAQ;YACjC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAQ;YAC7B,YAAY,EAAE,IAAI,CAAC,UAAU,CAAC,YAAY;SAC3C,CAAC;IACJ,CAAC;IAED,KAAK;QACH,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;YACjB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;SACxC;QACD,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED,UAAU;QACR,OAAO,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,CAAC;IACtC,CAAC;CACF"}
@@ -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
  *