@sidequest/engine 1.15.0 → 1.16.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 (59) hide show
  1. package/dist/constants.cjs +7 -0
  2. package/dist/constants.cjs.map +1 -1
  3. package/dist/constants.d.ts +7 -1
  4. package/dist/constants.js +7 -1
  5. package/dist/constants.js.map +1 -1
  6. package/dist/engine.cjs +23 -2
  7. package/dist/engine.cjs.map +1 -1
  8. package/dist/engine.d.ts +44 -0
  9. package/dist/engine.js +24 -3
  10. package/dist/engine.js.map +1 -1
  11. package/dist/execution/dispatcher.cjs +5 -2
  12. package/dist/execution/dispatcher.cjs.map +1 -1
  13. package/dist/execution/dispatcher.js +5 -2
  14. package/dist/execution/dispatcher.js.map +1 -1
  15. package/dist/execution/executor-manager.cjs +62 -26
  16. package/dist/execution/executor-manager.cjs.map +1 -1
  17. package/dist/execution/executor-manager.d.ts +13 -1
  18. package/dist/execution/executor-manager.js +63 -27
  19. package/dist/execution/executor-manager.js.map +1 -1
  20. package/dist/index.cjs +5 -0
  21. package/dist/index.cjs.map +1 -1
  22. package/dist/index.d.ts +4 -1
  23. package/dist/index.js +3 -1
  24. package/dist/index.js.map +1 -1
  25. package/dist/job/job-builder.cjs +1 -0
  26. package/dist/job/job-builder.cjs.map +1 -1
  27. package/dist/job/job-builder.js +1 -0
  28. package/dist/job/job-builder.js.map +1 -1
  29. package/dist/routines/release-stale-jobs.cjs +1 -0
  30. package/dist/routines/release-stale-jobs.cjs.map +1 -1
  31. package/dist/routines/release-stale-jobs.js +1 -0
  32. package/dist/routines/release-stale-jobs.js.map +1 -1
  33. package/dist/shared-runner/inline-runner.cjs +44 -0
  34. package/dist/shared-runner/inline-runner.cjs.map +1 -0
  35. package/dist/shared-runner/inline-runner.d.ts +35 -0
  36. package/dist/shared-runner/inline-runner.js +42 -0
  37. package/dist/shared-runner/inline-runner.js.map +1 -0
  38. package/dist/shared-runner/job-runner.d.ts +24 -0
  39. package/dist/shared-runner/runner-pool.cjs +34 -2
  40. package/dist/shared-runner/runner-pool.cjs.map +1 -1
  41. package/dist/shared-runner/runner-pool.d.ts +10 -4
  42. package/dist/shared-runner/runner-pool.js +35 -3
  43. package/dist/shared-runner/runner-pool.js.map +1 -1
  44. package/dist/shared-runner/runner.cjs +45 -4
  45. package/dist/shared-runner/runner.cjs.map +1 -1
  46. package/dist/shared-runner/runner.d.ts +12 -2
  47. package/dist/shared-runner/runner.js +46 -5
  48. package/dist/shared-runner/runner.js.map +1 -1
  49. package/dist/workers/main.cjs +12 -77
  50. package/dist/workers/main.cjs.map +1 -1
  51. package/dist/workers/main.d.ts +1 -22
  52. package/dist/workers/main.js +12 -77
  53. package/dist/workers/main.js.map +1 -1
  54. package/dist/workers/worker-runtime.cjs +88 -0
  55. package/dist/workers/worker-runtime.cjs.map +1 -0
  56. package/dist/workers/worker-runtime.d.ts +44 -0
  57. package/dist/workers/worker-runtime.js +86 -0
  58. package/dist/workers/worker-runtime.js.map +1 -0
  59. package/package.json +4 -4
