@sidequest/engine 1.13.3 → 1.13.5

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.
@@ -0,0 +1,56 @@
1
+ 'use strict';
2
+
3
+ /**
4
+ * Enumeration of available dependency tokens for the dependency registry.
5
+ * Used as keys to register and retrieve dependencies throughout the engine.
6
+ */
7
+ exports.Dependency = void 0;
8
+ (function (Dependency) {
9
+ /** Engine configuration */
10
+ Dependency["Config"] = "config";
11
+ /** Backend instance */
12
+ Dependency["Backend"] = "backend";
13
+ })(exports.Dependency || (exports.Dependency = {}));
14
+ /**
15
+ * A type-safe dependency injection container for managing core engine dependencies.
16
+ * Provides methods to register, retrieve, and clear dependencies used throughout the engine lifecycle.
17
+ */
18
+ class DependencyRegistry {
19
+ /**
20
+ * Internal storage for registered dependencies.
21
+ */
22
+ registry = new Map();
23
+ /**
24
+ * Retrieves a registered dependency by its token.
25
+ * @param token - The dependency token to look up
26
+ * @returns The registered dependency instance, or undefined if not found
27
+ */
28
+ get(token) {
29
+ return this.registry.get(token);
30
+ }
31
+ /**
32
+ * Registers a dependency instance with the specified token.
33
+ * @param token - The dependency token to register under
34
+ * @param instance - The dependency instance to register
35
+ * @returns The registered instance
36
+ */
37
+ register(token, instance) {
38
+ this.registry.set(token, instance);
39
+ return instance;
40
+ }
41
+ /**
42
+ * Clears all registered dependencies from the registry.
43
+ * Useful for cleanup and testing scenarios.
44
+ */
45
+ clear() {
46
+ this.registry.clear();
47
+ }
48
+ }
49
+ /**
50
+ * Singleton instance of the dependency registry.
51
+ * This is the main container used throughout the engine to manage dependencies.
52
+ */
53
+ const dependencyRegistry = new DependencyRegistry();
54
+
55
+ exports.dependencyRegistry = dependencyRegistry;
56
+ //# sourceMappingURL=dependency-registry.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dependency-registry.cjs","sources":["../src/dependency-registry.ts"],"sourcesContent":[null],"names":["Dependency"],"mappings":";;AAGA;;;AAGG;AACSA;AAAZ,CAAA,UAAY,UAAU,EAAA;;AAEpB,IAAA,UAAA,CAAA,QAAA,CAAA,GAAA,QAAiB;;AAEjB,IAAA,UAAA,CAAA,SAAA,CAAA,GAAA,SAAmB;AACrB,CAAC,EALWA,kBAAU,KAAVA,kBAAU,GAAA,EAAA,CAAA,CAAA;AAgBtB;;;AAGG;AACH,MAAM,kBAAkB,CAAA;AACtB;;AAEG;AACK,IAAA,QAAQ,GAAG,IAAI,GAAG,EAAuB;AAEjD;;;;AAIG;AACH,IAAA,GAAG,CAAuB,KAAQ,EAAA;QAChC,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAA2C;IAC3E;AAEA;;;;;AAKG;IACH,QAAQ,CAAuB,KAAQ,EAAE,QAAoC,EAAA;QAC3E,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,CAAC;AAClC,QAAA,OAAO,QAAQ;IACjB;AAEA;;;AAGG;IACH,KAAK,GAAA;AACH,QAAA,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE;IACvB;AACD;AAED;;;AAGG;AACI,MAAM,kBAAkB,GAAG,IAAI,kBAAkB;;;;"}
@@ -0,0 +1,54 @@
1
+ /**
2
+ * Enumeration of available dependency tokens for the dependency registry.
3
+ * Used as keys to register and retrieve dependencies throughout the engine.
4
+ */
5
+ var Dependency;
6
+ (function (Dependency) {
7
+ /** Engine configuration */
8
+ Dependency["Config"] = "config";
9
+ /** Backend instance */
10
+ Dependency["Backend"] = "backend";
11
+ })(Dependency || (Dependency = {}));
12
+ /**
13
+ * A type-safe dependency injection container for managing core engine dependencies.
14
+ * Provides methods to register, retrieve, and clear dependencies used throughout the engine lifecycle.
15
+ */
16
+ class DependencyRegistry {
17
+ /**
18
+ * Internal storage for registered dependencies.
19
+ */
20
+ registry = new Map();
21
+ /**
22
+ * Retrieves a registered dependency by its token.
23
+ * @param token - The dependency token to look up
24
+ * @returns The registered dependency instance, or undefined if not found
25
+ */
26
+ get(token) {
27
+ return this.registry.get(token);
28
+ }
29
+ /**
30
+ * Registers a dependency instance with the specified token.
31
+ * @param token - The dependency token to register under
32
+ * @param instance - The dependency instance to register
33
+ * @returns The registered instance
34
+ */
35
+ register(token, instance) {
36
+ this.registry.set(token, instance);
37
+ return instance;
38
+ }
39
+ /**
40
+ * Clears all registered dependencies from the registry.
41
+ * Useful for cleanup and testing scenarios.
42
+ */
43
+ clear() {
44
+ this.registry.clear();
45
+ }
46
+ }
47
+ /**
48
+ * Singleton instance of the dependency registry.
49
+ * This is the main container used throughout the engine to manage dependencies.
50
+ */
51
+ const dependencyRegistry = new DependencyRegistry();
52
+
53
+ export { Dependency, dependencyRegistry };
54
+ //# sourceMappingURL=dependency-registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dependency-registry.js","sources":["../src/dependency-registry.ts"],"sourcesContent":[null],"names":[],"mappings":"AAGA;;;AAGG;IACS;AAAZ,CAAA,UAAY,UAAU,EAAA;;AAEpB,IAAA,UAAA,CAAA,QAAA,CAAA,GAAA,QAAiB;;AAEjB,IAAA,UAAA,CAAA,SAAA,CAAA,GAAA,SAAmB;AACrB,CAAC,EALW,UAAU,KAAV,UAAU,GAAA,EAAA,CAAA,CAAA;AAgBtB;;;AAGG;AACH,MAAM,kBAAkB,CAAA;AACtB;;AAEG;AACK,IAAA,QAAQ,GAAG,IAAI,GAAG,EAAuB;AAEjD;;;;AAIG;AACH,IAAA,GAAG,CAAuB,KAAQ,EAAA;QAChC,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAA2C;IAC3E;AAEA;;;;;AAKG;IACH,QAAQ,CAAuB,KAAQ,EAAE,QAAoC,EAAA;QAC3E,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,CAAC;AAClC,QAAA,OAAO,QAAQ;IACjB;AAEA;;;AAGG;IACH,KAAK,GAAA;AACH,QAAA,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE;IACvB;AACD;AAED;;;AAGG;AACI,MAAM,kBAAkB,GAAG,IAAI,kBAAkB;;;;"}
package/dist/engine.cjs CHANGED
@@ -8,6 +8,7 @@ var os = require('os');
8
8
  var url = require('url');
