bullmq 5.21.2 → 5.22.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 (85) hide show
  1. package/README.md +21 -21
  2. package/dist/cjs/classes/flow-producer.js +1 -0
  3. package/dist/cjs/classes/flow-producer.js.map +1 -1
  4. package/dist/cjs/classes/job.js +61 -41
  5. package/dist/cjs/classes/job.js.map +1 -1
  6. package/dist/cjs/classes/queue-base.js +54 -0
  7. package/dist/cjs/classes/queue-base.js.map +1 -1
  8. package/dist/cjs/classes/queue-events.js.map +1 -1
  9. package/dist/cjs/classes/queue.js +164 -76
  10. package/dist/cjs/classes/queue.js.map +1 -1
  11. package/dist/cjs/classes/worker.js +232 -128
  12. package/dist/cjs/classes/worker.js.map +1 -1
  13. package/dist/cjs/commands/includes/moveParentFromWaitingChildrenToFailed.lua +2 -2
  14. package/dist/cjs/commands/includes/removeDeduplicationKeyIfNeeded.lua +14 -0
  15. package/dist/cjs/commands/moveStalledJobsToWait-9.lua +3 -3
  16. package/dist/cjs/commands/moveToFinished-14.lua +2 -2
  17. package/dist/cjs/commands/updateJobOption-1.lua +26 -0
  18. package/dist/cjs/enums/index.js +1 -0
  19. package/dist/cjs/enums/index.js.map +1 -1
  20. package/dist/cjs/enums/telemetry-attributes.js +45 -0
  21. package/dist/cjs/enums/telemetry-attributes.js.map +1 -0
  22. package/dist/cjs/interfaces/index.js +1 -0
  23. package/dist/cjs/interfaces/index.js.map +1 -1
  24. package/dist/cjs/interfaces/queue-options.js.map +1 -1
  25. package/dist/cjs/interfaces/telemetry.js +3 -0
  26. package/dist/cjs/interfaces/telemetry.js.map +1 -0
  27. package/dist/cjs/scripts/index.js +1 -0
  28. package/dist/cjs/scripts/index.js.map +1 -1
  29. package/dist/cjs/scripts/moveStalledJobsToWait-9.js +9 -9
  30. package/dist/cjs/scripts/moveToFinished-14.js +8 -8
  31. package/dist/cjs/scripts/updateJobOption-1.js +30 -0
  32. package/dist/cjs/scripts/updateJobOption-1.js.map +1 -0
  33. package/dist/cjs/tsconfig-cjs.tsbuildinfo +1 -1
  34. package/dist/cjs/version.js +1 -1
  35. package/dist/esm/classes/flow-producer.js +1 -0
  36. package/dist/esm/classes/flow-producer.js.map +1 -1
  37. package/dist/esm/classes/job.d.ts +2 -0
  38. package/dist/esm/classes/job.js +61 -41
  39. package/dist/esm/classes/job.js.map +1 -1
  40. package/dist/esm/classes/queue-base.d.ts +19 -1
  41. package/dist/esm/classes/queue-base.js +54 -0
  42. package/dist/esm/classes/queue-base.js.map +1 -1
  43. package/dist/esm/classes/queue-events.js.map +1 -1
  44. package/dist/esm/classes/queue.js +164 -76
  45. package/dist/esm/classes/queue.js.map +1 -1
  46. package/dist/esm/classes/worker.d.ts +2 -1
  47. package/dist/esm/classes/worker.js +232 -128
  48. package/dist/esm/classes/worker.js.map +1 -1
  49. package/dist/esm/commands/includes/moveParentFromWaitingChildrenToFailed.lua +2 -2
  50. package/dist/esm/commands/includes/removeDeduplicationKeyIfNeeded.lua +14 -0
  51. package/dist/esm/commands/moveStalledJobsToWait-9.lua +3 -3
  52. package/dist/esm/commands/moveToFinished-14.lua +2 -2
  53. package/dist/esm/commands/updateJobOption-1.lua +26 -0
  54. package/dist/esm/enums/index.d.ts +1 -0
  55. package/dist/esm/enums/index.js +1 -0
  56. package/dist/esm/enums/index.js.map +1 -1
  57. package/dist/esm/enums/telemetry-attributes.d.ts +39 -0
  58. package/dist/esm/enums/telemetry-attributes.js +42 -0
  59. package/dist/esm/enums/telemetry-attributes.js.map +1 -0
  60. package/dist/esm/interfaces/base-job-options.d.ts +4 -0
  61. package/dist/esm/interfaces/index.d.ts +1 -0
  62. package/dist/esm/interfaces/index.js +1 -0
  63. package/dist/esm/interfaces/index.js.map +1 -1
  64. package/dist/esm/interfaces/queue-options.d.ts +9 -0
  65. package/dist/esm/interfaces/queue-options.js.map +1 -1
  66. package/dist/esm/interfaces/telemetry.d.ts +150 -0
  67. package/dist/esm/interfaces/telemetry.js +2 -0
  68. package/dist/esm/interfaces/telemetry.js.map +1 -0
  69. package/dist/esm/interfaces/worker-options.d.ts +13 -0
  70. package/dist/esm/scripts/index.d.ts +1 -0
  71. package/dist/esm/scripts/index.js +1 -0
  72. package/dist/esm/scripts/index.js.map +1 -1
  73. package/dist/esm/scripts/moveStalledJobsToWait-9.js +9 -9
  74. package/dist/esm/scripts/moveToFinished-14.js +8 -8
  75. package/dist/esm/scripts/updateJobOption-1.d.ts +5 -0
  76. package/dist/esm/scripts/updateJobOption-1.js +27 -0
  77. package/dist/esm/scripts/updateJobOption-1.js.map +1 -0
  78. package/dist/esm/tsconfig.tsbuildinfo +1 -1
  79. package/dist/esm/types/job-options.d.ts +4 -0
  80. package/dist/esm/types/minimal-queue.d.ts +1 -1
  81. package/dist/esm/version.d.ts +1 -1
  82. package/dist/esm/version.js +1 -1
  83. package/package.json +2 -2
  84. package/dist/cjs/commands/includes/removeDebounceKeyIfNeeded.lua +0 -14
  85. package/dist/esm/commands/includes/removeDebounceKeyIfNeeded.lua +0 -14