@@ -10,7 +10,7 @@ declare class ExecutorManager {
10
10
  private nonNullConfig;
11
11
  private activeByQueue;
12
12
  private activeJobs;
13
- private runnerPool;
13
+ private jobRunner;
14
14
  /**
15
15
  * Creates a new ExecutorManager.
16
16
  * @param backend The backend instance.
@@ -45,6 +45,18 @@ declare class ExecutorManager {
45
45
  * @param job The job data to execute.
46
46
  */
47
47
  execute(queueConfig: QueueConfig, job: JobData): Promise<void>;
48
+ /**
49
+ * Applies a job's final transition, tolerating the job row having disappeared.
50
+ *
51
+ * A job's row can be deleted while it runs (cleanup routine, an explicit delete, or a test
52
+ * truncating the table). Recording its terminal state is then impossible and safe to skip. This
53
+ * must never throw: `execute` is fire-and-forget, so an error here would surface as an unhandled
54
+ * rejection.
55
+ *
56
+ * @param job The job being finalized.
57
+ * @param transition The terminal transition to apply.
58
+ */
59
+ private applyTerminalTransition;
48
60
  /**
49
61
  * Destroys the runner pool and releases resources.
50
62
  */
@@ -1,10 +1,10 @@
1
- import { logger, RunTransition, RetryTransition, JobTransitionFactory } from '@sidequest/core';
2
- import EventEmitter from 'events';
1
+ import { logger, RunTransition, JobCanceled, JobTimeout, JobTransitionFactory, CancelTransition, RetryTransition } from '@sidequest/core';
3
2
  import { inspect } from 'util';
4
3
  import { JobTransitioner } from '../job/job-transitioner.js';
5
4
  import 'node:fs';
6
5
  import 'node:url';
7
6
  import 'node:path';
7
+ import { InlineRunner } from '../shared-runner/inline-runner.js';
8
8
  import { RunnerPool } from '../shared-runner/runner-pool.js';
9
9
 
10
10
  /**
@@ -15,7 +15,7 @@ class ExecutorManager {
15
15
  nonNullConfig;
16
16
  activeByQueue;
17
17
  activeJobs;
18
- runnerPool;
18
+ jobRunner;
19
19
  /**
20
20
  * Creates a new ExecutorManager.
21
21
  * @param backend The backend instance.
@@ -26,7 +26,10 @@ class ExecutorManager {
26
26
  this.nonNullConfig = nonNullConfig;
27
27
  this.activeByQueue = {};
28
28
  this.activeJobs = new Set();
29
- this.runnerPool = new RunnerPool(this.nonNullConfig);
29
+ this.jobRunner =
30
+ this.nonNullConfig.runner === "inline"
31
+ ? new InlineRunner(this.nonNullConfig)
32
+ : new RunnerPool(this.nonNullConfig);
30
33
  }
31
34
  /**
32
35
  * Gets the number of available slots for a given queue.
@@ -83,6 +86,8 @@ class ExecutorManager {
83
86
  */
84
87
  async execute(queueConfig, job) {
85
88
  let isRunning = false;
89
+ const controller = new AbortController();
90
+ let timeoutHandle;
86
91
  try {
87
92
  logger("Executor Manager").debug(`Submitting job ${job.id} for execution in queue ${queueConfig.name}`);
88
93
  // We call prepareJob here again to make sure the jobs are in the queues.
@@ -90,54 +95,85 @@ class ExecutorManager {
90
95
  this.queueJob(queueConfig, job);
91
96
  job = await JobTransitioner.apply(this.backend, job, new RunTransition());
92
97
  isRunning = true;
93
- const signal = new EventEmitter();
94
98
  const cancellationCheck = async () => {
95
99
  while (isRunning) {
96
100
  const watchedJob = await this.backend.getJob(job.id);
97
- if (watchedJob.state === "canceled") {
98
- logger("Executor Manager").debug(`Emitting abort signal for job ${job.id}`);
99
- signal.emit("abort");
101
+ if (watchedJob?.state === "canceled") {
102
+ logger("Executor Manager").debug(`Aborting job ${job.id}: canceled`);
103
+ controller.abort(new JobCanceled());
100
104
  isRunning = false;
101
105
  return;
102
106
  }
103
107
  await new Promise((r) => setTimeout(r, 1000));
104
108
  }
105
109
  };
106
- void cancellationCheck();
110
+ void cancellationCheck().catch((error) => {
111
+ logger("Executor Manager").error(`Cancellation watcher for job ${job.id} failed:`, error);
112
+ });
107
113
  logger("Executor Manager").debug(`Running job ${job.id} in queue ${queueConfig.name}`);
108
- const runPromise = this.runnerPool.run(job, signal);
114
+ const runPromise = this.jobRunner.run(job, controller.signal);
109
115
  if (job.timeout) {
110
- void new Promise(() => {
111
- setTimeout(() => {
112
- logger("Executor Manager").debug(`Job ${job.id} timed out after ${job.timeout}ms, aborting.`);
113
- signal.emit("abort");
114
- void JobTransitioner.apply(this.backend, job, new RetryTransition(`Job timed out after ${job.timeout}ms`));
115
- }, job.timeout);
116
- });
116
+ // Only signal the abort here. The terminal transition is decided when the run actually ends
117
+ // (resolve or reject) so a still-running job is never re-queued underneath itself.
118
+ timeoutHandle = setTimeout(() => {
119
+ logger("Executor Manager").debug(`Job ${job.id} timed out after ${job.timeout}ms, aborting.`);
120
+ controller.abort(new JobTimeout(job.timeout));
121
+ }, job.timeout);
117
122
  }
118
123
  const result = await runPromise;
119
124
  isRunning = false;
120
- logger("Executor Manager").debug(`Job ${job.id} completed with result: ${inspect(result)}`);
121
- const transition = JobTransitionFactory.create(result);
122
- await JobTransitioner.apply(this.backend, job, transition);
125
+ // The job ran to a conclusion and returned a state (even if a timeout/cancel was signaled);
126
+ // respect it and transition accordingly.
127
+ logger("Executor Manager").debug(`Job ${job.id} settled with result: ${inspect(result)}`);
128
+ await this.applyTerminalTransition(job, JobTransitionFactory.create(result));
123
129
  }
124
130
  catch (error) {
125
131
  isRunning = false;
126
132
  const err = error;
127
- if (err.message === "The task has been aborted") {
128
- logger("Executor Manager").debug(`Job ${job.id} was aborted`);
133
+ if (controller.signal.aborted) {
134
+ // The run produced no result because the worker was hard-killed (thread). Only a clear
135
+ // cancellation maps to canceled; every other abort reason (timeout, or anything else) defaults
136
+ // to a retry as a failsafe. The rejection is logged so a real error during the abort is kept.
137
+ const reason = controller.signal.reason;
138
+ logger("Executor Manager").debug(`Job ${job.id} was hard-killed (${String(reason)}): ${err.message}`);
139
+ const transition = reason instanceof JobCanceled
140
+ ? new CancelTransition()
141
+ : new RetryTransition(reason instanceof Error ? reason : new Error(`Job aborted: ${String(reason)}`));
142
+ await this.applyTerminalTransition(job, transition);
129
143
  }
130
144
  else {
131
145
  logger("Executor Manager").error(`Unhandled error while executing job ${job.id}: ${err.message}`);
132
- await JobTransitioner.apply(this.backend, job, new RetryTransition(err));
146
+ await this.applyTerminalTransition(job, new RetryTransition(err));
133
147
  }
134
148
  }
135
149
  finally {
136
150
  isRunning = false;
151
+ if (timeoutHandle) {
152
+ clearTimeout(timeoutHandle);
153
+ }
137
154
  this.activeByQueue[queueConfig.name].delete(job.id);
138
155
  this.activeJobs.delete(job.id);
139
156
  }
140
157
  }
158
+ /**
159
+ * Applies a job's final transition, tolerating the job row having disappeared.
160
+ *
161
+ * A job's row can be deleted while it runs (cleanup routine, an explicit delete, or a test
162
+ * truncating the table). Recording its terminal state is then impossible and safe to skip. This
163
+ * must never throw: `execute` is fire-and-forget, so an error here would surface as an unhandled
164
+ * rejection.
165
+ *
166
+ * @param job The job being finalized.
167
+ * @param transition The terminal transition to apply.
168
+ */
169
+ async applyTerminalTransition(job, transition) {
170
+ try {
171
+ await JobTransitioner.apply(this.backend, job, transition);
172
+ }
173
+ catch (error) {
174
+ logger("Executor Manager").warn(`Could not record terminal state for job ${job.id} (it may no longer exist): ${error instanceof Error ? error.message : String(error)}`);
175
+ }
176
+ }
141
177
  /**
142
178
  * Destroys the runner pool and releases resources.
143
179
  */
@@ -145,14 +181,14 @@ class ExecutorManager {
145
181
  await new Promise((resolve, reject) => {
146
182
  const checkJobs = () => {
147
183
  if (this.totalActiveWorkers() === 0) {
148
- logger("ExecutorManager").info("All active jobs finished. Destroying runner pool.");
184
+ logger("ExecutorManager").info("All active jobs finished. Destroying runner.");
149
185
  try {
150
- this.runnerPool.destroy();
151
- logger("ExecutorManager").debug("Runner pool destroyed. Returning.");
186
+ this.jobRunner.destroy();
187
+ logger("ExecutorManager").debug("Runner destroyed. Returning.");
152
188
  resolve();
153
189
  }
154
190
  catch (error) {
155
- logger("ExecutorManager").error("Error while destroying runner pool:", error);
191
+ logger("ExecutorManager").error("Error while destroying runner:", error);
156
192
  reject(error);
157
193
  }
158
194
  }
@@ -1 +1 @@
1
- {"version":3,"file":"executor-manager.js","sources":["../../src/execution/executor-manager.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"executor-manager.js","sources":["../../src/execution/executor-manager.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
package/dist/index.cjs CHANGED
@@ -13,16 +13,19 @@ var grantQueueConfig = require('./queue/grant-queue-config.cjs');
13
13
  var cleanupFinishedJob = require('./routines/cleanup-finished-job.cjs');
14
14
  var releaseStaleJobs = require('./routines/release-stale-jobs.cjs');
15
15
  var runner = require('./shared-runner/runner.cjs');
16
+ var inlineRunner = require('./shared-runner/inline-runner.cjs');
16
17
  var manualLoader = require('./shared-runner/manual-loader.cjs');
17
18
  var runnerPool = require('./shared-runner/runner-pool.cjs');
18
19
  var _import = require('./utils/import.cjs');
19
20
  var shutdown = require('./utils/shutdown.cjs');
20
21
  var main = require('./workers/main.cjs');
22
+ var workerRuntime = require('./workers/worker-runtime.cjs');
21
23
 
22
24
 
23
25
 
24
26
  exports.DEFAULT_RUNNER_PATH = constants.DEFAULT_RUNNER_PATH;
25
27
  exports.DEFAULT_WORKER_PATH = constants.DEFAULT_WORKER_PATH;
28
+ exports.WORKER_PROCESS_FLAG = constants.WORKER_PROCESS_FLAG;
26
29
  exports.Engine = engine.Engine;
27
30
  exports.Dispatcher = dispatcher.Dispatcher;
28
31
  exports.ExecutorManager = executorManager.ExecutorManager;
@@ -36,6 +39,7 @@ exports.grantQueueConfig = grantQueueConfig.grantQueueConfig;
36
39
  exports.cleanupFinishedJobs = cleanupFinishedJob.cleanupFinishedJobs;
37
40
  exports.releaseStaleJobs = releaseStaleJobs.releaseStaleJobs;
38
41
  exports.run = runner;
42
+ exports.InlineRunner = inlineRunner.InlineRunner;
39
43
  exports.MANUAL_SCRIPT_TAG = manualLoader.MANUAL_SCRIPT_TAG;
40
44
  exports.findSidequestJobsScriptInParentDirs = manualLoader.findSidequestJobsScriptInParentDirs;
41
45
  exports.resolveScriptPath = manualLoader.resolveScriptPath;
@@ -44,4 +48,5 @@ exports.importSidequest = _import.importSidequest;
44
48
  exports.clearGracefulShutdown = shutdown.clearGracefulShutdown;
45
49
  exports.gracefulShutdown = shutdown.gracefulShutdown;
46
50
  exports.MainWorker = main.MainWorker;
51
+ exports.WorkerRuntime = workerRuntime.WorkerRuntime;
47
52
  //# sourceMappingURL=index.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
package/dist/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- export { DEFAULT_RUNNER_PATH, DEFAULT_WORKER_PATH } from './constants.js';
1
+ export { DEFAULT_RUNNER_PATH, DEFAULT_WORKER_PATH, WORKER_PROCESS_FLAG } from './constants.js';
2
2
  export { Engine, EngineConfig, NonNullableEngineConfig } from './engine.js';
3
3
  export { Dispatcher } from './execution/dispatcher.js';
4
4
  export { ExecutorManager } from './execution/executor-manager.js';
@@ -12,8 +12,11 @@ export { cleanupFinishedJobs } from './routines/cleanup-finished-job.js';
12
12
  export { releaseStaleJobs } from './routines/release-stale-jobs.js';
13
13
  import * as runner from './shared-runner/runner.js';
14
14
  export { runner as run };
15
+ export { InlineRunner } from './shared-runner/inline-runner.js';
16
+ export { JobRunner } from './shared-runner/job-runner.js';
15
17
  export { MANUAL_SCRIPT_TAG, findSidequestJobsScriptInParentDirs, resolveScriptPath } from './shared-runner/manual-loader.js';
16
18
  export { RunnerPool } from './shared-runner/runner-pool.js';
17
19
  export { importSidequest } from './utils/import.js';
18
20
  export { clearGracefulShutdown, gracefulShutdown } from './utils/shutdown.js';
19
21
  export { MainWorker } from './workers/main.js';
22
+ export { WorkerRuntime } from './workers/worker-runtime.js';
package/dist/index.js CHANGED
@@ -1,4 +1,4 @@
1
- export { DEFAULT_RUNNER_PATH, DEFAULT_WORKER_PATH } from './constants.js';
1
+ export { DEFAULT_RUNNER_PATH, DEFAULT_WORKER_PATH, WORKER_PROCESS_FLAG } from './constants.js';
2
2
  export { Engine } from './engine.js';
3
3
  export { Dispatcher } from './execution/dispatcher.js';
4
4
  export { ExecutorManager } from './execution/executor-manager.js';
@@ -12,9 +12,11 @@ export { cleanupFinishedJobs } from './routines/cleanup-finished-job.js';
12
12
  export { releaseStaleJobs } from './routines/release-stale-jobs.js';
13
13
  import * as runner from './shared-runner/runner.js';
14
14
  export { runner as run };
15
+ export { InlineRunner } from './shared-runner/inline-runner.js';
15
16
  export { MANUAL_SCRIPT_TAG, findSidequestJobsScriptInParentDirs, resolveScriptPath } from './shared-runner/manual-loader.js';
16
17
  export { RunnerPool } from './shared-runner/runner-pool.js';
17
18
  export { importSidequest } from './utils/import.js';
18
19
  export { clearGracefulShutdown, gracefulShutdown } from './utils/shutdown.js';
19
20
  export { MainWorker } from './workers/main.js';
21
+ export { WorkerRuntime } from './workers/worker-runtime.js';
20
22
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;"}
@@ -6,6 +6,7 @@ var node_util = require('node:util');
6
6
  require('node:fs');
7
7
  require('node:url');
8
8
  var manualLoader = require('../shared-runner/manual-loader.cjs');
9
+ require('node:worker_threads');
9
10
  require('piscina');
10
11
  require('../constants.cjs');
11
12
  var constants = require('./constants.cjs');
@@ -1 +1 @@
1
- {"version":3,"file":"job-builder.cjs","sources":["../../src/job/job-builder.ts"],"sourcesContent":[null],"names":["JOB_BUILDER_FALLBACK","MANUAL_SCRIPT_TAG","UniquenessFactory","logger","inspect","ScheduledJobRegistry"],"mappings":"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"}
1
+ {"version":3,"file":"job-builder.cjs","sources":["../../src/job/job-builder.ts"],"sourcesContent":[null],"names":["JOB_BUILDER_FALLBACK","MANUAL_SCRIPT_TAG","UniquenessFactory","logger","inspect","ScheduledJobRegistry"],"mappings":"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"}
@@ -4,6 +4,7 @@ import { inspect } from 'node:util';
4
4
  import 'node:fs';
5
5
  import 'node:url';
6
6
  import { MANUAL_SCRIPT_TAG } from '../shared-runner/manual-loader.js';
7
+ import 'node:worker_threads';
7
8
  import 'piscina';
8
9
  import '../constants.js';
9
10
  import { JOB_BUILDER_FALLBACK } from './constants.js';
@@ -1 +1 @@
1
- {"version":3,"file":"job-builder.js","sources":["../../src/job/job-builder.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"job-builder.js","sources":["../../src/job/job-builder.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
@@ -8,6 +8,7 @@ require('node:util');
8
8
  require('node:fs');
9
9
  require('node:url');
10
10
  require('node:path');
11
+ require('node:worker_threads');
11
12
  require('piscina');
12
13
  require('../constants.cjs');
13
14
  var jobTransitioner = require('../job/job-transitioner.cjs');
@@ -1 +1 @@
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
+ {"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;;;;"}
@@ -6,6 +6,7 @@ import 'node:util';
6
6
  import 'node:fs';
7
7
  import 'node:url';
8
8
  import 'node:path';
9
+ import 'node:worker_threads';
9
10
  import 'piscina';
10
11
  import '../constants.js';
11
12
  import { JobTransitioner } from '../job/job-transitioner.js';
@@ -1 +1 @@
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;;;;"}
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;;;;"}
@@ -0,0 +1,44 @@
1
+ 'use strict';
2
+
3
+ var core = require('@sidequest/core');
4
+ var runner = require('./runner.cjs');
5
+
6
+ /**
7
+ * Runs jobs in the current process/thread instead of a worker thread pool.
8
+ *
9
+ * Used by the inline execution mode (`runner: "inline"`). Unlike {@link RunnerPool}, a running job
10
+ * cannot be forcibly aborted: cancellation and timeouts are best-effort only, and a CPU-bound job
11
+ * will block the event loop. In exchange, jobs run in the host process and can reach live
12
+ * in-process state (the basis for framework integrations like NestJS).
13
+ */
14
+ class InlineRunner {
15
+ nonNullConfig;
16
+ /**
17
+ * Creates a new InlineRunner.
18
+ * @param nonNullConfig The non-nullable engine configuration.
19
+ */
20
+ constructor(nonNullConfig) {
21
+ this.nonNullConfig = nonNullConfig;
22
+ }
23
+ /**
24
+ * Runs a job in the current process. The abort signal is forwarded to the job (as
25
+ * `this.abortSignal`) so it can stop cooperatively: inline execution has no separate thread to
26
+ * terminate, so this is the only way timeouts and cancellation can take effect.
27
+ * @param job The job data to run.
28
+ * @param signal Abort signal handed to the job for cooperative cancellation.
29
+ * @returns A promise resolving to the job result.
30
+ */
31
+ run(job, signal) {
32
+ core.logger("InlineRunner").debug(`Running job ${job.id} inline`);
33
+ return runner.default({ jobData: job, config: this.nonNullConfig, inline: true, signal });
34
+ }
35
+ /**
36
+ * Releases resources. No-op for the inline runner.
37
+ */
38
+ destroy() {
39
+ // There is no pool to tear down. In-flight jobs are awaited by the ExecutorManager.
40
+ }
41
+ }
42
+
43
+ exports.InlineRunner = InlineRunner;
44
+ //# sourceMappingURL=inline-runner.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inline-runner.cjs","sources":["../../src/shared-runner/inline-runner.ts"],"sourcesContent":[null],"names":["logger","run"],"mappings":";;;;;AAKA;;;;;;;AAOG;MACU,YAAY,CAAA;AAKH,IAAA,aAAA;AAJpB;;;AAGG;AACH,IAAA,WAAA,CAAoB,aAAsC,EAAA;QAAtC,IAAA,CAAA,aAAa,GAAb,aAAa;IAA4B;AAE7D;;;;;;;AAOG;IACH,GAAG,CAAC,GAAY,EAAE,MAAoB,EAAA;AACpC,QAAAA,WAAM,CAAC,cAAc,CAAC,CAAC,KAAK,CAAC,CAAA,YAAA,EAAe,GAAG,CAAC,EAAE,CAAA,OAAA,CAAS,CAAC;QAC5D,OAAOC,cAAG,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,aAAa,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;IAChF;AAEA;;AAEG;IACH,OAAO,GAAA;;IAEP;AACD;;;;"}
@@ -0,0 +1,35 @@
1
+ import { JobData, JobResult } from '@sidequest/core';
2
+ import { NonNullableEngineConfig } from '../engine.js';
3
+ import { JobRunner } from './job-runner.js';
4
+
5
+ /**
6
+ * Runs jobs in the current process/thread instead of a worker thread pool.
7
+ *
8
+ * Used by the inline execution mode (`runner: "inline"`). Unlike {@link RunnerPool}, a running job
9
+ * cannot be forcibly aborted: cancellation and timeouts are best-effort only, and a CPU-bound job
10
+ * will block the event loop. In exchange, jobs run in the host process and can reach live
11
+ * in-process state (the basis for framework integrations like NestJS).
12
+ */
13
+ declare class InlineRunner implements JobRunner {
14
+ private nonNullConfig;
15
+ /**
16
+ * Creates a new InlineRunner.
17
+ * @param nonNullConfig The non-nullable engine configuration.
18
+ */
19
+ constructor(nonNullConfig: NonNullableEngineConfig);
20
+ /**
21
+ * Runs a job in the current process. The abort signal is forwarded to the job (as
22
+ * `this.abortSignal`) so it can stop cooperatively: inline execution has no separate thread to
23
+ * terminate, so this is the only way timeouts and cancellation can take effect.
24
+ * @param job The job data to run.
25
+ * @param signal Abort signal handed to the job for cooperative cancellation.
26
+ * @returns A promise resolving to the job result.
27
+ */
28
+ run(job: JobData, signal?: AbortSignal): Promise<JobResult>;
29
+ /**
30
+ * Releases resources. No-op for the inline runner.
31
+ */
32
+ destroy(): void;
33
+ }
34
+
35
+ export { InlineRunner };
@@ -0,0 +1,42 @@
1
+ import { logger } from '@sidequest/core';
2
+ import run from './runner.js';
3
+
4
+ /**
5
+ * Runs jobs in the current process/thread instead of a worker thread pool.
6
+ *
7
+ * Used by the inline execution mode (`runner: "inline"`). Unlike {@link RunnerPool}, a running job
8
+ * cannot be forcibly aborted: cancellation and timeouts are best-effort only, and a CPU-bound job
9
+ * will block the event loop. In exchange, jobs run in the host process and can reach live
10
+ * in-process state (the basis for framework integrations like NestJS).
11
+ */
12
+ class InlineRunner {
13
+ nonNullConfig;
14
+ /**
15
+ * Creates a new InlineRunner.
16
+ * @param nonNullConfig The non-nullable engine configuration.
17
+ */
18
+ constructor(nonNullConfig) {
19
+ this.nonNullConfig = nonNullConfig;
20
+ }
21
+ /**
22
+ * Runs a job in the current process. The abort signal is forwarded to the job (as
23
+ * `this.abortSignal`) so it can stop cooperatively: inline execution has no separate thread to
24
+ * terminate, so this is the only way timeouts and cancellation can take effect.
25
+ * @param job The job data to run.
26
+ * @param signal Abort signal handed to the job for cooperative cancellation.
27
+ * @returns A promise resolving to the job result.
28
+ */
29
+ run(job, signal) {
30
+ logger("InlineRunner").debug(`Running job ${job.id} inline`);
31
+ return run({ jobData: job, config: this.nonNullConfig, inline: true, signal });
32
+ }
33
+ /**
34
+ * Releases resources. No-op for the inline runner.
35
+ */
36
+ destroy() {
37
+ // There is no pool to tear down. In-flight jobs are awaited by the ExecutorManager.
38
+ }
39
+ }
40
+
41
+ export { InlineRunner };
42
+ //# sourceMappingURL=inline-runner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inline-runner.js","sources":["../../src/shared-runner/inline-runner.ts"],"sourcesContent":[null],"names":[],"mappings":";;;AAKA;;;;;;;AAOG;MACU,YAAY,CAAA;AAKH,IAAA,aAAA;AAJpB;;;AAGG;AACH,IAAA,WAAA,CAAoB,aAAsC,EAAA;QAAtC,IAAA,CAAA,aAAa,GAAb,aAAa;IAA4B;AAE7D;;;;;;;AAOG;IACH,GAAG,CAAC,GAAY,EAAE,MAAoB,EAAA;AACpC,QAAA,MAAM,CAAC,cAAc,CAAC,CAAC,KAAK,CAAC,CAAA,YAAA,EAAe,GAAG,CAAC,EAAE,CAAA,OAAA,CAAS,CAAC;QAC5D,OAAO,GAAG,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,aAAa,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;IAChF;AAEA;;AAEG;IACH,OAAO,GAAA;;IAEP;AACD;;;;"}
@@ -0,0 +1,24 @@
1
+ import { JobData, JobResult } from '@sidequest/core';
2
+
3
+ /**
4
+ * Abstraction over how a claimed job is actually executed.
5
+ *
6
+ * Implemented by the thread-based {@link RunnerPool} (piscina worker pool) and the
7
+ * {@link InlineRunner} (same-process execution). The {@link ExecutorManager} picks one based on
8
+ * the engine's `runner` configuration.
9
+ */
10
+ interface JobRunner {
11
+ /**
12
+ * Runs a job and resolves with its result.
13
+ * @param job The job data to run.
14
+ * @param signal Abort signal for the run. The thread runner uses it to terminate the worker; the
15
+ * inline runner forwards it to the job so it can stop cooperatively.
16
+ */
17
+ run(job: JobData, signal?: AbortSignal): Promise<JobResult>;
18
+ /**
19
+ * Releases any resources held by the runner.
20
+ */
21
+ destroy(): void;
22
+ }
23
+
24
+ export type { JobRunner };
@@ -1,6 +1,7 @@
1
1
  'use strict';
2
2
 
3
3
  var core = require('@sidequest/core');
4
+ var node_worker_threads = require('node:worker_threads');
4
5
  var Piscina = require('piscina');
5
6
  var constants = require('../constants.cjs');
6
7
 
@@ -27,13 +28,44 @@ class RunnerPool {
27
28
  }
28
29
  /**
29
30
  * Runs a job in the worker pool.
31
+ *
32
+ * With `abortGracePeriodMs === 0` (default), an abort terminates the worker immediately. With a
33
+ * positive grace period, the abort is delivered to the job cooperatively over a transferred port
34
+ * (so it can stop via `this.abortSignal`), and the worker is only forcibly terminated if it has
35
+ * not finished within the grace period.
36
+ *
30
37
  * @param job The job data to run.
31
- * @param signal Optional event emitter for cancellation.
38
+ * @param signal Optional abort signal for cancellation/timeout.
32
39
  * @returns A promise resolving to the job result.
33
40
  */
34
41
  run(job, signal) {
35
42
  core.logger("RunnerPool").debug(`Running job ${job.id} in pool`);
36
- return this.pool.run({ jobData: job, config: this.nonNullConfig }, { signal });
43
+ // Already aborted before we could start (e.g. canceled between claim and dispatch): don't run it.
44
+ if (signal?.aborted) {
45
+ return Promise.reject(signal.reason instanceof Error ? signal.reason : new Error("Job aborted before execution"));
46
+ }
47
+ const grace = this.nonNullConfig.abortGracePeriodMs;
48
+ if (!signal || grace <= 0) {
49
+ // Abort terminates the worker immediately.
50
+ return this.pool.run({ jobData: job, config: this.nonNullConfig }, { signal });
51
+ }
52
+ // Deliver the abort cooperatively first, then hard-terminate after the grace period.
53
+ const channel = new node_worker_threads.MessageChannel();
54
+ const hardKill = new AbortController();
55
+ let graceTimer;
56
+ const onAbort = () => {
57
+ channel.port1.postMessage(core.serializeAbortReason(signal.reason));
58
+ graceTimer = setTimeout(() => hardKill.abort(), grace);
59
+ };
60
+ signal.addEventListener("abort", onAbort, { once: true });
61
+ return this.pool
62
+ .run({ jobData: job, config: this.nonNullConfig, abortPort: channel.port2 }, { transferList: [channel.port2], signal: hardKill.signal })
63
+ .finally(() => {
64
+ if (graceTimer)
65
+ clearTimeout(graceTimer);
66
+ signal.removeEventListener("abort", onAbort);
67
+ channel.port1.close();
68
+ });
37
69
  }
38
70
  /**
39
71
  * Destroys the worker pool and releases resources.