bullmq 3.1.1 → 3.1.3

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 (65) hide show
  1. package/dist/cjs/classes/job.js +4 -0
  2. package/dist/cjs/classes/job.js.map +1 -1
  3. package/dist/cjs/classes/queue-getters.js +1 -1
  4. package/dist/cjs/classes/queue-getters.js.map +1 -1
  5. package/dist/cjs/classes/queue.d.ts +1 -7
  6. package/dist/cjs/classes/queue.js +3 -0
  7. package/dist/cjs/classes/queue.js.map +1 -1
  8. package/dist/cjs/classes/repeat.js +5 -0
  9. package/dist/cjs/classes/repeat.js.map +1 -1
  10. package/dist/cjs/classes/worker.js +14 -6
  11. package/dist/cjs/classes/worker.js.map +1 -1
  12. package/dist/cjs/commands/addJob-8.lua +6 -5
  13. package/dist/cjs/commands/includes/checkStalledJobs.lua +22 -21
  14. package/dist/cjs/commands/includes/promoteDelayedJobs.lua +1 -2
  15. package/dist/cjs/commands/moveToActive-9.lua +13 -7
  16. package/dist/cjs/commands/moveToDelayed-8.lua +31 -23
  17. package/dist/cjs/commands/moveToFinished-12.lua +9 -5
  18. package/dist/cjs/commands/promote-6.lua +2 -1
  19. package/dist/cjs/scripts/addJob-8.js +6 -5
  20. package/dist/cjs/scripts/addJob-8.js.map +1 -1
  21. package/dist/cjs/scripts/moveStalledJobsToWait-8.js +22 -21
  22. package/dist/cjs/scripts/moveStalledJobsToWait-8.js.map +1 -1
  23. package/dist/cjs/scripts/moveToActive-9.js +13 -9
  24. package/dist/cjs/scripts/moveToActive-9.js.map +1 -1
  25. package/dist/cjs/scripts/moveToDelayed-8.js +43 -22
  26. package/dist/cjs/scripts/moveToDelayed-8.js.map +1 -1
  27. package/dist/cjs/scripts/moveToFinished-12.js +10 -7
  28. package/dist/cjs/scripts/moveToFinished-12.js.map +1 -1
  29. package/dist/cjs/scripts/promote-6.js +2 -1
  30. package/dist/cjs/scripts/promote-6.js.map +1 -1
  31. package/dist/cjs/scripts/retryJob-8.js +1 -2
  32. package/dist/cjs/scripts/retryJob-8.js.map +1 -1
  33. package/dist/esm/classes/job.js +4 -0
  34. package/dist/esm/classes/job.js.map +1 -1
  35. package/dist/esm/classes/queue-getters.js +1 -1
  36. package/dist/esm/classes/queue-getters.js.map +1 -1
  37. package/dist/esm/classes/queue.d.ts +1 -7
  38. package/dist/esm/classes/queue.js +3 -0
  39. package/dist/esm/classes/queue.js.map +1 -1
  40. package/dist/esm/classes/repeat.js +5 -0
  41. package/dist/esm/classes/repeat.js.map +1 -1
  42. package/dist/esm/classes/worker.js +14 -6
  43. package/dist/esm/classes/worker.js.map +1 -1
  44. package/dist/esm/commands/addJob-8.lua +6 -5
  45. package/dist/esm/commands/includes/checkStalledJobs.lua +22 -21
  46. package/dist/esm/commands/includes/promoteDelayedJobs.lua +1 -2
  47. package/dist/esm/commands/moveToActive-9.lua +13 -7
  48. package/dist/esm/commands/moveToDelayed-8.lua +31 -23
  49. package/dist/esm/commands/moveToFinished-12.lua +9 -5
  50. package/dist/esm/commands/promote-6.lua +2 -1
  51. package/dist/esm/scripts/addJob-8.js +6 -5
  52. package/dist/esm/scripts/addJob-8.js.map +1 -1
  53. package/dist/esm/scripts/moveStalledJobsToWait-8.js +22 -21
  54. package/dist/esm/scripts/moveStalledJobsToWait-8.js.map +1 -1
  55. package/dist/esm/scripts/moveToActive-9.js +13 -9
  56. package/dist/esm/scripts/moveToActive-9.js.map +1 -1
  57. package/dist/esm/scripts/moveToDelayed-8.js +43 -22
  58. package/dist/esm/scripts/moveToDelayed-8.js.map +1 -1
  59. package/dist/esm/scripts/moveToFinished-12.js +10 -7
  60. package/dist/esm/scripts/moveToFinished-12.js.map +1 -1
  61. package/dist/esm/scripts/promote-6.js +2 -1
  62. package/dist/esm/scripts/promote-6.js.map +1 -1
  63. package/dist/esm/scripts/retryJob-8.js +1 -2
  64. package/dist/esm/scripts/retryJob-8.js.map +1 -1
  65. package/package.json +1 -1
@@ -69,6 +69,9 @@ export class Queue extends QueueGetters {
69
69
  }
