@alanszp/queue 16.3.2 → 16.4.2

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.
@@ -16,7 +16,7 @@ export interface WorkerContext {
16
16
  audit: Audit;
17
17
  }
18
18
  interface Worker<Data = JobData, ReturnValue = JobReturnValue> {
19
- handleJobFailed?(job: Job<Data, ReturnValue>, error: Error): Promise<void> | void;
19
+ handleJobFailed?(job: Job<Data, ReturnValue>, error: Error, isLastAttempt: boolean): Promise<void> | void;
20
20
  handleJobCompleted?(job: Job<Data, ReturnValue>): Promise<void> | void;
21
21
  handleJobError?(error: Error): Promise<void> | void;
22
22
  }
@@ -32,6 +32,7 @@ declare abstract class Worker<Data = JobData, ReturnValue = unknown> {
32
32
  get status(): WorkerStatus;
33
33
  get id(): RawWorker["id"];
34
34
  private processJob;
35
+ private isLastAttempt;
35
36
  processFailed(job: Job<Data, ReturnValue>, error: Error): Promise<void>;
36
37
  processCompleted(job: Job<Data, ReturnValue>, returnValue: ReturnValue): Promise<void>;
37
38
  processError(error: Error): Promise<void>;
@@ -10,6 +10,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.Worker = void 0;
13
+ const lodash_1 = require("lodash");
13
14
  const connectionManager_1 = require("../connectionManager");
14
15
  const types_1 = require("../types");
15
16
  const withContext_1 = require("../wrappers/withContext");
@@ -22,7 +23,9 @@ class Worker {
22
23
  const prefix = connectionManager.getServiceName();
23
24
  this._queue = { name, prefix, namespace: BULL_PREFIX };
24
25
  this._worker = new types_1.RawWorker(name, this.processJob(), Object.assign({ autorun: false, connection: connectionManager.getConnection(), prefix: `{${prefix}}:${BULL_PREFIX}` }, workerOptions));
25
- this.getLogger().info("worker.ready", { queue: this.queueFullName });
26
+ this.getLogger().info(`worker.ready.${(0, lodash_1.snakeCase)(this.queueFullName)}`, {
27
+ queue: this.queueFullName,
28
+ });
26
29
  this.registerHooks();
27
30
  }
28
31
  close() {
@@ -36,28 +39,38 @@ class Worker {
36
39
  }
37
40
  processJob() {
38
41
  return (0, withContext_1.withContext)(this.queueFullName, this.getContext(), (job) => __awaiter(this, void 0, void 0, function* () {
39
- this.getLogger().info(`worker.process.job_received`, {
42
+ this.getLogger().info(`worker.process.job_received.${(0, lodash_1.snakeCase)(this.queueFullName)}`, {
40
43
  queue: this.queueFullName,
41
44
  job,
42
45
  });
43
46
  return this.process(job);
44
47
  }));
45
48
  }
49
+ isLastAttempt(job) {
50
+ const maxAttempts = job.opts.attempts;
51
+ if (!maxAttempts)
52
+ return true;
53
+ return job.attemptsMade >= maxAttempts;
54
+ }
46
55
  processFailed(job, error) {
47
56
  return __awaiter(this, void 0, void 0, function* () {
48
- this.getLogger().error("worker.job.failed", {
49
- queue: this.queueFullName,
50
- job,
51
- error,
52
- });
57
+ const isLastAttempt = this.isLastAttempt(job);
53
58
  if (this.handleJobFailed) {
54
- yield this.handleJobFailed(job, error);
59
+ yield this.handleJobFailed(job, error, this.isLastAttempt(job));
60
+ }
61
+ else {
62
+ const logLevel = isLastAttempt ? "error" : "warn";
63
+ this.getLogger()[logLevel](`worker.job.failed.${(0, lodash_1.snakeCase)(this.queueFullName)}`, {
64
+ queue: this.queueFullName,
65
+ job,
66
+ error,
67
+ });
55
68
  }
56
69
  });
57
70
  }
58
71
  processCompleted(job, returnValue) {
59
72
  return __awaiter(this, void 0, void 0, function* () {
60
- this.getLogger().info("worker.job.completed", {
73
+ this.getLogger().info(`worker.job.completed.${(0, lodash_1.snakeCase)(this.queueFullName)}`, {
61
74
  queue: this.queueFullName,
62
75
  job,
63
76
  returnValue,
@@ -69,28 +82,31 @@ class Worker {
69
82
  }
70
83
  processError(error) {
71
84
  return __awaiter(this, void 0, void 0, function* () {
72
- this.getLogger().error("worker.job.unhandled_exception", {
73
- queue: this.queueFullName,
74
- error,
75
- });
76
85
  if (this.handleJobError) {
77
86
  yield this.handleJobError(error);
78
87
  }
88
+ else {
89
+ this.getLogger().error(`worker.job.unhandled_exception.${(0, lodash_1.snakeCase)(this.queueFullName)}`, {
90
+ queue: this.queueFullName,
91
+ error,
92
+ });
93
+ }
79
94
  });
80
95
  }
81
96
  run() {
82
97
  return __awaiter(this, void 0, void 0, function* () {
98
+ const logger = this.getLogger();
83
99
  try {
84
- this.getLogger().info("worker.run.starting", {
100
+ logger.info(`worker.run.starting.${(0, lodash_1.snakeCase)(this.queueFullName)}`, {
85
101
  queue: this.queueFullName,
86
102
  });
87
103
  yield this.worker.run();
88
- this.getLogger().info("worker.run.started", {
104
+ logger.info(`worker.run.started.${(0, lodash_1.snakeCase)(this.queueFullName)}`, {
89
105
  queue: this.queueFullName,
90
106
  });
91
107
  }
92
108
  catch (error) {
93
- this.getLogger().error("worker.run.error", {
109
+ logger.error(`worker.run.error.${(0, lodash_1.snakeCase)(this.queueFullName)}`, {
94
110
  queue: this.queueFullName,
95
111
  error,
96
112
  });
@@ -1 +1 @@
1
- {"version":3,"file":"worker.js","sourceRoot":"","sources":["../../src/worker/worker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"worker.js","sourceRoot":"","sources":["../../src/worker/worker.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@alanszp/queue",
3
- "version": "16.3.2",
3
+ "version": "16.4.2",
4
4
  "description": "Workers and queues",
5
5
  "main": "dist/index.js",
6
6
  "typings": "dist/index.d.ts",
@@ -35,5 +35,5 @@
35
35
  "lodash": "^4.17.21",
36
36
  "newrelic": "^11.18.0"
37
37
  },
38
- "gitHead": "4c34e99d4b526da169e604c8cab07c9a98c83b2b"
38
+ "gitHead": "6769856a3d29b0ce1ac8f156f0f15bd9c4e64b3d"
39
39
  }