@@ -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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"}
@@ -108,7 +108,7 @@ export declare class Worker<DataType = any, ResultType = any, NameType extends s
108
108
  private extendLocksTimer;
109
109
  private limitUntil;
110
110
  private resumeWorker;
111
- private stalledCheckTimer;
111
+ private stalledCheckStopper?;
112
112
  private waiting;
113
113
  private _repeat;
114
114
  private _jobScheduler;
@@ -212,6 +212,7 @@ export declare class Worker<DataType = any, ResultType = any, NameType extends s
212
212
  * @see {@link https://docs.bullmq.io/patterns/manually-fetching-jobs}
213
213
  */
214
214
  startStalledCheckTimer(): Promise<void>;
215
+ private stalledChecker;
215
216
  private startLockExtenderTimer;
216
217
  /**
217
218
  * Returns a promise that resolves when active jobs are cleared
@@ -13,6 +13,7 @@ import { RedisConnection } from './redis-connection';
13
13
  import sandbox from './sandbox';
14
14
  import { AsyncFifoQueue } from './async-fifo-queue';
15
15
  import { DelayedError, RateLimitError, RATE_LIMIT_ERROR, WaitingChildrenError, } from './errors';
16
+ import { SpanKind, TelemetryAttributes } from '../enums';
16
17
  import { JobScheduler } from './job-scheduler';
17
18
  // 10 seconds is the maximum time a BRPOPLPUSH can block.
18
19
  const maximumBlockTimeout = 10;
@@ -234,7 +235,7 @@ export class Worker extends QueueBase {
234
235
  }
235
236
  }
236
237
  this.running = false;
237
- return asyncFifoQueue.waitAll();
238
+ return await asyncFifoQueue.waitAll();
238
239
  }
239
240
  catch (error) {
240
241
  this.running = false;
@@ -247,7 +248,17 @@ export class Worker extends QueueBase {
247
248
  * @returns a Job or undefined if no job was available in the queue.
248
249
  */
249
250
  async getNextJob(token, { block = true } = {}) {
250
- return this._getNextJob(await this.client, await this.blockingConnection.client, token, { block });
251
+ const nextJob = await this._getNextJob(await this.client, await this.blockingConnection.client, token, { block });
252
+ return this.trace(SpanKind.INTERNAL, 'getNextJob', this.name, async (span) => {
253
+ span === null || span === void 0 ? void 0 : span.setAttributes({
254
+ [TelemetryAttributes.WorkerId]: this.id,
255
+ [TelemetryAttributes.QueueName]: this.name,
256
+ [TelemetryAttributes.WorkerName]: this.opts.name,
257
+ [TelemetryAttributes.WorkerOptions]: JSON.stringify({ block }),
258
+ [TelemetryAttributes.JobId]: nextJob === null || nextJob === void 0 ? void 0 : nextJob.id,
259
+ });
260
+ return nextJob;
261
+ }, nextJob === null || nextJob === void 0 ? void 0 : nextJob.opts.telemetryMetadata);
251
262
  }
252
263
  async _getNextJob(client, bclient, token, { block = true } = {}) {
253
264
  var _a;
@@ -297,7 +308,13 @@ export class Worker extends QueueBase {
297
308
  * @param expireTimeMs - expire time in ms of this rate limit.
298
309
  */
299
310
  async rateLimit(expireTimeMs) {
300
- await this.client.then(client => client.set(this.keys.limiter, Number.MAX_SAFE_INTEGER, 'PX', expireTimeMs));
311
+ await this.trace(SpanKind.INTERNAL, 'rateLimit', this.name, async (span) => {
312
+ span === null || span === void 0 ? void 0 : span.setAttributes({
313
+ [TelemetryAttributes.WorkerId]: this.id,
314
+ [TelemetryAttributes.WorkerRateLimit]: expireTimeMs,
315
+ });
316
+ await this.client.then(client => client.set(this.keys.limiter, Number.MAX_SAFE_INTEGER, 'PX', expireTimeMs));
317
+ });
301
318
  }
302
319
  get minimumBlockTimeout() {
303
320
  return this.blockingConnection.capabilities.canBlockFor1Ms
@@ -428,74 +445,103 @@ export class Worker extends QueueBase {
428
445
  if (!job || this.closing || this.paused) {
429
446
  return;
430
447
  }
431
- const handleCompleted = async (result) => {
432
- if (!this.connection.closing) {
433
- const completed = await job.moveToCompleted(result, token, fetchNextCallback() && !(this.closing || this.paused));
434
- this.emit('completed', job, result, 'active');
435
- const [jobData, jobId, limitUntil, delayUntil] = completed || [];
436
- this.updateDelays(limitUntil, delayUntil);
437
- return this.nextJobFromJobData(jobData, jobId, token);
438
- }
439
- };
440
- const handleFailed = async (err) => {
441
- if (!this.connection.closing) {
442
- try {
443
- if (err.message == RATE_LIMIT_ERROR) {
444
- this.limitUntil = await this.moveLimitedBackToWait(job, token);
445
- return;
446
- }
447
- if (err instanceof DelayedError ||
448
- err.name == 'DelayedError' ||
449
- err instanceof WaitingChildrenError ||
450
- err.name == 'WaitingChildrenError') {
451
- return;
448
+ const { telemetryMetadata: srcPropagationMedatada } = job.opts;
449
+ return this.trace(SpanKind.CONSUMER, 'process', this.name, async (span) => {
450
+ span === null || span === void 0 ? void 0 : span.setAttributes({
451
+ [TelemetryAttributes.WorkerId]: this.id,
452
+ [TelemetryAttributes.WorkerName]: this.opts.name,
453
+ [TelemetryAttributes.JobId]: job.id,
454
+ });
455
+ const handleCompleted = async (result) => {
456
+ if (!this.connection.closing) {
457
+ const completed = await job.moveToCompleted(result, token, fetchNextCallback() && !(this.closing || this.paused));
458
+ this.emit('completed', job, result, 'active');
459
+ span === null || span === void 0 ? void 0 : span.addEvent('job completed', {
460
+ [TelemetryAttributes.JobResult]: JSON.stringify(result),
461
+ });
462
+ const [jobData, jobId, limitUntil, delayUntil] = completed || [];
463
+ this.updateDelays(limitUntil, delayUntil);
464
+ return this.nextJobFromJobData(jobData, jobId, token);
465
+ }
466
+ };
467
+ const handleFailed = async (err) => {
468
+ if (!this.connection.closing) {
469
+ try {
470
+ // Check if the job was manually rate-limited
471
+ if (err.message == RATE_LIMIT_ERROR) {
472
+ this.limitUntil = await this.moveLimitedBackToWait(job, token);
473
+ return;
474
+ }
475
+ if (err instanceof DelayedError ||
476
+ err.name == 'DelayedError' ||
477
+ err instanceof WaitingChildrenError ||
478
+ err.name == 'WaitingChildrenError') {
479
+ return;
480
+ }
481
+ const result = await job.moveToFailed(err, token, true);
482
+ this.emit('failed', job, err, 'active');
483
+ span === null || span === void 0 ? void 0 : span.addEvent('job failed', {
484
+ [TelemetryAttributes.JobFailedReason]: err.message,
485
+ });
486
+ if (result) {
487
+ const [jobData, jobId, limitUntil, delayUntil] = result;
488
+ this.updateDelays(limitUntil, delayUntil);
489
+ return this.nextJobFromJobData(jobData, jobId, token);
490
+ }
452
491
  }
453
- const result = await job.moveToFailed(err, token, true);
454
- this.emit('failed', job, err, 'active');
455
- if (result) {
456
- const [jobData, jobId, limitUntil, delayUntil] = result;
457
- this.updateDelays(limitUntil, delayUntil);
458
- return this.nextJobFromJobData(jobData, jobId, token);
492
+ catch (err) {
493
+ this.emit('error', err);
494
+ // It probably means that the job has lost the lock before completion
495
+ // A worker will (or already has) moved the job back
496
+ // to the waiting list (as stalled)
497
+ span === null || span === void 0 ? void 0 : span.recordException(err.message);
459
498
  }
460
499
  }
461
- catch (err) {
462
- this.emit('error', err);
463
- // It probably means that the job has lost the lock before completion
464
- // A worker will (or already has) moved the job back
465
- // to the waiting list (as stalled)
466
- }
500
+ };
501
+ this.emit('active', job, 'waiting');
502
+ const processedOn = Date.now();
503
+ const inProgressItem = { job, ts: processedOn };
504
+ try {
505
+ jobsInProgress.add(inProgressItem);
506
+ const result = await this.callProcessJob(job, token);
507
+ return await handleCompleted(result);
467
508
  }
468
- };
469
- this.emit('active', job, 'waiting');
470
- const inProgressItem = { job, ts: Date.now() };
471
- try {
472
- jobsInProgress.add(inProgressItem);
473
- const result = await this.callProcessJob(job, token);
474
- return await handleCompleted(result);
475
- }
476
- catch (err) {
477
- return handleFailed(err);
478
- }
479
- finally {
480
- jobsInProgress.delete(inProgressItem);
481
- }
509
+ catch (err) {
510
+ const failed = await handleFailed(err);
511
+ return failed;
512
+ }
513
+ finally {
514
+ span === null || span === void 0 ? void 0 : span.setAttributes({
515
+ [TelemetryAttributes.JobFinishedTimestamp]: Date.now(),
516
+ [TelemetryAttributes.JobProcessedTimestamp]: processedOn,
517
+ });
518
+ jobsInProgress.delete(inProgressItem);
519
+ }
520
+ }, srcPropagationMedatada);
482
521
  }
483
522
  /**
484
523
  *
485
524
  * Pauses the processing of this queue only for this worker.
486
525
  */
487
526
  async pause(doNotWaitActive) {
488
- if (!this.paused) {
489
- this.paused = new Promise(resolve => {
490
- this.resumeWorker = function () {
491
- resolve();
492
- this.paused = null; // Allow pause to be checked externally for paused state.
493
- this.resumeWorker = null;
494
- };
527
+ await this.trace(SpanKind.INTERNAL, 'pause', this.name, async (span) => {
528
+ span === null || span === void 0 ? void 0 : span.setAttributes({
529
+ [TelemetryAttributes.WorkerId]: this.id,
530
+ [TelemetryAttributes.WorkerName]: this.opts.name,
531
+ [TelemetryAttributes.WorkerDoNotWaitActive]: doNotWaitActive,
495
532
  });
496
- await (!doNotWaitActive && this.whenCurrentJobsFinished());
497
- this.emit('paused');
498
- }
533
+ if (!this.paused) {
534
+ this.paused = new Promise(resolve => {
535
+ this.resumeWorker = function () {
536
+ resolve();
537
+ this.paused = null; // Allow pause to be checked externally for paused state.
538
+ this.resumeWorker = null;
539
+ };
540
+ });
541
+ await (!doNotWaitActive && this.whenCurrentJobsFinished());
542
+ this.emit('paused');
543
+ }
544
+ });
499
545
  }
500
546
  /**
501
547
  *
@@ -503,8 +549,14 @@ export class Worker extends QueueBase {
503
549
  */
504
550
  resume() {
505
551
  if (this.resumeWorker) {
506
- this.resumeWorker();
507
- this.emit('resumed');
552
+ this.trace(SpanKind.INTERNAL, 'resume', this.name, span => {
553
+ span === null || span === void 0 ? void 0 : span.setAttributes({
554
+ [TelemetryAttributes.WorkerId]: this.id,
555
+ [TelemetryAttributes.WorkerName]: this.opts.name,
556
+ });
557
+ this.resumeWorker();
558
+ this.emit('resumed');
559
+ });
508
560
  }
509
561
  }
510
562
  /**
@@ -536,39 +588,47 @@ export class Worker extends QueueBase {
536
588
  *
537
589
  * @returns Promise that resolves when the worker has been closed.
538
590
  */
539
- close(force = false) {
591
+ async close(force = false) {
540
592
  if (this.closing) {
541
593
  return this.closing;
542
594
  }
543
- this.closing = (async () => {
544
- var _a;
545
- this.emit('closing', 'closing queue');
546
- (_a = this.abortDelayController) === null || _a === void 0 ? void 0 : _a.abort();
547
- this.resume();
548
- // Define the async cleanup functions
549
- const asyncCleanups = [
550
- () => {
551
- return force || this.whenCurrentJobsFinished(false);
552
- },
553
- () => { var _a; return (_a = this.childPool) === null || _a === void 0 ? void 0 : _a.clean(); },
554
- () => this.blockingConnection.close(force),
555
- () => this.connection.close(force),
556
- ];
557
- // Run cleanup functions sequentially and make sure all are run despite any errors
558
- for (const cleanup of asyncCleanups) {
559
- try {
560
- await cleanup();
561
- }
562
- catch (err) {
563
- this.emit('error', err);
595
+ await this.trace(SpanKind.INTERNAL, 'close', this.name, async (span) => {
596
+ span === null || span === void 0 ? void 0 : span.setAttributes({
597
+ [TelemetryAttributes.WorkerId]: this.id,
598
+ [TelemetryAttributes.WorkerName]: this.opts.name,
599
+ [TelemetryAttributes.WorkerForceClose]: force,
600
+ });
601
+ this.closing = (async () => {
602
+ var _a, _b;
603
+ this.emit('closing', 'closing queue');
604
+ (_a = this.abortDelayController) === null || _a === void 0 ? void 0 : _a.abort();
605
+ this.resume();
606
+ // Define the async cleanup functions
607
+ const asyncCleanups = [
608
+ () => {
609
+ return force || this.whenCurrentJobsFinished(false);
610
+ },
611
+ () => { var _a; return (_a = this.childPool) === null || _a === void 0 ? void 0 : _a.clean(); },
612
+ () => this.blockingConnection.close(force),
613
+ () => this.connection.close(force),
614
+ ];
615
+ // Run cleanup functions sequentially and make sure all are run despite any errors
616
+ for (const cleanup of asyncCleanups) {
617
+ try {
618
+ await cleanup();
619
+ }
620
+ catch (err) {
621
+ this.emit('error', err);
622
+ }
564
623
  }
565
- }
566
- clearTimeout(this.extendLocksTimer);
567
- clearTimeout(this.stalledCheckTimer);
568
- this.closed = true;
569
- this.emit('closed');
570
- })();
571
- return this.closing;
624
+ clearTimeout(this.extendLocksTimer);
625
+ //clearTimeout(this.stalledCheckTimer);
626
+ (_b = this.stalledCheckStopper) === null || _b === void 0 ? void 0 : _b.call(this);
627
+ this.closed = true;
628
+ this.emit('closed');
629
+ })();
630
+ return await this.closing;
631
+ });
572
632
  }
573
633
  /**
574
634
  *
@@ -584,20 +644,36 @@ export class Worker extends QueueBase {
584
644
  */
585
645
  async startStalledCheckTimer() {
586
646
  if (!this.opts.skipStalledCheck) {
587
- clearTimeout(this.stalledCheckTimer);
588
647
  if (!this.closing) {
589
- try {
590
- await this.checkConnectionError(() => this.moveStalledJobsToWait());
591
- this.stalledCheckTimer = setTimeout(async () => {
592
- await this.startStalledCheckTimer();
593
- }, this.opts.stalledInterval);
594
- }
595
- catch (err) {
596
- this.emit('error', err);
597
- }
648
+ await this.trace(SpanKind.INTERNAL, 'startStalledCheckTimer', this.name, async (span) => {
649
+ span === null || span === void 0 ? void 0 : span.setAttributes({
650
+ [TelemetryAttributes.WorkerId]: this.id,
651
+ [TelemetryAttributes.WorkerName]: this.opts.name,
652
+ });
653
+ this.stalledChecker().catch(err => {
654
+ this.emit('error', err);
655
+ });
656
+ });
598
657
  }
599
658
  }
600
659
  }
660
+ async stalledChecker() {
661
+ while (!this.closing) {
662
+ try {
663
+ await this.checkConnectionError(() => this.moveStalledJobsToWait());
664
+ }
665
+ catch (err) {
666
+ this.emit('error', err);
667
+ }
668
+ await new Promise(resolve => {
669
+ const timeout = setTimeout(resolve, this.opts.stalledInterval);
670
+ this.stalledCheckStopper = () => {
671
+ clearTimeout(timeout);
672
+ resolve();
673
+ };
674
+ });
675
+ }
676
+ }
601
677
  startLockExtenderTimer(jobsInProgress) {
602
678
  if (!this.opts.skipLockRenewal) {
603
679
  clearTimeout(this.extendLocksTimer);
@@ -669,39 +745,67 @@ export class Worker extends QueueBase {
669
745
  } while (retry);
670
746
  }
671
747
  async extendLocks(jobs) {
672
- try {
673
- const pipeline = (await this.client).pipeline();
674
- for (const job of jobs) {
675
- await this.scripts.extendLock(job.id, job.token, this.opts.lockDuration, pipeline);
676
- }
677
- const result = (await pipeline.exec());
678
- for (const [err, jobId] of result) {
679
- if (err) {
680
- // TODO: signal process function that the job has been lost.
681
- this.emit('error', new Error(`could not renew lock for job ${jobId}`));
748
+ await this.trace(SpanKind.INTERNAL, 'extendLocks', this.name, async (span) => {
749
+ span === null || span === void 0 ? void 0 : span.setAttributes({
750
+ [TelemetryAttributes.WorkerId]: this.id,
751
+ [TelemetryAttributes.WorkerName]: this.opts.name,
752
+ [TelemetryAttributes.WorkerJobsToExtendLocks]: jobs.map(job => job.id),
753
+ });
754
+ try {
755
+ const pipeline = (await this.client).pipeline();
756
+ for (const job of jobs) {
757
+ await this.scripts.extendLock(job.id, job.token, this.opts.lockDuration, pipeline);
758
+ }
759
+ const result = (await pipeline.exec());
760
+ for (const [err, jobId] of result) {
761
+ if (err) {
762
+ // TODO: signal process function that the job has been lost.
763
+ this.emit('error', new Error(`could not renew lock for job ${jobId}`));
764
+ }
682
765
  }
683
766
  }
684
- }
685
- catch (err) {
686
- this.emit('error', err);
687
- }
767
+ catch (err) {
768
+ this.emit('error', err);
769
+ }
770
+ });
688
771
  }
689
772
  async moveStalledJobsToWait() {
690
- const chunkSize = 50;
691
- const [failed, stalled] = await this.scripts.moveStalledJobsToWait();
692
- stalled.forEach((jobId) => this.emit('stalled', jobId, 'active'));
693
- const jobPromises = [];
694
- for (let i = 0; i < failed.length; i++) {
695
- jobPromises.push(Job.fromId(this, failed[i]));
696
- if ((i + 1) % chunkSize === 0) {
697
- this.notifyFailedJobs(await Promise.all(jobPromises));
698
- jobPromises.length = 0;
773
+ await this.trace(SpanKind.INTERNAL, 'moveStalledJobsToWait', this.name, async (span) => {
774
+ const chunkSize = 50;
775
+ const [failed, stalled] = await this.scripts.moveStalledJobsToWait();
776
+ span === null || span === void 0 ? void 0 : span.setAttributes({
777
+ [TelemetryAttributes.WorkerId]: this.id,
778
+ [TelemetryAttributes.WorkerName]: this.opts.name,
779
+ [TelemetryAttributes.WorkerStalledJobs]: stalled,
780
+ [TelemetryAttributes.WorkerFailedJobs]: failed,
781
+ });
782
+ stalled.forEach((jobId) => {
783
+ span === null || span === void 0 ? void 0 : span.addEvent('job stalled', {
784
+ [TelemetryAttributes.JobId]: jobId,
785
+ });
786
+ this.emit('stalled', jobId, 'active');
787
+ });
788
+ const jobPromises = [];
789
+ for (let i = 0; i < failed.length; i++) {
790
+ jobPromises.push(Job.fromId(this, failed[i]));
791
+ if ((i + 1) % chunkSize === 0) {
792
+ this.notifyFailedJobs(await Promise.all(jobPromises));
793
+ jobPromises.length = 0;
794
+ }
699
795
  }
700
- }
701
- this.notifyFailedJobs(await Promise.all(jobPromises));
796
+ this.notifyFailedJobs(await Promise.all(jobPromises));
797
+ });
702
798
  }
703
- notifyFailedJobs(failedJobs) {
704
- failedJobs.forEach((job) => this.emit('failed', job, new Error('job stalled more than allowable limit'), 'active'));
799
+ notifyFailedJobs(failedJobs, span) {
800
+ const failedReason = 'job stalled more than allowable limit';
801
+ failedJobs.forEach((job) => {
802
+ span === null || span === void 0 ? void 0 : span.addEvent('job failed', {
803
+ [TelemetryAttributes.JobId]: job.id,
804
+ [TelemetryAttributes.JobName]: job.name,
805
+ [TelemetryAttributes.JobFailedReason]: failedReason,
806
+ });
807
+ this.emit('failed', job, new Error(failedReason), 'active');
808
+ });
705
809
  }
706
810
  moveLimitedBackToWait(job, token) {
707
811
  return this.scripts.moveJobFromActiveToWait(job.id, token);