70
70
  else {
71
71
  const jobId = opts === null || opts === void 0 ? void 0 : opts.jobId;
72
+ if (jobId == '0' || (jobId === null || jobId === void 0 ? void 0 : jobId.startsWith('0:'))) {
73
+ throw new Error("JobId cannot be '0' or start with 0:");
74
+ }
72
75
  const job = await this.Job.create(this, name, data, Object.assign(Object.assign(Object.assign({}, this.jobsOpts), opts), { jobId }));
73
76
  this.emit('waiting', job);
74
77
  return job;
@@ -1 +1 @@
1
- {"version":3,"file":"queue.js","sourceRoot":"","sources":["../../../src/classes/queue.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"queue.js","sourceRoot":"","sources":["../../../src/classes/queue.ts"],"names":[],"mappings":"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"}
@@ -9,7 +9,12 @@ export class Repeat extends QueueBase {
9
9
  (opts.settings && opts.settings.repeatStrategy) || getNextMillis;
10
10
  }
11
11
  async addNextRepeatableJob(name, data, opts, skipCheckExists) {
12
+ var _a;
13
+ // HACK: This is a temporary fix to enable easy migration from bullmq <3.0.0
14
+ // to >= 3.0.0. It should be removed when moving to 4.x.
12
15
  const repeatOpts = Object.assign({}, opts.repeat);
16
+ (_a = repeatOpts.pattern) !== null && _a !== void 0 ? _a : (repeatOpts.pattern = repeatOpts.cron);
17
+ delete repeatOpts.cron;
13
18
  const prevMillis = opts.prevMillis || 0;
14
19
  const currentCount = repeatOpts.count ? repeatOpts.count + 1 : 1;
15
20
  if (typeof repeatOpts.limit !== 'undefined' &&
@@ -1 +1 @@
1
- {"version":3,"file":"repeat.js","sourceRoot":"","sources":["../../../src/classes/repeat.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"repeat.js","sourceRoot":"","sources":["../../../src/classes/repeat.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAIpC,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAGzC,MAAM,OAAO,MAAO,SAAQ,SAAS;IAGnC,YACE,IAAY,EACZ,IAAwB,EACxB,UAAmC;QAEnC,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC;QAE9B,IAAI,CAAC,cAAc;YACjB,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,aAAa,CAAC;IACrE,CAAC;IAED,KAAK,CAAC,oBAAoB,CACxB,IAAO,EACP,IAAO,EACP,IAAiB,EACjB,eAAyB;;QAEzB,4EAA4E;QAC5E,wDAAwD;QACxD,MAAM,UAAU,qBAA2C,IAAI,CAAC,MAAM,CAAE,CAAC;QACzE,MAAA,UAAU,CAAC,OAAO,oCAAlB,UAAU,CAAC,OAAO,GAAK,UAAU,CAAC,IAAI,EAAC;QACvC,OAAO,UAAU,CAAC,IAAI,CAAC;QAEvB,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,IAAI,CAAC,CAAC;QACxC,MAAM,YAAY,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAEjE,IACE,OAAO,UAAU,CAAC,KAAK,KAAK,WAAW;YACvC,YAAY,GAAG,UAAU,CAAC,KAAK,EAC/B;YACA,OAAO;SACR;QAED,IAAI,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAErB,IACE,CAAC,CAAC,OAAO,UAAU,CAAC,OAAO,KAAK,SAAS,CAAC;YAC1C,GAAG,GAAG,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAC5C;YACA,OAAO;SACR;QAED,GAAG,GAAG,UAAU,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC;QAE1C,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,GAAG,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC;QACpE,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC;QAEnC,MAAM,cAAc,GAClB,CAAC,UAAU,CAAC,KAAK,IAAI,OAAO,CAAC,IAAI,UAAU,CAAC,WAAW,CAAC;QAC1D,MAAM,MAAM,GAAG,cAAc,CAAC,CAAC,CAAC,GAAG,GAAG,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC;QAC7D,IAAI,UAAU,EAAE;YACd,8DAA8D;YAC9D,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,KAAK,EAAE;gBAC7B,UAAU,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;aAC/B;YAED,MAAM,YAAY,GAAG,YAAY,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;YAEpD,IAAI,gBAAgB,GAAG,IAAI,CAAC;YAE5B,IAAI,CAAC,eAAe,EAAE;gBACpB,oDAAoD;gBACpD,0CAA0C;gBAC1C,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC;gBACjC,gBAAgB,GAAG,CAAC,CAAC,CAAC,MAAM,MAAM,CAAC,MAAM,CACvC,IAAI,CAAC,IAAI,CAAC,MAAM,EAChB,YAAY,CACb,CAAC,CAAC;aACJ;YACD,MAAM,EAAE,WAAW,KAA4B,UAAU,EAAjC,kBAAkB,UAAK,UAAU,EAAnD,eAAsC,CAAa,CAAC;YAE1D,mDAAmD;YACnD,IAAI,gBAAgB,EAAE;gBACpB,OAAO,IAAI,CAAC,aAAa,CACvB,IAAI,EACJ,UAAU,EACV,YAAY,kCACP,IAAI,KAAE,MAAM,kBAAI,MAAM,IAAK,kBAAkB,MAClD,IAAI,EACJ,YAAY,EACZ,cAAc,CACf,CAAC;aACH;SACF;IACH,CAAC;IAEO,KAAK,CAAC,aAAa,CACzB,IAAO,EACP,UAAkB,EAClB,YAAoB,EACpB,IAAiB,EACjB,IAAO,EACP,YAAoB,EACpB,cAAuB;QAEvB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC;QAEjC,EAAE;QACF,6CAA6C;QAC7C,EAAE;QACF,MAAM,KAAK,GAAG,cAAc,CAC1B,IAAI,EACJ,UAAU,EACV,GAAG,CAAC,YAAY,CAAC,EACjB,IAAI,CAAC,MAAM,CAAC,KAAK,CAClB,CAAC;QACF,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,MAAM,KAAK,GACT,UAAU,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;QAEnE,MAAM,UAAU,mCACX,IAAI,KACP,KAAK,EACL,KAAK,EAAE,KAAK,GAAG,CAAC,IAAI,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,EAC9C,SAAS,EAAE,GAAG,EACd,UAAU,EAAE,UAAU,EACtB,YAAY,GACb,CAAC;QAEF,UAAU,CAAC,MAAM,mCAAQ,IAAI,CAAC,MAAM,KAAE,KAAK,EAAE,YAAY,GAAE,CAAC;QAE5D,MAAM,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC,QAAQ,EAAE,EAAE,YAAY,CAAC,CAAC;QAEzE,OAAO,IAAI,CAAC,GAAG,CAAC,MAAM,CAAU,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC;IAChE,CAAC;IAED,KAAK,CAAC,gBAAgB,CACpB,IAAY,EACZ,MAAqB,EACrB,KAAc;QAEd,MAAM,YAAY,GAAG,YAAY,CAAC,IAAI,kCAAO,MAAM,KAAE,KAAK,IAAG,CAAC;QAC9D,MAAM,WAAW,GAAG,cAAc,CAChC,IAAI,EACJ,EAAE,EACF,GAAG,CAAC,YAAY,CAAC,EACjB,KAAK,IAAI,MAAM,CAAC,KAAK,CACtB,CAAC;QAEF,OAAO,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC;IAClE,CAAC;IAED,KAAK,CAAC,qBAAqB,CAAC,YAAoB;QAC9C,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;QAE1C,MAAM,WAAW,GAAG,cAAc,CAChC,IAAI,CAAC,IAAI,EACT,EAAE,EACF,GAAG,CAAC,YAAY,CAAC,EACjB,IAAI,CAAC,EAAE,CACR,CAAC;QAEF,OAAO,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC;IAClE,CAAC;IAEO,SAAS,CAAC,GAAW,EAAE,IAAa;QAC1C,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC5B,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC;QAEhD,OAAO;YACL,GAAG;YACH,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;YACb,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI;YACnB,OAAO,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI;YAClC,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI;YACnB,OAAO;YACP,IAAI;SACL,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,iBAAiB,CAAC,KAAK,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC,EAAE,GAAG,GAAG,KAAK;QACtD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC;QAEjC,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;QAC7B,MAAM,MAAM,GAAG,GAAG;YAChB,CAAC,CAAC,MAAM,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,YAAY,CAAC;YACpD,CAAC,CAAC,MAAM,MAAM,CAAC,SAAS,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,YAAY,CAAC,CAAC;QAE1D,MAAM,IAAI,GAAG,EAAE,CAAC;QAChB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;YACzC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;SAC/D;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,CAAC,kBAAkB;QACtB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC;QACjC,OAAO,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC5C,CAAC;CACF;AAED,SAAS,cAAc,CACrB,IAAY,EACZ,UAA2B,EAC3B,SAAiB,EACjB,KAAc;IAEd,MAAM,QAAQ,GAAG,GAAG,CAAC,GAAG,IAAI,GAAG,KAAK,IAAI,EAAE,GAAG,SAAS,EAAE,CAAC,CAAC;IAC1D,OAAO,UAAU,QAAQ,IAAI,UAAU,EAAE,CAAC;IAC1C,qEAAqE;IACrE,qDAAqD;AACvD,CAAC;AAED,SAAS,YAAY,CAAC,IAAY,EAAE,MAAqB;IACvD,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IACzE,MAAM,EAAE,GAAG,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC;IAC3B,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;IAC/B,MAAM,MAAM,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC;IAChE,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;IAE/C,OAAO,GAAG,IAAI,IAAI,KAAK,IAAI,OAAO,IAAI,EAAE,IAAI,MAAM,EAAE,CAAC;AACvD,CAAC;AAED,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,MAAc,EAAE,IAAmB,EAAU,EAAE;IAC3E,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;IAC7B,IAAI,OAAO,IAAI,IAAI,CAAC,KAAK,EAAE;QACzB,MAAM,IAAI,KAAK,CACb,sEAAsE,CACvE,CAAC;KACH;IAED,IAAI,IAAI,CAAC,KAAK,EAAE;QACd,OAAO,CACL,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,KAAK;YAC5C,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CACpC,CAAC;KACH;IAED,MAAM,WAAW,GACf,IAAI,CAAC,SAAS,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC;QAC3D,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC;QAC1B,CAAC,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC;IACvB,MAAM,QAAQ,GAAG,eAAe,CAAC,OAAO,kCACnC,IAAI,KACP,WAAW,IACX,CAAC;IAEH,IAAI;QACF,OAAO,QAAQ,CAAC,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC;KAClC;IAAC,OAAO,CAAC,EAAE;QACV,eAAe;KAChB;AACH,CAAC,CAAC;AAEF,SAAS,GAAG,CAAC,GAAW;IACtB,OAAO,UAAU,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AACrD,CAAC"}
@@ -133,7 +133,8 @@ export class Worker extends QueueBase {
133
133
  const processing = (this.processing = new Set());
134
134
  const token = v4();
135
135
  while (!this.closing) {
136
- if (processing.size < this.opts.concurrency &&
136
+ if (!this.waiting &&
137
+ processing.size < this.opts.concurrency &&
137
138
  (!this.limitUntil || processing.size == 0)) {
138
139
  processing.add(this.retryIfFailed(() => this.getNextJob(token), this.opts.runRetryDelay));
139
140
  }
@@ -212,17 +213,24 @@ export class Worker extends QueueBase {
212
213
  await this.client.then(client => client.set(this.keys.limiter, Number.MAX_SAFE_INTEGER, 'PX', expireTimeMs));
213
214
  }
214
215
  async moveToActive(token, jobId) {
216
+ // If we get the special delayed job ID, we pick the delay as the next
217
+ // block timeout.
218
+ if (jobId && jobId.startsWith('0:')) {
219
+ this.blockTimeout = parseInt(jobId.split(':')[1]);
220
+ return;
221
+ }
215
222
  const [jobData, id, limitUntil, delayUntil] = await this.scripts.moveToActive(token, jobId);
216
223
  return this.nextJobFromJobData(jobData, id, limitUntil, delayUntil);
217
224
  }
218
225
  async waitForJob() {
219
- const client = await this.blockingConnection.client;
226
+ // I am not sure returning here this quick is a good idea, the main
227
+ // loop could stay looping at a very high speed and consume all CPU time.
220
228
  if (this.paused) {
221
229
  return;
222
230
  }
223
- let jobId;
224
- const opts = this.opts;
225
231
  try {
232
+ const client = await this.blockingConnection.client;
233
+ const opts = this.opts;
226
234
  this.waiting = true;
227
235
  let blockTimeout = Math.max(this.blockTimeout ? this.blockTimeout / 1000 : opts.drainDelay, 0.01);
228
236
  // Only Redis v6.0.0 and above supports doubles as block time
@@ -230,7 +238,8 @@ export class Worker extends QueueBase {
230
238
  this.blockingConnection.redisVersion < '6.0.0'
231
239
  ? Math.ceil(blockTimeout)
232
240
  : blockTimeout;
233
- jobId = await client.brpoplpush(this.keys.wait, this.keys.active, blockTimeout);
241
+ const jobId = await client.brpoplpush(this.keys.wait, this.keys.active, blockTimeout);
242
+ return jobId;
234
243
  }
235
244
  catch (error) {
236
245
  if (isNotConnectionError(error)) {
@@ -243,7 +252,6 @@ export class Worker extends QueueBase {
243
252
  finally {
244
253
  this.waiting = false;
245
254
  }
246
- return jobId;
247
255
  }
248
256
  /**
249
257
  *
@@ -1 +1 @@
1
- {"version":3,"file":"worker.js","sourceRoot":"","sources":["../../../src/classes/worker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"worker.js","sourceRoot":"","sources":["../../../src/classes/worker.ts"],"names":[],"mappings":"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"}
@@ -135,17 +135,18 @@ if waitChildrenKey ~= nil then
135
135
  rcall("ZADD", waitChildrenKey, timestamp, jobId)
136
136
  rcall("XADD", KEYS[8], "*", "event", "waiting-children", "jobId", jobId)
137
137
  elseif (delayedTimestamp ~= 0) then
138
- local timestamp = delayedTimestamp * 0x1000 + bit.band(jobCounter, 0xfff)
139
- rcall("ZADD", KEYS[5], timestamp, jobId)
138
+ local score = delayedTimestamp * 0x1000 + bit.band(jobCounter, 0xfff)
139
+ rcall("ZADD", KEYS[5], score, jobId)
140
140
  rcall("XADD", KEYS[8], "*", "event", "delayed", "jobId", jobId, "delay",
141
141
  delayedTimestamp)
142
142
  -- If wait list is empty, and this delayed job is the next one to be processed,
143
- -- then we need to signal the workers by adding a dummy job (jobId 0) to the wait list.
143
+ -- then we need to signal the workers by adding a dummy job (jobId 0:delay) to the wait list.
144
144
  local target = getTargetQueueList(KEYS[3], KEYS[1], KEYS[2])
145
145
  if rcall("LLEN", target) == 0 then
146
146
  local nextTimestamp = getNextDelayedTimestamp(KEYS[5])
147
- if delayedTimestamp < nextTimestamp then
148
- rcall("LPUSH", target, 0)
147
+ if not nextTimestamp or (delayedTimestamp < nextTimestamp) then
148
+ local delay = delayedTimestamp - tonumber(timestamp)
149
+ rcall("LPUSH", target, "0:" .. delay)
149
150
  end
150
151
  end
151
152
  else
@@ -30,11 +30,11 @@
30
30
 
31
31
  -- Check if we need to check for stalled jobs now.
32
32
 
33
- local function checkStalledJobs(stalledKey, waitKey, activeKey, failedKey, stalledCheckKey,
34
- metaKey, pausedKey, eventStreamKey, maxStalledJobCount, queueKeyPrefix, timestamp, maxCheckTime)
35
- if rcall("EXISTS", stalledCheckKey) == 1 then
36
- return {{}, {}}
37
- end
33
+ local function checkStalledJobs(stalledKey, waitKey, activeKey, failedKey,
34
+ stalledCheckKey, metaKey, pausedKey,
35
+ eventStreamKey, maxStalledJobCount,
36
+ queueKeyPrefix, timestamp, maxCheckTime)
37
+ if rcall("EXISTS", stalledCheckKey) == 1 then return {{}, {}} end
38
38
 
39
39
  rcall("SET", stalledCheckKey, timestamp, "PX", maxCheckTime)
40
40
 
@@ -53,7 +53,7 @@ local function checkStalledJobs(stalledKey, waitKey, activeKey, failedKey, stall
53
53
  -- Remove from active list
54
54
  for i, jobId in ipairs(stalling) do
55
55
 
56
- if jobId == '0' then
56
+ if string.sub(jobId, 1, 2) == "0:" then
57
57
  -- If the jobId is a delay marker ID we just remove it.
58
58
  local removed = rcall("LREM", activeKey, 1, jobId)
59
59
  else
@@ -76,14 +76,14 @@ local function checkStalledJobs(stalledKey, waitKey, activeKey, failedKey, stall
76
76
  local failedReason =
77
77
  "job stalled more than allowable limit"
78
78
  rcall("HMSET", jobKey, "failedReason", failedReason,
79
- "finishedOn", timestamp)
80
- rcall("XADD", eventStreamKey, "*", "event", "failed", "jobId",
81
- jobId, 'prev', 'active', 'failedReason',
82
- failedReason)
79
+ "finishedOn", timestamp)
80
+ rcall("XADD", eventStreamKey, "*", "event",
81
+ "failed", "jobId", jobId, 'prev', 'active',
82
+ 'failedReason', failedReason)
83
83
 
84
84
  if removeOnFailType == "number" then
85
- removeJobsByMaxCount(opts["removeOnFail"], failedKey,
86
- queueKeyPrefix)
85
+ removeJobsByMaxCount(opts["removeOnFail"],
86
+ failedKey, queueKeyPrefix)
87
87
  elseif removeOnFailType == "boolean" then
88
88
  if opts["removeOnFail"] then
89
89
  removeJob(jobId, false, queueKeyPrefix)
@@ -94,28 +94,29 @@ local function checkStalledJobs(stalledKey, waitKey, activeKey, failedKey, stall
94
94
  local maxCount = opts["removeOnFail"]["count"]
95
95
 
96
96
  if maxAge ~= nil then
97
- removeJobsByMaxAge(timestamp, maxAge, failedKey,
98
- queueKeyPrefix)
97
+ removeJobsByMaxAge(timestamp, maxAge,
98
+ failedKey, queueKeyPrefix)
99
99
  end
100
100
 
101
101
  if maxCount ~= nil and maxCount > 0 then
102
- removeJobsByMaxCount(maxCount, failedKey, queueKeyPrefix)
102
+ removeJobsByMaxCount(maxCount, failedKey,
103
+ queueKeyPrefix)
103
104
  end
104
105
  end
105
106
 
106
107
  table.insert(failed, jobId)
107
108
  else
108
- local target = getTargetQueueList(metaKey, waitKey,
109
- pausedKey)
109
+ local target =
110
+ getTargetQueueList(metaKey, waitKey, pausedKey)
110
111
 
111
112
  -- Move the job back to the wait queue, to immediately be picked up by a waiting worker.
112
113
  rcall("RPUSH", target, jobId)
113
- rcall("XADD", eventStreamKey, "*", "event", "waiting", "jobId",
114
- jobId, 'prev', 'active')
114
+ rcall("XADD", eventStreamKey, "*", "event",
115
+ "waiting", "jobId", jobId, 'prev', 'active')
115
116
 
116
117
  -- Emit the stalled event
117
- rcall("XADD", eventStreamKey, "*", "event", "stalled", "jobId",
118
- jobId)
118
+ rcall("XADD", eventStreamKey, "*", "event",
119
+ "stalled", "jobId", jobId)
119
120
  table.insert(stalled, jobId)
120
121
  end
121
122
  end
@@ -11,8 +11,7 @@ local rcall = redis.call
11
11
  --- @include "addJobWithPriority"
12
12
  --- @include "getTargetQueueList"
13
13
 
14
- -- Try to get as much as 1000 jobs at once, and returns the nextTimestamp if
15
- -- there are more delayed jobs to process.
14
+ -- Try to get as much as 1000 jobs at once
16
15
  local function promoteDelayedJobs(delayedKey, waitKey, priorityKey, pausedKey,
17
16
  metaKey, eventStreamKey, prefix, timestamp)
18
17
  local jobs = rcall("ZRANGEBYSCORE", delayedKey, 0, (timestamp + 1) * 0x1000, "LIMIT", 0, 1000)
@@ -60,13 +60,19 @@ else
60
60
  jobId = rcall("RPOPLPUSH", KEYS[1], KEYS[2])
61
61
  end
62
62
 
63
- -- If jobId is special ID 0, then there is no job to process
64
- if jobId == "0" then
65
- rcall("LREM", KEYS[2], 1, 0)
66
- elseif jobId then
67
- opts = opts or cmsgpack.unpack(ARGV[4])
68
- -- this script is not really moving, it is preparing the job for processing
69
- return moveJobFromWaitToActive(KEYS, ARGV[1], jobId, ARGV[2], opts)
63
+ -- If jobId is special ID 0:delay, then there is no job to process
64
+ if jobId then
65
+ if string.sub(jobId, 1, 2) == "0:" then
66
+ rcall("LREM", KEYS[2], 1, jobId)
67
+ -- Move again since we just got the marker job.
68
+ jobId = rcall("RPOPLPUSH", KEYS[1], KEYS[2])
69
+ end
70
+
71
+ if jobId then
72
+ opts = opts or cmsgpack.unpack(ARGV[4])
73
+ -- this script is not really moving, it is preparing the job for processing
74
+ return moveJobFromWaitToActive(KEYS, ARGV[1], jobId, ARGV[2], opts)
75
+ end
70
76
  end
71
77
 
72
78
  -- Return the timestamp for the next delayed job if any.
@@ -29,35 +29,43 @@ local rcall = redis.call
29
29
 
30
30
  -- Includes
31
31
  --- @include "includes/promoteDelayedJobs"
32
+ --- @include "includes/getTargetQueueList"
33
+ --- @include "includes/getNextDelayedTimestamp"
32
34
 
33
- promoteDelayedJobs(KEYS[4], KEYS[1], KEYS[3], KEYS[7], KEYS[8], KEYS[6], ARGV[1], ARGV[2])
35
+ local jobKey = KEYS[5]
36
+ if rcall("EXISTS", jobKey) == 1 then
34
37
 
35
- if rcall("EXISTS", KEYS[5]) == 1 then
36
-
37
- if ARGV[5] ~= "0" then
38
- local lockKey = KEYS[5] .. ':lock'
39
- if rcall("GET", lockKey) == ARGV[5] then
40
- rcall("DEL", lockKey)
41
- else
42
- return -2
38
+ local delayedKey = KEYS[4]
39
+ if ARGV[5] ~= "0" then
40
+ local lockKey = jobKey .. ':lock'
41
+ if rcall("GET", lockKey) == ARGV[5] then
42
+ rcall("DEL", lockKey)
43
+ else
44
+ return -2
45
+ end
43
46
  end
44
- end
45
-
46
- local jobId = ARGV[4]
47
- local score = tonumber(ARGV[3])
48
- local delayedTimestamp = (score / 0x1000)
49
-
50
- local numRemovedElements = rcall("LREM", KEYS[2], -1, jobId)
51
47
 
52
- if(numRemovedElements < 1) then
53
- return -3
54
- end
48
+ local jobId = ARGV[4]
49
+ local score = tonumber(ARGV[3])
50
+ local delayedTimestamp = (score / 0x1000)
55
51
 
56
- rcall("ZADD", KEYS[4], score, jobId)
52
+ local numRemovedElements = rcall("LREM", KEYS[2], -1, jobId)
53
+ if (numRemovedElements < 1) then
54
+ return -3
55
+ end
57
56
 
58
- rcall("XADD", KEYS[6], "*", "event", "delayed", "jobId", jobId, "delay", delayedTimestamp);
57
+ -- Check if we need to push a marker job to wake up sleeping workers.
58
+ local target = getTargetQueueList(KEYS[8], KEYS[1], KEYS[7])
59
+ if rcall("LLEN", target) == 0 then
60
+ local nextTimestamp = getNextDelayedTimestamp(delayedKey)
61
+ if not nextTimestamp or (delayedTimestamp < nextTimestamp) then
62
+ rcall("LPUSH", target, "0:" .. delayedTimestamp - tonumber(ARGV[2]))
63
+ end
64
+ end
59
65
 
60
- return 0
66
+ rcall("ZADD", delayedKey, score, jobId)
67
+ rcall("XADD", KEYS[6], "*", "event", "delayed", "jobId", jobId, "delay", delayedTimestamp)
68
+ return 0
61
69
  else
62
- return -1
70
+ return -1
63
71
  end
@@ -188,11 +188,15 @@ if rcall("EXISTS", jobIdKey) == 1 then -- // Make sure job exists
188
188
 
189
189
  jobId = rcall("RPOPLPUSH", KEYS[1], KEYS[2])
190
190
 
191
- if jobId == "0" then
192
- rcall("LREM", KEYS[2], 1, 0)
193
- elseif jobId then
194
- return
195
- moveJobFromWaitToActive(KEYS, ARGV[8], jobId, timestamp, opts)
191
+ -- If jobId is special ID 0:delay, then there is no job to process
192
+ if jobId then
193
+ if string.sub(jobId, 1, 2) == "0:" then
194
+ rcall("LREM", KEYS[2], 1, jobId)
195
+ else
196
+ opts = opts or cmsgpack.unpack(ARGV[4])
197
+ -- this script is not really moving, it is preparing the job for processing
198
+ return moveJobFromWaitToActive(KEYS, ARGV[8], jobId, timestamp, opts)
199
+ end
196
200
  end
197
201
 
198
202
  -- Return the timestamp for the next delayed job if any.
@@ -28,7 +28,8 @@ if rcall("ZREM", KEYS[1], jobId) == 1 then
28
28
 
29
29
  -- Remove delayed "marker" from the wait list if there is any.
30
30
  -- Since we are adding a job we do not need the marker anymore.
31
- if rcall("LINDEX", target, 0) == "0" then
31
+ local marker = rcall("LINDEX", target, 0)
32
+ if marker and string.sub(marker, 1, 2) == "0:" then
32
33
  rcall("LPOP", target)
33
34
  end
34
35
 
@@ -180,17 +180,18 @@ if waitChildrenKey ~= nil then
180
180
  rcall("ZADD", waitChildrenKey, timestamp, jobId)
181
181
  rcall("XADD", KEYS[8], "*", "event", "waiting-children", "jobId", jobId)
182
182
  elseif (delayedTimestamp ~= 0) then
183
- local timestamp = delayedTimestamp * 0x1000 + bit.band(jobCounter, 0xfff)
184
- rcall("ZADD", KEYS[5], timestamp, jobId)
183
+ local score = delayedTimestamp * 0x1000 + bit.band(jobCounter, 0xfff)
184
+ rcall("ZADD", KEYS[5], score, jobId)
185
185
  rcall("XADD", KEYS[8], "*", "event", "delayed", "jobId", jobId, "delay",
186
186
  delayedTimestamp)
187
187
  -- If wait list is empty, and this delayed job is the next one to be processed,
188
- -- then we need to signal the workers by adding a dummy job (jobId 0) to the wait list.
188
+ -- then we need to signal the workers by adding a dummy job (jobId 0:delay) to the wait list.
189
189
  local target = getTargetQueueList(KEYS[3], KEYS[1], KEYS[2])
190
190
  if rcall("LLEN", target) == 0 then
191
191
  local nextTimestamp = getNextDelayedTimestamp(KEYS[5])
192
- if delayedTimestamp < nextTimestamp then
193
- rcall("LPUSH", target, 0)
192
+ if not nextTimestamp or (delayedTimestamp < nextTimestamp) then
193
+ local delay = delayedTimestamp - tonumber(timestamp)
194
+ rcall("LPUSH", target, "0:" .. delay)
194
195
  end
195
196
  end
196
197
  else
@@ -1 +1 @@
1
- {"version":3,"file":"addJob-8.js","sourceRoot":"","sources":["../../../src/scripts/addJob-8.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAwNf,CAAC;AACF,MAAM,CAAC,MAAM,MAAM,GAAG;IACpB,IAAI,EAAE,QAAQ;IACd,OAAO;IACP,IAAI,EAAE,CAAC;CACR,CAAC"}
1
+ {"version":3,"file":"addJob-8.js","sourceRoot":"","sources":["../../../src/scripts/addJob-8.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyNf,CAAC;AACF,MAAM,CAAC,MAAM,MAAM,GAAG;IACpB,IAAI,EAAE,QAAQ;IACd,OAAO;IACP,IAAI,EAAE,CAAC;CACR,CAAC"}
@@ -189,11 +189,11 @@ local function trimEvents(metaKey, eventStreamKey)
189
189
  end
190
190
  end
191
191
  -- Check if we need to check for stalled jobs now.
192
- local function checkStalledJobs(stalledKey, waitKey, activeKey, failedKey, stalledCheckKey,
193
- metaKey, pausedKey, eventStreamKey, maxStalledJobCount, queueKeyPrefix, timestamp, maxCheckTime)
194
- if rcall("EXISTS", stalledCheckKey) == 1 then
195
- return {{}, {}}
196
- end
192
+ local function checkStalledJobs(stalledKey, waitKey, activeKey, failedKey,
193
+ stalledCheckKey, metaKey, pausedKey,
194
+ eventStreamKey, maxStalledJobCount,
195
+ queueKeyPrefix, timestamp, maxCheckTime)
196
+ if rcall("EXISTS", stalledCheckKey) == 1 then return {{}, {}} end
197
197
  rcall("SET", stalledCheckKey, timestamp, "PX", maxCheckTime)
198
198
  -- Trim events before emiting them to avoid trimming events emitted in this script
199
199
  trimEvents(metaKey, eventStreamKey)
@@ -206,7 +206,7 @@ local function checkStalledJobs(stalledKey, waitKey, activeKey, failedKey, stall
206
206
  local MAX_STALLED_JOB_COUNT = tonumber(maxStalledJobCount)
207
207
  -- Remove from active list
208
208
  for i, jobId in ipairs(stalling) do
209
- if jobId == '0' then
209
+ if string.sub(jobId, 1, 2) == "0:" then
210
210
  -- If the jobId is a delay marker ID we just remove it.
211
211
  local removed = rcall("LREM", activeKey, 1, jobId)
212
212
  else
@@ -227,13 +227,13 @@ local function checkStalledJobs(stalledKey, waitKey, activeKey, failedKey, stall
227
227
  local failedReason =
228
228
  "job stalled more than allowable limit"
229
229
  rcall("HMSET", jobKey, "failedReason", failedReason,
230
- "finishedOn", timestamp)
231
- rcall("XADD", eventStreamKey, "*", "event", "failed", "jobId",
232
- jobId, 'prev', 'active', 'failedReason',
233
- failedReason)
230
+ "finishedOn", timestamp)
231
+ rcall("XADD", eventStreamKey, "*", "event",
232
+ "failed", "jobId", jobId, 'prev', 'active',
233
+ 'failedReason', failedReason)
234
234
  if removeOnFailType == "number" then
235
- removeJobsByMaxCount(opts["removeOnFail"], failedKey,
236
- queueKeyPrefix)
235
+ removeJobsByMaxCount(opts["removeOnFail"],
236
+ failedKey, queueKeyPrefix)
237
237
  elseif removeOnFailType == "boolean" then
238
238
  if opts["removeOnFail"] then
239
239
  removeJob(jobId, false, queueKeyPrefix)
@@ -243,24 +243,25 @@ local function checkStalledJobs(stalledKey, waitKey, activeKey, failedKey, stall
243
243
  local maxAge = opts["removeOnFail"]["age"]
244
244
  local maxCount = opts["removeOnFail"]["count"]
245
245
  if maxAge ~= nil then
246
- removeJobsByMaxAge(timestamp, maxAge, failedKey,
247
- queueKeyPrefix)
246
+ removeJobsByMaxAge(timestamp, maxAge,
247
+ failedKey, queueKeyPrefix)
248
248
  end
249
249
  if maxCount ~= nil and maxCount > 0 then
250
- removeJobsByMaxCount(maxCount, failedKey, queueKeyPrefix)
250
+ removeJobsByMaxCount(maxCount, failedKey,
251
+ queueKeyPrefix)
251
252
  end
252
253
  end
253
254
  table.insert(failed, jobId)
254
255
  else
255
- local target = getTargetQueueList(metaKey, waitKey,
256
- pausedKey)
256
+ local target =
257
+ getTargetQueueList(metaKey, waitKey, pausedKey)
257
258
  -- Move the job back to the wait queue, to immediately be picked up by a waiting worker.
258
259
  rcall("RPUSH", target, jobId)
259
- rcall("XADD", eventStreamKey, "*", "event", "waiting", "jobId",
260
- jobId, 'prev', 'active')
260
+ rcall("XADD", eventStreamKey, "*", "event",
261
+ "waiting", "jobId", jobId, 'prev', 'active')
261
262
  -- Emit the stalled event
262
- rcall("XADD", eventStreamKey, "*", "event", "stalled", "jobId",
263
- jobId)
263
+ rcall("XADD", eventStreamKey, "*", "event",
264
+ "stalled", "jobId", jobId)
264
265
  table.insert(stalled, jobId)
265
266
  end
266
267
  end
@@ -1 +1 @@
1
- {"version":3,"file":"moveStalledJobsToWait-8.js","sourceRoot":"","sources":["../../../src/scripts/moveStalledJobsToWait-8.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyRf,CAAC;AACF,MAAM,CAAC,MAAM,qBAAqB,GAAG;IACnC,IAAI,EAAE,uBAAuB;IAC7B,OAAO;IACP,IAAI,EAAE,CAAC;CACR,CAAC"}
1
+ {"version":3,"file":"moveStalledJobsToWait-8.js","sourceRoot":"","sources":["../../../src/scripts/moveStalledJobsToWait-8.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA0Rf,CAAC;AACF,MAAM,CAAC,MAAM,qBAAqB,GAAG;IACnC,IAAI,EAAE,uBAAuB;IAC7B,OAAO;IACP,IAAI,EAAE,CAAC;CACR,CAAC"}