@tryghost/job-manager 0.8.13 → 0.8.17

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 (2) hide show
  1. package/lib/job-manager.js +11 -16
  2. package/package.json +4 -3
@@ -3,7 +3,8 @@ const fastq = require('fastq');
3
3
  const later = require('@breejs/later');
4
4
  const Bree = require('bree');
5
5
  const pWaitFor = require('p-wait-for');
6
- const {IgnitionError, IncorrectUsageError} = require('@tryghost/errors');
6
+ const {UnhandledJobError, IncorrectUsageError} = require('@tryghost/errors');
7
+ const logging = require('@tryghost/logging');
7
8
  const isCronExpression = require('./is-cron-expression');
8
9
  const assembleBreeJob = require('./assemble-bree-job');
9
10
 
@@ -28,11 +29,10 @@ const handler = (error, result) => {
28
29
  class JobManager {
29
30
  /**
30
31
  * @param {Object} options
31
- * @param {Object} [options.logging] - custom logging handler, defaults to console
32
32
  * @param {Function} [options.errorHandler] - custom job error handler
33
33
  * @param {Function} [options.workerMessageHandler] - custom message handler coming from workers
34
34
  */
35
- constructor({logging, errorHandler, workerMessageHandler}) {
35
+ constructor({errorHandler, workerMessageHandler}) {
36
36
  this.queue = fastq(this, worker, 1);
37
37
 
38
38
  this.bree = new Bree({
@@ -43,8 +43,6 @@ class JobManager {
43
43
  errorHandler: errorHandler,
44
44
  workerMessageHandler: workerMessageHandler
45
45
  });
46
-
47
- this.logging = logging;
48
46
  }
49
47
 
50
48
  /**
@@ -60,7 +58,7 @@ class JobManager {
60
58
  */
61
59
  addJob({name, at, job, data, offloaded = true}) {
62
60
  if (offloaded) {
63
- this.logging.info('Adding offloaded job to the queue');
61
+ logging.info('Adding offloaded job to the queue');
64
62
  let schedule;
65
63
 
66
64
  if (!name) {
@@ -86,18 +84,18 @@ class JobManager {
86
84
  });
87
85
  }
88
86
 
89
- this.logging.info(`Scheduling job ${name} at ${at}. Next run on: ${later.schedule(schedule).next()}`);
87
+ logging.info(`Scheduling job ${name} at ${at}. Next run on: ${later.schedule(schedule).next()}`);
90
88
  } else if (at !== undefined) {
91
- this.logging.info(`Scheduling job ${name} at ${at}`);
89
+ logging.info(`Scheduling job ${name} at ${at}`);
92
90
  } else {
93
- this.logging.info(`Scheduling job ${name} to run immediately`);
91
+ logging.info(`Scheduling job ${name} to run immediately`);
94
92
  }
95
93
 
96
94
  const breeJob = assembleBreeJob(at, job, data, name);
97
95
  this.bree.add(breeJob);
98
96
  return this.bree.start(name);
99
97
  } else {
100
- this.logging.info('Adding one off inline job to the queue');
98
+ logging.info('Adding one off inline job to the queue');
101
99
 
102
100
  this.queue.push(async () => {
103
101
  try {
@@ -109,10 +107,7 @@ class JobManager {
109
107
  } catch (err) {
110
108
  // NOTE: each job should be written in a safe way and handle all errors internally
111
109
  // if the error is caught here jobs implementaton should be changed
112
- this.logging.error(new IgnitionError({
113
- level: 'critical',
114
- errorType: 'UnhandledJobError',
115
- message: 'Processed job threw an unhandled error',
110
+ logging.error(new UnhandledJobError({
116
111
  context: (typeof job === 'function') ? 'function' : job,
117
112
  err
118
113
  }));
@@ -147,11 +142,11 @@ class JobManager {
147
142
  return;
148
143
  }
149
144
 
150
- this.logging.warn('Waiting for busy job queue');
145
+ logging.warn('Waiting for busy job queue');
151
146
 
152
147
  await pWaitFor(() => this.queue.idle() === true, options);
153
148
 
154
- this.logging.warn('Job queue finished');
149
+ logging.warn('Job queue finished');
155
150
  }
156
151
  }
157
152
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tryghost/job-manager",
3
- "version": "0.8.13",
3
+ "version": "0.8.17",
4
4
  "repository": "https://github.com/TryGhost/Utils/tree/main/packages/job-manager",
5
5
  "author": "Ghost Foundation",
6
6
  "license": "MIT",
@@ -21,7 +21,7 @@
21
21
  "devDependencies": {
22
22
  "@sinonjs/fake-timers": "8.1.0",
23
23
  "c8": "7.10.0",
24
- "date-fns": "2.26.0",
24
+ "date-fns": "2.27.0",
25
25
  "delay": "5.0.0",
26
26
  "mocha": "9.1.3",
27
27
  "should": "13.2.3",
@@ -29,10 +29,11 @@
29
29
  },
30
30
  "dependencies": {
31
31
  "@breejs/later": "^4.0.2",
32
+ "@tryghost/logging": "^2.0.0",
32
33
  "bree": "^6.2.0",
33
34
  "cron-validate": "^1.4.3",
34
35
  "fastq": "^1.11.0",
35
36
  "p-wait-for": "^3.2.0"
36
37
  },
37
- "gitHead": "c47f18a41c5298f4179fb3073dbf2248de80b0d4"
38
+ "gitHead": "69f039f26b1b1358ce7f835e5006cb9ae6c5b7ba"
38
39
  }