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
@@ -131,41 +131,25 @@ end
131
131
  local function moveJobFromWaitToActive(keys, keyPrefix, jobId, processedOn, opts)
132
132
  -- Check if we need to perform rate limiting.
133
133
  local maxJobs = tonumber(opts['limiter'] and opts['limiter']['max'])
134
+ local expireTime
134
135
  if(maxJobs) then
135
136
  local rateLimiterKey = keys[6];
136
- local groupKey
137
- local groupKeyOpt = opts['limiter'] and opts['limiter']['groupKey'] or ""
138
- if groupKeyOpt ~= "" then
139
- groupKey = string.match(jobId, "[^:]+$")
140
- if groupKey ~= jobId then
141
- rateLimiterKey = rateLimiterKey .. ":" .. groupKey
142
- end
143
- end
144
- local jobCounter
145
- if groupKey ~= nil then
146
- if rateLimiterKey ~= keys[6] then
147
- jobCounter = tonumber(rcall("INCR", rateLimiterKey))
148
- end
149
- else
150
- jobCounter = tonumber(rcall("INCR", rateLimiterKey))
137
+ local jobCounter = tonumber(rcall("INCR", rateLimiterKey))
138
+ if jobCounter == 1 then
139
+ local limiterDuration = opts['limiter'] and opts['limiter']['duration']
140
+ rcall("PEXPIRE", rateLimiterKey, limiterDuration)
151
141
  end
152
- local limiterDuration = opts['limiter'] and opts['limiter']['duration']
153
- -- check if rate limit hit
154
- if jobCounter ~= nil and jobCounter > maxJobs then
155
- local exceedingJobs = jobCounter - maxJobs
156
- local expireTime = tonumber(rcall("PTTL", rateLimiterKey))
157
- local delay = expireTime + ((exceedingJobs - 1) * limiterDuration) / maxJobs;
158
- local timestamp = delay + tonumber(processedOn)
159
- -- put job into delayed queue
160
- rcall("ZADD", keys[7], timestamp * 0x1000 + bit.band(jobCounter, 0xfff), jobId);
161
- rcall("XADD", keys[4], "*", "event", "delayed", "jobId", jobId, "delay", timestamp);
162
- -- remove from active queue
142
+ -- check if we passed rate limit, we need to remove the job and return expireTime
143
+ if jobCounter > maxJobs then
144
+ expireTime = rcall("PTTL", rateLimiterKey)
145
+ -- remove from active queue and add back to the wait list
163
146
  rcall("LREM", keys[2], 1, jobId)
147
+ rcall("RPUSH", keys[1], jobId)
164
148
  -- Return when we can process more jobs
165
- return expireTime
149
+ return {0, 0, expireTime}
166
150
  else
167
- if jobCounter == 1 then
168
- rcall("PEXPIRE", rateLimiterKey, limiterDuration)
151
+ if jobCounter == maxJobs then
152
+ expireTime = rcall("PTTL", rateLimiterKey)
169
153
  end
170
154
  end
171
155
  end