9
9
  var util = require('util');
10
10
  var constants$1 = require('./constants.cjs');
11
+ var dependencyRegistry = require('./dependency-registry.cjs');
11
12
  var constants = require('./job/constants.cjs');
12
13
  var cronRegistry = require('./job/cron-registry.cjs');
13
14
  var jobBuilder = require('./job/job-builder.cjs');
@@ -22,17 +23,6 @@ require('piscina');
22
23
  * The main engine for managing job queues and workers in Sidequest.
23
24
  */
24
25
  class Engine {
25
- /**
26
- * Backend instance used by the engine.
27
- * This is initialized when the engine is configured or started.
28
- */
29
- backend;
30
- /**
31
- * Current configuration of the engine.
32
- * This is set when the engine is configured or started.
33
- * It contains all the necessary settings for the engine to operate, such as backend, queues, logger options, and job defaults.
34
- */
35
- config;
36
26
  /**
37
27
  * Main worker process that runs the Sidequest engine.
38
28
  * This is created when the engine is started and handles job processing.
@@ -49,11 +39,11 @@ class Engine {
49
39
  * @returns The resolved configuration.
50
40
  */
51
41
  async configure(config) {
52
- if (this.config) {
42
+ if (this.getConfig()) {
53
43
  core.logger("Engine").debug("Sidequest already configured");
54
- return this.config;
44
+ return this.getConfig();
55
45
  }
56
- this.config = {
46
+ const nonNullConfig = {
57
47
  queues: config?.queues ?? [],
58
48
  backend: {
59
49
  driver: config?.backend?.driver ?? "@sidequest/sqlite-backend",
@@ -92,16 +82,17 @@ class Engine {
92
82
  jobsFilePath: config?.jobsFilePath?.trim() ?? "",
93
83
  jobPollingInterval: config?.jobPollingInterval ?? 100,
94
84
  };
85
+ dependencyRegistry.dependencyRegistry.register(dependencyRegistry.Dependency.Config, nonNullConfig);
95
86
  this.validateConfig();
96
- core.logger("Engine").debug(`Configuring Sidequest engine: ${util.inspect(this.config)}`);
97
- if (this.config.logger) {
98
- core.configureLogger(this.config.logger);
87
+ core.logger("Engine").debug(`Configuring Sidequest engine: ${util.inspect(nonNullConfig)}`);
88
+ if (nonNullConfig.logger) {
89
+ core.configureLogger(nonNullConfig.logger);
99
90
  }
100
- this.backend = new backend.LazyBackend(this.config.backend);
101
- if (!this.config.skipMigration) {
102
- await this.backend.migrate();
91
+ const backend$1 = dependencyRegistry.dependencyRegistry.register(dependencyRegistry.Dependency.Backend, new backend.LazyBackend(nonNullConfig.backend));
92
+ if (!nonNullConfig.skipMigration) {
93
+ await backend$1.migrate();
103
94
  }
104
- return this.config;
95
+ return nonNullConfig;
105
96
  }
106
97
  /**
107
98
  * Validates the engine configuration settings.
@@ -120,17 +111,18 @@ class Engine {
120
111
  * - Logs the resolved jobs file path when using manual job resolution
121
112
  */
122
113
  validateConfig() {
123
- if (this.config.maxConcurrentJobs !== undefined && this.config.maxConcurrentJobs < 1) {
114
+ const config = this.getConfig();
115
+ if (config.maxConcurrentJobs !== undefined && config.maxConcurrentJobs < 1) {
124
116
  throw new Error(`Invalid "maxConcurrentJobs" value: must be at least 1.`);
125
117
  }
126
- if (this.config.manualJobResolution) {
127
- if (this.config.jobsFilePath) {
128
- const scriptUrl = manualLoader.resolveScriptPath(this.config.jobsFilePath);
118
+ if (config.manualJobResolution) {
119
+ if (config.jobsFilePath) {
120
+ const scriptUrl = manualLoader.resolveScriptPath(config.jobsFilePath);
129
121
  if (!fs.existsSync(url.fileURLToPath(scriptUrl))) {
130
122
  throw new Error(`The specified jobsFilePath does not exist. Resolved to: ${scriptUrl}`);
131
123
  }
132
- core.logger("Engine").info(`Using manual jobs file at: ${this.config.jobsFilePath}`);
133
- this.config.jobsFilePath = scriptUrl;
124
+ core.logger("Engine").info(`Using manual jobs file at: ${config.jobsFilePath}`);
125
+ config.jobsFilePath = scriptUrl;
134
126
  }
135
127
  else {
136
128
  // This should throw an error if not found
@@ -147,11 +139,11 @@ class Engine {
147
139
  core.logger("Engine").warn("Sidequest engine already started");
148
140
  return;
149
141
  }
150
- await this.configure(config);
151
- core.logger("Engine").info(`Starting Sidequest using backend ${this.config.backend.driver}`);
152
- if (this.config.queues) {
153
- for (const queue of this.config.queues) {
154
- await grantQueueConfig.grantQueueConfig(this.backend, queue, this.config.queueDefaults, true);
142
+ const nonNullConfig = await this.configure(config);
143
+ core.logger("Engine").info(`Starting Sidequest using backend ${nonNullConfig.backend.driver}`);
144
+ if (nonNullConfig.queues) {
145
+ for (const queue of nonNullConfig.queues) {
146
+ await grantQueueConfig.grantQueueConfig(dependencyRegistry.dependencyRegistry.get(dependencyRegistry.Dependency.Backend), queue, nonNullConfig.queueDefaults, true);
155
147
  }
156
148
  }
157
149
  return new Promise((resolve, reject) => {
@@ -166,7 +158,7 @@ class Engine {
166
158
  this.mainWorker.on("message", (msg) => {
167
159
  if (msg === "ready") {
168
160
  core.logger("Engine").debug("Main worker is ready");
169
- this.mainWorker?.send({ type: "start", sidequestConfig: this.config });
161
+ this.mainWorker?.send({ type: "start", sidequestConfig: nonNullConfig });
170
162
  clearTimeout(timeout);
171
163
  resolve();
172
164
  }
@@ -179,7 +171,7 @@ class Engine {
179
171
  });
180
172
  };
181
173
  runWorker();
182
- shutdown.gracefulShutdown(this.close.bind(this), "Engine", this.config.gracefulShutdown);
174
+ shutdown.gracefulShutdown(this.close.bind(this), "Engine", nonNullConfig.gracefulShutdown);
183
175
  }
184
176
  });
185
177
  }
@@ -188,14 +180,14 @@ class Engine {
188
180
  * @returns The current configuration, if set.
189
181
  */
190
182
  getConfig() {
191
- return this.config;
183
+ return dependencyRegistry.dependencyRegistry.get(dependencyRegistry.Dependency.Config);
192
184
  }
193
185
  /**
194
186
  * Gets the backend instance in use by the engine.
195
187
  * @returns The backend instance, if set.
196
188
  */
197
189
  getBackend() {
198
- return this.backend;
190
+ return dependencyRegistry.dependencyRegistry.get(dependencyRegistry.Dependency.Backend);
199
191
  }
200
192
  /**
201
193
  * Closes the engine and releases resources.
@@ -214,19 +206,19 @@ class Engine {
214
206
  await promise;
215
207
  }
216
208
  try {
217
- await this.backend?.close();
209
+ await dependencyRegistry.dependencyRegistry.get(dependencyRegistry.Dependency.Backend)?.close();
218
210
  }
219
211
  catch (error) {
220
212
  core.logger("Engine").error("Error closing backend:", error);
221
213
  }
222
- this.config = undefined;
223
- this.backend = undefined;
224
214
  this.mainWorker = undefined;
225
215
  // Reset the shutting down flag after closing
226
216
  // This allows the engine to be reconfigured or restarted later
227
217
  shutdown.clearGracefulShutdown();
228
218
  core.logger("Engine").debug("Sidequest engine closed.");
229
219
  this.shuttingDown = false;
220
+ // Clear the dependency registry to allow fresh configuration later
221
+ dependencyRegistry.dependencyRegistry.clear();
230
222
  }
231
223
  }
232
224
  /**
@@ -235,19 +227,21 @@ class Engine {
235
227
  * @returns A new JobBuilder instance for the job class.
236
228
  */
237
229
  build(JobClass) {
238
- if (!this.config || !this.backend) {
230
+ const backend = this.getBackend();
231
+ const config = this.getConfig();
232
+ if (!config || !backend) {
239
233
  throw new Error("Engine not configured. Call engine.configure() or engine.start() first.");
240
234
  }
241
235
  if (this.shuttingDown) {
242
236
  throw new Error("Engine is shutting down, cannot build job.");
243
237
  }
244
238
  core.logger("Engine").debug(`Building job for class: ${JobClass.name}`);
245
- return new jobBuilder.JobBuilder(this.backend, JobClass, {
246
- ...this.config.jobDefaults,
239
+ return new jobBuilder.JobBuilder(backend, JobClass, {
240
+ ...config.jobDefaults,
247
241
  // We need to do this check again because available at is a getter. It needs to be set at job creation time.
248
242
  // If not set, it will use the fallback value which is outdated from config.
249
- availableAt: this.config.jobDefaults.availableAt ?? constants.JOB_BUILDER_FALLBACK.availableAt,
250
- }, this.config.manualJobResolution);
243
+ availableAt: config.jobDefaults.availableAt ?? constants.JOB_BUILDER_FALLBACK.availableAt,
244
+ }, config.manualJobResolution);
251
245
  }
252
246
  }
253
247
 
@@ -1 +1 @@
1
- {"version":3,"file":"engine.cjs","sources":["../src/engine.ts"],"sourcesContent":[null],"names":["logger","cpus","MISC_FALLBACK","JOB_BUILDER_FALLBACK","QUEUE_FALLBACK","inspect","configureLogger","LazyBackend","resolveScriptPath","existsSync","fileURLToPath","findSidequestJobsScriptInParentDirs","grantQueueConfig","fork","DEFAULT_WORKER_PATH","gracefulShutdown","ScheduledJobRegistry","clearGracefulShutdown","JobBuilder"],"mappings":"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"}
1
+ {"version":3,"file":"engine.cjs","sources":["../src/engine.ts"],"sourcesContent":[null],"names":["logger","cpus","MISC_FALLBACK","JOB_BUILDER_FALLBACK","QUEUE_FALLBACK","dependencyRegistry","Dependency","inspect","configureLogger","backend","LazyBackend","resolveScriptPath","existsSync","fileURLToPath","findSidequestJobsScriptInParentDirs","grantQueueConfig","fork","DEFAULT_WORKER_PATH","gracefulShutdown","ScheduledJobRegistry","clearGracefulShutdown","JobBuilder"],"mappings":"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"}
package/dist/engine.d.ts CHANGED
@@ -1,4 +1,5 @@
1
- import { BackendConfig, NewQueueData, Backend } from '@sidequest/backend';
1
+ import * as _sidequest_backend from '@sidequest/backend';
2
+ import { BackendConfig, NewQueueData } from '@sidequest/backend';
2
3
  import { LoggerOptions, JobClassType } from '@sidequest/core';
3
4
  import { JobBuilderDefaults, JobBuilder } from './job/job-builder.js';
4
5
  import { QueueDefaults } from './queue/grant-queue-config.js';
@@ -104,17 +105,6 @@ type NonNullableEngineConfig = {
104
105
  * The main engine for managing job queues and workers in Sidequest.
105
106
  */
106
107
  declare class Engine {
107
- /**
108
- * Backend instance used by the engine.
109
- * This is initialized when the engine is configured or started.
110
- */
111
- private backend?;
112
- /**
113
- * Current configuration of the engine.
114
- * This is set when the engine is configured or started.
115
- * It contains all the necessary settings for the engine to operate, such as backend, queues, logger options, and job defaults.
116
- */
117
- private config?;
118
108
  /**
119
109
  * Main worker process that runs the Sidequest engine.
120
110
  * This is created when the engine is started and handles job processing.
@@ -162,7 +152,7 @@ declare class Engine {
162
152
  * Gets the backend instance in use by the engine.
163
153
  * @returns The backend instance, if set.
164
154
  */
165
- getBackend(): Backend | undefined;
155
+ getBackend(): _sidequest_backend.Backend | undefined;
166
156
  /**
167
157
  * Closes the engine and releases resources.
168
158
  */
package/dist/engine.js CHANGED
@@ -6,6 +6,7 @@ import { cpus } from 'os';
6
6
  import { fileURLToPath } from 'url';
7
7
  import { inspect } from 'util';
8
8
  import { DEFAULT_WORKER_PATH } from './constants.js';
9
+ import { dependencyRegistry, Dependency } from './dependency-registry.js';
9
10
  import { JOB_BUILDER_FALLBACK } from './job/constants.js';
10
11
  import { ScheduledJobRegistry } from './job/cron-registry.js';
11
12
  import { JobBuilder } from './job/job-builder.js';
@@ -20,17 +21,6 @@ import 'piscina';
20
21
  * The main engine for managing job queues and workers in Sidequest.
21
22
  */
22
23
  class Engine {
23
- /**
24
- * Backend instance used by the engine.
25
- * This is initialized when the engine is configured or started.
26
- */
27
- backend;
28
- /**
29
- * Current configuration of the engine.
30
- * This is set when the engine is configured or started.
31
- * It contains all the necessary settings for the engine to operate, such as backend, queues, logger options, and job defaults.
32
- */
33
- config;
34
24
  /**
35
25
  * Main worker process that runs the Sidequest engine.
36
26
  * This is created when the engine is started and handles job processing.
@@ -47,11 +37,11 @@ class Engine {
47
37
  * @returns The resolved configuration.
48
38
  */
49
39
  async configure(config) {
50
- if (this.config) {
40
+ if (this.getConfig()) {
51
41
  logger("Engine").debug("Sidequest already configured");
52
- return this.config;
42
+ return this.getConfig();
53
43
  }
54
- this.config = {
44
+ const nonNullConfig = {
55
45
  queues: config?.queues ?? [],
56
46
  backend: {
57
47
  driver: config?.backend?.driver ?? "@sidequest/sqlite-backend",
@@ -90,16 +80,17 @@ class Engine {
90
80
  jobsFilePath: config?.jobsFilePath?.trim() ?? "",
91
81
  jobPollingInterval: config?.jobPollingInterval ?? 100,
92
82
  };
83
+ dependencyRegistry.register(Dependency.Config, nonNullConfig);
93
84
  this.validateConfig();
94
- logger("Engine").debug(`Configuring Sidequest engine: ${inspect(this.config)}`);
95
- if (this.config.logger) {
96
- configureLogger(this.config.logger);
85
+ logger("Engine").debug(`Configuring Sidequest engine: ${inspect(nonNullConfig)}`);
86
+ if (nonNullConfig.logger) {
87
+ configureLogger(nonNullConfig.logger);
97
88
  }
98
- this.backend = new LazyBackend(this.config.backend);
99
- if (!this.config.skipMigration) {
100
- await this.backend.migrate();
89
+ const backend = dependencyRegistry.register(Dependency.Backend, new LazyBackend(nonNullConfig.backend));
90
+ if (!nonNullConfig.skipMigration) {
91
+ await backend.migrate();
101
92
  }
102
- return this.config;
93
+ return nonNullConfig;
103
94
  }
104
95
  /**
105
96
  * Validates the engine configuration settings.
@@ -118,17 +109,18 @@ class Engine {
118
109
  * - Logs the resolved jobs file path when using manual job resolution
119
110
  */
120
111
  validateConfig() {
121
- if (this.config.maxConcurrentJobs !== undefined && this.config.maxConcurrentJobs < 1) {
112
+ const config = this.getConfig();
113
+ if (config.maxConcurrentJobs !== undefined && config.maxConcurrentJobs < 1) {
122
114
  throw new Error(`Invalid "maxConcurrentJobs" value: must be at least 1.`);
123
115
  }
124
- if (this.config.manualJobResolution) {
125
- if (this.config.jobsFilePath) {
126
- const scriptUrl = resolveScriptPath(this.config.jobsFilePath);
116
+ if (config.manualJobResolution) {
117
+ if (config.jobsFilePath) {
118
+ const scriptUrl = resolveScriptPath(config.jobsFilePath);
127
119
  if (!existsSync(fileURLToPath(scriptUrl))) {
128
120
  throw new Error(`The specified jobsFilePath does not exist. Resolved to: ${scriptUrl}`);
129
121
  }
130
- logger("Engine").info(`Using manual jobs file at: ${this.config.jobsFilePath}`);
131
- this.config.jobsFilePath = scriptUrl;
122
+ logger("Engine").info(`Using manual jobs file at: ${config.jobsFilePath}`);
123
+ config.jobsFilePath = scriptUrl;
132
124
  }
133
125
  else {
134
126
  // This should throw an error if not found
@@ -145,11 +137,11 @@ class Engine {
145
137
  logger("Engine").warn("Sidequest engine already started");
146
138
  return;
147
139
  }
148
- await this.configure(config);
149
- logger("Engine").info(`Starting Sidequest using backend ${this.config.backend.driver}`);
150
- if (this.config.queues) {
151
- for (const queue of this.config.queues) {
152
- await grantQueueConfig(this.backend, queue, this.config.queueDefaults, true);
140
+ const nonNullConfig = await this.configure(config);
141
+ logger("Engine").info(`Starting Sidequest using backend ${nonNullConfig.backend.driver}`);
142
+ if (nonNullConfig.queues) {
143
+ for (const queue of nonNullConfig.queues) {
144
+ await grantQueueConfig(dependencyRegistry.get(Dependency.Backend), queue, nonNullConfig.queueDefaults, true);
153
145
  }
154
146
  }
155
147
  return new Promise((resolve, reject) => {
@@ -164,7 +156,7 @@ class Engine {
164
156
  this.mainWorker.on("message", (msg) => {
165
157
  if (msg === "ready") {
166
158
  logger("Engine").debug("Main worker is ready");
167
- this.mainWorker?.send({ type: "start", sidequestConfig: this.config });
159
+ this.mainWorker?.send({ type: "start", sidequestConfig: nonNullConfig });
168
160
  clearTimeout(timeout);
169
161
  resolve();
170
162
  }
@@ -177,7 +169,7 @@ class Engine {
177
169
  });
178
170
  };
179
171
  runWorker();
180
- gracefulShutdown(this.close.bind(this), "Engine", this.config.gracefulShutdown);
172
+ gracefulShutdown(this.close.bind(this), "Engine", nonNullConfig.gracefulShutdown);
181
173
  }
182
174
  });
183
175
  }
@@ -186,14 +178,14 @@ class Engine {
186
178
  * @returns The current configuration, if set.
187
179
  */
188
180
  getConfig() {
189
- return this.config;
181
+ return dependencyRegistry.get(Dependency.Config);
190
182
  }
191
183
  /**
192
184
  * Gets the backend instance in use by the engine.
193
185
  * @returns The backend instance, if set.
194
186
  */
195
187
  getBackend() {
196
- return this.backend;
188
+ return dependencyRegistry.get(Dependency.Backend);
197
189
  }
198
190
  /**
199
191
  * Closes the engine and releases resources.
@@ -212,19 +204,19 @@ class Engine {
212
204
  await promise;
213
205
  }
214
206
  try {
215
- await this.backend?.close();
207
+ await dependencyRegistry.get(Dependency.Backend)?.close();
216
208
  }
217
209
  catch (error) {
218
210
  logger("Engine").error("Error closing backend:", error);
219
211
  }
220
- this.config = undefined;
221
- this.backend = undefined;
222
212
  this.mainWorker = undefined;
223
213
  // Reset the shutting down flag after closing
224
214
  // This allows the engine to be reconfigured or restarted later
225
215
  clearGracefulShutdown();
226
216
  logger("Engine").debug("Sidequest engine closed.");
227
217
  this.shuttingDown = false;
218
+ // Clear the dependency registry to allow fresh configuration later
219
+ dependencyRegistry.clear();
228
220
  }
229
221
  }
230
222
  /**
@@ -233,19 +225,21 @@ class Engine {
233
225
  * @returns A new JobBuilder instance for the job class.
234
226
  */
235
227
  build(JobClass) {
236
- if (!this.config || !this.backend) {
228
+ const backend = this.getBackend();
229
+ const config = this.getConfig();
230
+ if (!config || !backend) {
237
231
  throw new Error("Engine not configured. Call engine.configure() or engine.start() first.");
238
232
  }
239
233
  if (this.shuttingDown) {
240
234
  throw new Error("Engine is shutting down, cannot build job.");
241
235
  }
242
236
  logger("Engine").debug(`Building job for class: ${JobClass.name}`);
243
- return new JobBuilder(this.backend, JobClass, {
244
- ...this.config.jobDefaults,
237
+ return new JobBuilder(backend, JobClass, {
238
+ ...config.jobDefaults,
245
239
  // We need to do this check again because available at is a getter. It needs to be set at job creation time.
246
240
  // If not set, it will use the fallback value which is outdated from config.
247
- availableAt: this.config.jobDefaults.availableAt ?? JOB_BUILDER_FALLBACK.availableAt,
248
- }, this.config.manualJobResolution);
241
+ availableAt: config.jobDefaults.availableAt ?? JOB_BUILDER_FALLBACK.availableAt,
242
+ }, config.manualJobResolution);
249
243
  }
250
244
  }
251
245
 
@@ -1 +1 @@
1
- {"version":3,"file":"engine.js","sources":["../src/engine.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAkHA;;AAEG;MACU,MAAM,CAAA;AACjB;;;AAGG;AACK,IAAA,OAAO;AAEf;;;;AAIG;AACK,IAAA,MAAM;AAEd;;;AAGG;AACK,IAAA,UAAU;AAElB;;;AAGG;IACK,YAAY,GAAG,KAAK;AAE5B;;;;AAIG;IACH,MAAM,SAAS,CAAC,MAAqB,EAAA;AACnC,QAAA,IAAI,IAAI,CAAC,MAAM,EAAE;YACf,MAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,8BAA8B,CAAC;YACtD,OAAO,IAAI,CAAC,MAAM;QACpB;QACA,IAAI,CAAC,MAAM,GAAG;AACZ,YAAA,MAAM,EAAE,MAAM,EAAE,MAAM,IAAI,EAAE;AAC5B,YAAA,OAAO,EAAE;AACP,gBAAA,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,IAAI,2BAA2B;AAC9D,gBAAA,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,IAAI,oBAAoB;AACxD,aAAA;AACD,YAAA,8BAA8B,EAAE,MAAM,EAAE,8BAA8B,IAAI,EAAE;AAC5E,YAAA,4BAA4B,EAAE,MAAM,EAAE,4BAA4B,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI;AAC9F,YAAA,2BAA2B,EAAE,MAAM,EAAE,2BAA2B,IAAI,EAAE;AACtE,YAAA,iBAAiB,EAAE,MAAM,EAAE,iBAAiB,IAAI,EAAE;AAClD,YAAA,aAAa,EAAE,MAAM,EAAE,aAAa,IAAI,KAAK;AAC7C,YAAA,MAAM,EAAE;AACN,gBAAA,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,IAAI,MAAM;AACtC,gBAAA,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,IAAI,KAAK;AACpC,aAAA;AACD,YAAA,gBAAgB,EAAE,MAAM,EAAE,gBAAgB,IAAI,IAAI;YAClD,UAAU,EAAE,MAAM,EAAE,UAAU,IAAI,IAAI,EAAE,CAAC,MAAM;YAC/C,UAAU,EAAE,MAAM,EAAE,UAAU,IAAI,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC;AACnD,YAAA,iBAAiB,EAAE,MAAM,EAAE,iBAAiB,IAAI,MAAM;YACtD,0BAA0B,EAAE,MAAM,EAAE,0BAA0B,IAAI,aAAa,CAAC,UAAU;YAC1F,4BAA4B,EAAE,MAAM,EAAE,4BAA4B,IAAI,aAAa,CAAC,YAAY;AAChG,YAAA,WAAW,EAAE;gBACX,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,KAAK,IAAI,oBAAoB,CAAC,KAAM;gBAChE,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW,IAAI,oBAAoB,CAAC,WAAY;;;AAGlF,gBAAA,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW;gBAC7C,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,IAAI,oBAAoB,CAAC,OAAQ;gBACtE,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,UAAU,IAAI,oBAAoB,CAAC,UAAW;AAChF,aAAA;AACD,YAAA,aAAa,EAAE;gBACb,WAAW,EAAE,MAAM,EAAE,aAAa,EAAE,WAAW,IAAI,cAAc,CAAC,WAAW;gBAC7E,QAAQ,EAAE,MAAM,EAAE,aAAa,EAAE,QAAQ,IAAI,cAAc,CAAC,QAAQ;gBACpE,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,KAAK,IAAI,cAAc,CAAC,KAAK;AAC5D,aAAA;AACD,YAAA,mBAAmB,EAAE,MAAM,EAAE,mBAAmB,IAAI,KAAK;YACzD,YAAY,EAAE,MAAM,EAAE,YAAY,EAAE,IAAI,EAAE,IAAI,EAAE;AAChD,YAAA,kBAAkB,EAAE,MAAM,EAAE,kBAAkB,IAAI,GAAG;SACtD;QAED,IAAI,CAAC,cAAc,EAAE;AAErB,QAAA,MAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,CAAA,8BAAA,EAAiC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA,CAAE,CAAC;AAE/E,QAAA,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE;AACtB,YAAA,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;QACrC;AAEA,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;AACnD,QAAA,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE;AAC9B,YAAA,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE;QAC9B;QAEA,OAAO,IAAI,CAAC,MAAM;IACpB;AAEA;;;;;;;;;;;;;;;AAeG;IACH,cAAc,GAAA;AACZ,QAAA,IAAI,IAAI,CAAC,MAAO,CAAC,iBAAiB,KAAK,SAAS,IAAI,IAAI,CAAC,MAAO,CAAC,iBAAiB,GAAG,CAAC,EAAE;AACtF,YAAA,MAAM,IAAI,KAAK,CAAC,CAAA,sDAAA,CAAwD,CAAC;QAC3E;AAEA,QAAA,IAAI,IAAI,CAAC,MAAO,CAAC,mBAAmB,EAAE;AACpC,YAAA,IAAI,IAAI,CAAC,MAAO,CAAC,YAAY,EAAE;gBAC7B,MAAM,SAAS,GAAG,iBAAiB,CAAC,IAAI,CAAC,MAAO,CAAC,YAAY,CAAC;gBAC9D,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,EAAE;AACzC,oBAAA,MAAM,IAAI,KAAK,CAAC,2DAA2D,SAAS,CAAA,CAAE,CAAC;gBACzF;AACA,gBAAA,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAA,2BAAA,EAA8B,IAAI,CAAC,MAAO,CAAC,YAAY,CAAA,CAAE,CAAC;AAChF,gBAAA,IAAI,CAAC,MAAO,CAAC,YAAY,GAAG,SAAS;YACvC;iBAAO;;AAEL,gBAAA,mCAAmC,EAAE;YACvC;QACF;IACF;AAEA;;;AAGG;IACH,MAAM,KAAK,CAAC,MAAoB,EAAA;AAC9B,QAAA,IAAI,IAAI,CAAC,UAAU,EAAE;YACnB,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,kCAAkC,CAAC;YACzD;QACF;AAEA,QAAA,MAAM,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;AAE5B,QAAA,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAA,iCAAA,EAAoC,IAAI,CAAC,MAAO,CAAC,OAAO,CAAC,MAAM,CAAA,CAAE,CAAC;AAExF,QAAA,IAAI,IAAI,CAAC,MAAO,CAAC,MAAM,EAAE;YACvB,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,MAAO,CAAC,MAAM,EAAE;AACvC,gBAAA,MAAM,gBAAgB,CAAC,IAAI,CAAC,OAAQ,EAAE,KAAK,EAAE,IAAI,CAAC,MAAO,CAAC,aAAa,EAAE,IAAI,CAAC;YAChF;QACF;QAEA,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,KAAI;AACrC,YAAA,MAAM,OAAO,GAAG,UAAU,CAAC,MAAK;AAC9B,gBAAA,MAAM,CAAC,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;YAC1D,CAAC,EAAE,IAAI,CAAC;AAER,YAAA,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;gBACpB,MAAM,SAAS,GAAG,MAAK;oBACrB,MAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,yBAAyB,CAAC;AACjD,oBAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,mBAAmB,CAAC;AAC3C,oBAAA,MAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,CAAA,YAAA,EAAe,IAAI,CAAC,UAAU,CAAC,GAAG,CAAA,CAAE,CAAC;oBAC5D,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,GAAG,KAAI;AACpC,wBAAA,IAAI,GAAG,KAAK,OAAO,EAAE;4BACnB,MAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,sBAAsB,CAAC;AAC9C,4BAAA,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,eAAe,EAAE,IAAI,CAAC,MAAO,EAAE,CAAC;4BACvE,YAAY,CAAC,OAAO,CAAC;AACrB,4BAAA,OAAO,EAAE;wBACX;AACF,oBAAA,CAAC,CAAC;oBAEF,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,MAAK;AAC9B,wBAAA,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;4BACtB,MAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,wCAAwC,CAAC;AAChE,4BAAA,SAAS,EAAE;wBACb;AACF,oBAAA,CAAC,CAAC;AACJ,gBAAA,CAAC;AAED,gBAAA,SAAS,EAAE;AACX,gBAAA,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,MAAO,CAAC,gBAAgB,CAAC;YAClF;AACF,QAAA,CAAC,CAAC;IACJ;AAEA;;;AAGG;IACH,SAAS,GAAA;QACP,OAAO,IAAI,CAAC,MAAM;IACpB;AAEA;;;AAGG;IACH,UAAU,GAAA;QACR,OAAO,IAAI,CAAC,OAAO;IACrB;AAEA;;AAEG;AACH,IAAA,MAAM,KAAK,GAAA;AACT,QAAA,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;AACtB,YAAA,IAAI,CAAC,YAAY,GAAG,IAAI;YACxB,MAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,6BAA6B,CAAC;;AAGrD,YAAA,MAAM,oBAAoB,CAAC,OAAO,EAAE;AAEpC,YAAA,IAAI,IAAI,CAAC,UAAU,EAAE;gBACnB,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,CAAC,OAAO,KAAI;oBACtC,IAAI,CAAC,UAAW,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC;AACtC,gBAAA,CAAC,CAAC;gBACF,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;AAC1C,gBAAA,MAAM,OAAO;YACf;AACA,YAAA,IAAI;AACF,gBAAA,MAAM,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE;YAC7B;YAAE,OAAO,KAAK,EAAE;gBACd,MAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,wBAAwB,EAAE,KAAK,CAAC;YACzD;AACA,YAAA,IAAI,CAAC,MAAM,GAAG,SAAS;AACvB,YAAA,IAAI,CAAC,OAAO,GAAG,SAAS;AACxB,YAAA,IAAI,CAAC,UAAU,GAAG,SAAS;;;AAG3B,YAAA,qBAAqB,EAAE;YACvB,MAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,0BAA0B,CAAC;AAClD,YAAA,IAAI,CAAC,YAAY,GAAG,KAAK;QAC3B;IACF;AAEA;;;;AAIG;AACH,IAAA,KAAK,CAAyB,QAAW,EAAA;QACvC,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;AACjC,YAAA,MAAM,IAAI,KAAK,CAAC,yEAAyE,CAAC;QAC5F;AACA,QAAA,IAAI,IAAI,CAAC,YAAY,EAAE;AACrB,YAAA,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC;QAC/D;AACA,QAAA,MAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,CAAA,wBAAA,EAA2B,QAAQ,CAAC,IAAI,CAAA,CAAE,CAAC;QAClE,OAAO,IAAI,UAAU,CACnB,IAAI,CAAC,OAAO,EACZ,QAAQ,EACR;AACE,YAAA,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW;;;YAG1B,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,WAAW,IAAI,oBAAoB,CAAC,WAAY;AACtF,SAAA,EACD,IAAI,CAAC,MAAM,CAAC,mBAAmB,CAChC;IACH;AACD;;;;"}
1
+ {"version":3,"file":"engine.js","sources":["../src/engine.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
@@ -2,6 +2,15 @@
2
2
 
3
3
  var core = require('@sidequest/core');
4
4
  var util = require('util');
5
+ require('../job/constants.cjs');
6
+ require('node-cron');
7
+ require('node:util');
8
+ require('node:fs');
9
+ require('node:url');
10
+ require('node:path');
11
+ require('piscina');
12
+ require('../constants.cjs');
13
+ var jobTransitioner = require('../job/job-transitioner.cjs');
5
14
 
6
15
  /**
7
16
  * Finds and releases stale jobs, making them available for processing again.
@@ -16,8 +25,17 @@ async function releaseStaleJobs(backend, maxStaleMs, maxClaimedMs) {
16
25
  core.logger("Engine").info(`Stale jobs found, making them available to process`);
17
26
  core.logger("Engine").debug(`Stale jobs: ${util.inspect(staleJobs)}`);
18
27
  for (const jobData of staleJobs) {
19
- jobData.state = "waiting";
20
- await backend.updateJob(jobData);
28
+ if (jobData.state === "running") {
29
+ // We need to use the JobTransitioner to properly handle retries and state transitions
30
+ // This fixes the issue where the release of a stale job incremented the retry count and
31
+ // did not respect the maxRetries setting.
32
+ await jobTransitioner.JobTransitioner.apply(backend, jobData, new core.RetryTransition("Stale job released for retry"));
33
+ }
34
+ else {
35
+ // If it's "claimed", then the attempt count was not incremented, so we can just set it back to "waiting"
36
+ jobData.state = "waiting";
37
+ await backend.updateJob(jobData);
38
+ }
21
39
  }
22
40
  }
23
41
  else {
@@ -1 +1 @@
1
- {"version":3,"file":"release-stale-jobs.cjs","sources":["../../src/routines/release-stale-jobs.ts"],"sourcesContent":[null],"names":["logger","inspect"],"mappings":";;;;;AAIA;;;;;;AAMG;AACI,eAAe,gBAAgB,CAAC,OAAgB,EAAE,UAAkB,EAAE,YAAoB,EAAA;IAC/F,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,SAAS,CAAC,UAAU,EAAE,YAAY,CAAC;AAEnE,IAAA,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;QACxBA,WAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAA,kDAAA,CAAoD,CAAC;AAC3E,QAAAA,WAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,CAAA,YAAA,EAAeC,YAAO,CAAC,SAAS,CAAC,CAAA,CAAE,CAAC;AAC3D,QAAA,KAAK,MAAM,OAAO,IAAI,SAAS,EAAE;AAC/B,YAAA,OAAO,CAAC,KAAK,GAAG,SAAS;AACzB,YAAA,MAAM,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC;QAClC;IACF;SAAO;QACLD,WAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,CAAA,mBAAA,CAAqB,CAAC;IAC/C;AACF;;;;"}
1
+ {"version":3,"file":"release-stale-jobs.cjs","sources":["../../src/routines/release-stale-jobs.ts"],"sourcesContent":[null],"names":["logger","inspect","JobTransitioner","RetryTransition"],"mappings":";;;;;;;;;;;;;;AAKA;;;;;;AAMG;AACI,eAAe,gBAAgB,CAAC,OAAgB,EAAE,UAAkB,EAAE,YAAoB,EAAA;IAC/F,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,SAAS,CAAC,UAAU,EAAE,YAAY,CAAC;AAEnE,IAAA,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;QACxBA,WAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAA,kDAAA,CAAoD,CAAC;AAC3E,QAAAA,WAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,CAAA,YAAA,EAAeC,YAAO,CAAC,SAAS,CAAC,CAAA,CAAE,CAAC;AAC3D,QAAA,KAAK,MAAM,OAAO,IAAI,SAAS,EAAE;AAC/B,YAAA,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS,EAAE;;;;AAI/B,gBAAA,MAAMC,+BAAe,CAAC,KAAK,CAAC,OAAO,EAAE,OAAO,EAAE,IAAIC,oBAAe,CAAC,8BAA8B,CAAC,CAAC;YACpG;iBAAO;;AAEL,gBAAA,OAAO,CAAC,KAAK,GAAG,SAAS;AACzB,gBAAA,MAAM,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC;YAClC;QACF;IACF;SAAO;QACLH,WAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,CAAA,mBAAA,CAAqB,CAAC;IAC/C;AACF;;;;"}
@@ -1,5 +1,14 @@
1
- import { logger } from '@sidequest/core';
1
+ import { logger, RetryTransition } from '@sidequest/core';
2
2
  import { inspect } from 'util';
3
+ import '../job/constants.js';
4
+ import 'node-cron';
5
+ import 'node:util';
6
+ import 'node:fs';
7
+ import 'node:url';
8
+ import 'node:path';
9
+ import 'piscina';
10
+ import '../constants.js';
11
+ import { JobTransitioner } from '../job/job-transitioner.js';
3
12
 
4
13
  /**
5
14
  * Finds and releases stale jobs, making them available for processing again.
@@ -14,8 +23,17 @@ async function releaseStaleJobs(backend, maxStaleMs, maxClaimedMs) {
14
23
  logger("Engine").info(`Stale jobs found, making them available to process`);
15
24
  logger("Engine").debug(`Stale jobs: ${inspect(staleJobs)}`);
16
25
  for (const jobData of staleJobs) {
17
- jobData.state = "waiting";
18
- await backend.updateJob(jobData);
26
+ if (jobData.state === "running") {
27
+ // We need to use the JobTransitioner to properly handle retries and state transitions
28
+ // This fixes the issue where the release of a stale job incremented the retry count and
29
+ // did not respect the maxRetries setting.
30
+ await JobTransitioner.apply(backend, jobData, new RetryTransition("Stale job released for retry"));
31
+ }
32
+ else {
33
+ // If it's "claimed", then the attempt count was not incremented, so we can just set it back to "waiting"
34
+ jobData.state = "waiting";
35
+ await backend.updateJob(jobData);
36
+ }
19
37
  }
20
38
  }
21
39
  else {
@@ -1 +1 @@
1
- {"version":3,"file":"release-stale-jobs.js","sources":["../../src/routines/release-stale-jobs.ts"],"sourcesContent":[null],"names":[],"mappings":";;;AAIA;;;;;;AAMG;AACI,eAAe,gBAAgB,CAAC,OAAgB,EAAE,UAAkB,EAAE,YAAoB,EAAA;IAC/F,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,SAAS,CAAC,UAAU,EAAE,YAAY,CAAC;AAEnE,IAAA,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;QACxB,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAA,kDAAA,CAAoD,CAAC;AAC3E,QAAA,MAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,CAAA,YAAA,EAAe,OAAO,CAAC,SAAS,CAAC,CAAA,CAAE,CAAC;AAC3D,QAAA,KAAK,MAAM,OAAO,IAAI,SAAS,EAAE;AAC/B,YAAA,OAAO,CAAC,KAAK,GAAG,SAAS;AACzB,YAAA,MAAM,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC;QAClC;IACF;SAAO;QACL,MAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,CAAA,mBAAA,CAAqB,CAAC;IAC/C;AACF;;;;"}
1
+ {"version":3,"file":"release-stale-jobs.js","sources":["../../src/routines/release-stale-jobs.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;;;;;;;AAKA;;;;;;AAMG;AACI,eAAe,gBAAgB,CAAC,OAAgB,EAAE,UAAkB,EAAE,YAAoB,EAAA;IAC/F,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,SAAS,CAAC,UAAU,EAAE,YAAY,CAAC;AAEnE,IAAA,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;QACxB,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAA,kDAAA,CAAoD,CAAC;AAC3E,QAAA,MAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,CAAA,YAAA,EAAe,OAAO,CAAC,SAAS,CAAC,CAAA,CAAE,CAAC;AAC3D,QAAA,KAAK,MAAM,OAAO,IAAI,SAAS,EAAE;AAC/B,YAAA,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS,EAAE;;;;AAI/B,gBAAA,MAAM,eAAe,CAAC,KAAK,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,eAAe,CAAC,8BAA8B,CAAC,CAAC;YACpG;iBAAO;;AAEL,gBAAA,OAAO,CAAC,KAAK,GAAG,SAAS;AACzB,gBAAA,MAAM,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC;YAClC;QACF;IACF;SAAO;QACL,MAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,CAAA,mBAAA,CAAqB,CAAC;IAC/C;AACF;;;;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sidequest/engine",
3
- "version": "1.13.3",
3
+ "version": "1.13.5",
4
4
  "description": "@sidequest/engine is the core engine of SideQuest, a distributed background job processing system for Node.js and TypeScript.",
5
5
  "keywords": [
6
6
  "nodejs",
@@ -42,12 +42,12 @@
42
42
  },
43
43
  "license": "LGPL-3.0-or-later",
44
44
  "dependencies": {
45
- "@sidequest/backend": "1.13.3",
46
- "@sidequest/core": "1.13.3",
45
+ "@sidequest/backend": "1.13.5",
46
+ "@sidequest/core": "1.13.5",
47
47
  "node-cron": "^4.2.1",
48
48
  "piscina": "^5.1.3"
49
49
  },
50
50
  "peerDependencies": {
51
- "sidequest": "1.13.3"
51
+ "sidequest": "1.13.5"
52
52
  }
53
53
  }