@@ -179,7 +163,7 @@ local function moveJobFromWaitToActive(keys, keyPrefix, jobId, processedOn, opts
179
163
  rcall("XADD", keys[4], "*", "event", "active", "jobId", jobId, "prev", "waiting")
180
164
  rcall("HSET", jobKey, "processedOn", processedOn)
181
165
  rcall("HINCRBY", jobKey, "attemptsMade", 1)
182
- return {rcall("HGETALL", jobKey), jobId} -- get job data
166
+ return {rcall("HGETALL", jobKey), jobId, expireTime} -- get job data
183
167
  end
184
168
  --[[
185
169
  Function to recursively move from waitingChildren to failed.
@@ -263,11 +247,6 @@ local function promoteDelayedJobs(delayedKey, waitKey, priorityKey, pausedKey,
263
247
  rcall("HSET", prefix .. jobId, "delay", 0)
264
248
  end
265
249
  end
266
- local nextTimestamp = rcall("ZRANGE", delayedKey, 0, 0, "WITHSCORES")[2]
267
- if (nextTimestamp ~= nil) then
268
- nextTimestamp = nextTimestamp / 0x1000
269
- end
270
- return nextTimestamp
271
250
  end
272
251
  --[[
273
252
  Functions to remove jobs by max age.
@@ -418,6 +397,19 @@ local function updateParentDepsIfNeeded(parentKey, parentQueueKey, parentDepende
418
397
  rcall("XADD", parentQueueKey .. ":events", "*", "event", "waiting", "jobId", parentId, "prev", "waiting-children")
419
398
  end
420
399
  end
400
+ local function getRateLimitTTL(opts, limiterKey)
401
+ local maxJobs = tonumber(opts['limiter'] and opts['limiter']['max'])
402
+ if maxJobs then
403
+ local jobCounter = tonumber(rcall("GET", limiterKey))
404
+ if jobCounter ~= nil and jobCounter >= maxJobs then
405
+ local pttl = rcall("PTTL", KEYS[6])
406
+ if pttl > 0 then
407
+ return pttl
408
+ end
409
+ end
410
+ end
411
+ return 0
412
+ end
421
413
  local jobIdKey = KEYS[10]
422
414
  if rcall("EXISTS", jobIdKey) == 1 then -- // Make sure job exists
423
415
  local opts = cmsgpack.unpack(ARGV[9])
@@ -504,6 +496,11 @@ if rcall("EXISTS", jobIdKey) == 1 then -- // Make sure job exists
504
496
  if (ARGV[7] == "1") then
505
497
  -- Check if there are delayed jobs that can be promoted
506
498
  promoteDelayedJobs(KEYS[7], KEYS[1], KEYS[3], KEYS[8], KEYS[11], KEYS[4], ARGV[8], timestamp)
499
+ -- Check if we are rate limited first.
500
+ local pttl = getRateLimitTTL(opts, KEYS[6])
501
+ if pttl > 0 then
502
+ return { 0, 0, pttl }
503
+ end
507
504
  jobId = rcall("RPOPLPUSH", KEYS[1], KEYS[2])
508
505
  if jobId == "0" then
509
506
  rcall("LREM", KEYS[2], 1, 0)
@@ -515,7 +512,7 @@ if rcall("EXISTS", jobIdKey) == 1 then -- // Make sure job exists
515
512
  if (nextTimestamp ~= nil) then
516
513
  -- The result is guaranteed to be positive, since the
517
514
  -- ZRANGEBYSCORE command would have return a job otherwise.
518
- return nextTimestamp - timestamp
515
+ return {0, 0, 0, nextTimestamp - timestamp}
519
516
  end
520
517
  end
521
518
  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;AACF,MAAM,CAAC,MAAM,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;AACF,MAAM,CAAC,MAAM,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,2 @@
1
+ export {};
2
+ //# 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,6 +1,7 @@
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';
6
7
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC;AAC3B,cAAc,mBAAmB,CAAC"}
@@ -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/esm/utils.js CHANGED
@@ -2,8 +2,6 @@ import { Cluster } from 'ioredis';
2
2
  // eslint-disable-next-line @typescript-eslint/ban-ts-comment
3
3
  // @ts-ignore
4
4
  import { CONNECTION_CLOSED_ERROR_MSG } from 'ioredis/built/utils';
5
- import { v4 } from 'uuid';
6
- import { get } from 'lodash';
7
5
  import * as semver from 'semver';
8
6
  export const errorObject = { value: null };
9
7
  export function tryCatch(fn, ctx, args) {
@@ -84,15 +82,6 @@ export function getParentKey(opts) {
84
82
  return `${opts.queue}:${opts.id}`;
85
83
  }
86
84
  }
87
- export function jobIdForGroup(jobOpts, data, queueOpts) {
88
- const jobId = jobOpts === null || jobOpts === void 0 ? void 0 : jobOpts.jobId;
89
- const groupKeyPath = get(queueOpts, 'limiter.groupKey');
90
- const groupKey = get(data, groupKeyPath);
91
- if (groupKeyPath && !(typeof groupKey === 'undefined')) {
92
- return `${jobId || v4()}:${groupKey}`;
93
- }
94
- return jobId;
95
- }
96
85
  export const clientCommandMessageReg = /ERR unknown command ['`]\s*client\s*['`]/;
97
86
  export const DELAY_TIME_5 = 5000;
98
87
  export const DELAY_TIME_1 = 100;
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "bullmq",
3
- "version": "2.4.0",
3
+ "version": "3.0.0",
4
4
  "description": "Queue for messages and jobs based on Redis",
5
5
  "main": "./dist/cjs/index.js",
6
6
  "module": "./dist/esm/index.js",