@sidequest/engine 1.13.2 → 1.13.3
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.
- package/dist/execution/dispatcher.cjs +5 -1
- package/dist/execution/dispatcher.cjs.map +1 -1
- package/dist/execution/dispatcher.js +5 -1
- package/dist/execution/dispatcher.js.map +1 -1
- package/dist/execution/executor-manager.cjs +31 -25
- package/dist/execution/executor-manager.cjs.map +1 -1
- package/dist/execution/executor-manager.d.ts +6 -0
- package/dist/execution/executor-manager.js +32 -26
- package/dist/execution/executor-manager.js.map +1 -1
- package/package.json +4 -4
|
@@ -45,12 +45,16 @@ class Dispatcher {
|
|
|
45
45
|
await this.sleep(this.sleepDelay);
|
|
46
46
|
continue;
|
|
47
47
|
}
|
|
48
|
-
const jobs = await this.backend.claimPendingJob(queue.name, availableSlots);
|
|
48
|
+
const jobs = await this.backend.claimPendingJob(queue.name, Math.min(availableSlots, globalSlots));
|
|
49
49
|
if (jobs.length > 0) {
|
|
50
50
|
// if a job was found on any queue do not sleep
|
|
51
51
|
shouldSleep = false;
|
|
52
52
|
}
|
|
53
53
|
for (const job of jobs) {
|
|
54
|
+
// adds jobs to active sets before execution to avoid race conditions
|
|
55
|
+
// because the execution is not awaited. This way we ensure that available slots
|
|
56
|
+
// are correctly calculated.
|
|
57
|
+
this.executorManager.queueJob(queue, job);
|
|
54
58
|
// does not await for job execution.
|
|
55
59
|
void this.executorManager.execute(queue, job);
|
|
56
60
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dispatcher.cjs","sources":["../../src/execution/dispatcher.ts"],"sourcesContent":[null],"names":["logger"],"mappings":";;;;AAKA;;AAEG;MACU,UAAU,CAAA;AAWX,IAAA,OAAA;AACA,IAAA,YAAA;AACA,IAAA,eAAA;AACA,IAAA,UAAA;;IAZF,SAAS,GAAG,KAAK;AAEzB;;;;;AAKG;AACH,IAAA,WAAA,CACU,OAAgB,EAChB,YAA0B,EAC1B,eAAgC,EAChC,UAAkB,EAAA;QAHlB,IAAA,CAAA,OAAO,GAAP,OAAO;QACP,IAAA,CAAA,YAAY,GAAZ,YAAY;QACZ,IAAA,CAAA,eAAe,GAAf,eAAe;QACf,IAAA,CAAA,UAAU,GAAV,UAAU;IACjB;AAEH;;;AAGG;AACK,IAAA,MAAM,MAAM,GAAA;AAClB,QAAA,OAAO,IAAI,CAAC,SAAS,EAAE;YACrB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,+BAA+B,EAAE;YAExE,IAAI,WAAW,GAAG,IAAI;AAEtB,YAAA,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE;gBAC1B,MAAM,cAAc,GAAG,IAAI,CAAC,eAAe,CAAC,qBAAqB,CAAC,KAAK,CAAC;AACxE,gBAAA,IAAI,cAAc,IAAI,CAAC,EAAE;AACvB,oBAAAA,WAAM,CAAC,YAAY,CAAC,CAAC,KAAK,CAAC,CAAA,MAAA,EAAS,KAAK,CAAC,IAAI,CAAA,eAAA,CAAiB,CAAC;oBAChE,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC;oBACjC;gBACF;gBAEA,MAAM,WAAW,GAAG,IAAI,CAAC,eAAe,CAAC,oBAAoB,EAAE;AAC/D,gBAAA,IAAI,WAAW,IAAI,CAAC,EAAE;oBACpBA,WAAM,CAAC,YAAY,CAAC,CAAC,KAAK,CAAC,CAAA,iCAAA,CAAmC,CAAC;oBAC/D,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC;oBACjC;gBACF;
|
|
1
|
+
{"version":3,"file":"dispatcher.cjs","sources":["../../src/execution/dispatcher.ts"],"sourcesContent":[null],"names":["logger"],"mappings":";;;;AAKA;;AAEG;MACU,UAAU,CAAA;AAWX,IAAA,OAAA;AACA,IAAA,YAAA;AACA,IAAA,eAAA;AACA,IAAA,UAAA;;IAZF,SAAS,GAAG,KAAK;AAEzB;;;;;AAKG;AACH,IAAA,WAAA,CACU,OAAgB,EAChB,YAA0B,EAC1B,eAAgC,EAChC,UAAkB,EAAA;QAHlB,IAAA,CAAA,OAAO,GAAP,OAAO;QACP,IAAA,CAAA,YAAY,GAAZ,YAAY;QACZ,IAAA,CAAA,eAAe,GAAf,eAAe;QACf,IAAA,CAAA,UAAU,GAAV,UAAU;IACjB;AAEH;;;AAGG;AACK,IAAA,MAAM,MAAM,GAAA;AAClB,QAAA,OAAO,IAAI,CAAC,SAAS,EAAE;YACrB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,+BAA+B,EAAE;YAExE,IAAI,WAAW,GAAG,IAAI;AAEtB,YAAA,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE;gBAC1B,MAAM,cAAc,GAAG,IAAI,CAAC,eAAe,CAAC,qBAAqB,CAAC,KAAK,CAAC;AACxE,gBAAA,IAAI,cAAc,IAAI,CAAC,EAAE;AACvB,oBAAAA,WAAM,CAAC,YAAY,CAAC,CAAC,KAAK,CAAC,CAAA,MAAA,EAAS,KAAK,CAAC,IAAI,CAAA,eAAA,CAAiB,CAAC;oBAChE,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC;oBACjC;gBACF;gBAEA,MAAM,WAAW,GAAG,IAAI,CAAC,eAAe,CAAC,oBAAoB,EAAE;AAC/D,gBAAA,IAAI,WAAW,IAAI,CAAC,EAAE;oBACpBA,WAAM,CAAC,YAAY,CAAC,CAAC,KAAK,CAAC,CAAA,iCAAA,CAAmC,CAAC;oBAC/D,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC;oBACjC;gBACF;gBAEA,MAAM,IAAI,GAAc,MAAM,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC;AAE7G,gBAAA,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;;oBAEnB,WAAW,GAAG,KAAK;gBACrB;AAEA,gBAAA,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE;;;;oBAItB,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,KAAK,EAAE,GAAG,CAAC;;oBAEzC,KAAK,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC;gBAC/C;YACF;YAEA,IAAI,WAAW,EAAE;gBACf,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC;YACnC;QACF;IACF;AAEA;;;;;AAKG;AACK,IAAA,KAAK,CAAC,KAAa,EAAA;AACzB,QAAA,OAAO,IAAI,OAAO,CAAC,CAAC,CAAC,KAAK,UAAU,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;IACjD;AAEA;;AAEG;IACH,KAAK,GAAA;QACHA,WAAM,CAAC,YAAY,CAAC,CAAC,KAAK,CAAC,CAAA,sBAAA,CAAwB,CAAC;AACpD,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI;AACrB,QAAA,KAAK,IAAI,CAAC,MAAM,EAAE;IACpB;AAEA;;;AAGG;AACH,IAAA,MAAM,IAAI,GAAA;AACR,QAAA,IAAI,CAAC,SAAS,GAAG,KAAK;AACtB,QAAA,MAAM,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE;IACtC;AACD;;;;"}
|
|
@@ -43,12 +43,16 @@ class Dispatcher {
|
|
|
43
43
|
await this.sleep(this.sleepDelay);
|
|
44
44
|
continue;
|
|
45
45
|
}
|
|
46
|
-
const jobs = await this.backend.claimPendingJob(queue.name, availableSlots);
|
|
46
|
+
const jobs = await this.backend.claimPendingJob(queue.name, Math.min(availableSlots, globalSlots));
|
|
47
47
|
if (jobs.length > 0) {
|
|
48
48
|
// if a job was found on any queue do not sleep
|
|
49
49
|
shouldSleep = false;
|
|
50
50
|
}
|
|
51
51
|
for (const job of jobs) {
|
|
52
|
+
// adds jobs to active sets before execution to avoid race conditions
|
|
53
|
+
// because the execution is not awaited. This way we ensure that available slots
|
|
54
|
+
// are correctly calculated.
|
|
55
|
+
this.executorManager.queueJob(queue, job);
|
|
52
56
|
// does not await for job execution.
|
|
53
57
|
void this.executorManager.execute(queue, job);
|
|
54
58
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dispatcher.js","sources":["../../src/execution/dispatcher.ts"],"sourcesContent":[null],"names":[],"mappings":";;AAKA;;AAEG;MACU,UAAU,CAAA;AAWX,IAAA,OAAA;AACA,IAAA,YAAA;AACA,IAAA,eAAA;AACA,IAAA,UAAA;;IAZF,SAAS,GAAG,KAAK;AAEzB;;;;;AAKG;AACH,IAAA,WAAA,CACU,OAAgB,EAChB,YAA0B,EAC1B,eAAgC,EAChC,UAAkB,EAAA;QAHlB,IAAA,CAAA,OAAO,GAAP,OAAO;QACP,IAAA,CAAA,YAAY,GAAZ,YAAY;QACZ,IAAA,CAAA,eAAe,GAAf,eAAe;QACf,IAAA,CAAA,UAAU,GAAV,UAAU;IACjB;AAEH;;;AAGG;AACK,IAAA,MAAM,MAAM,GAAA;AAClB,QAAA,OAAO,IAAI,CAAC,SAAS,EAAE;YACrB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,+BAA+B,EAAE;YAExE,IAAI,WAAW,GAAG,IAAI;AAEtB,YAAA,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE;gBAC1B,MAAM,cAAc,GAAG,IAAI,CAAC,eAAe,CAAC,qBAAqB,CAAC,KAAK,CAAC;AACxE,gBAAA,IAAI,cAAc,IAAI,CAAC,EAAE;AACvB,oBAAA,MAAM,CAAC,YAAY,CAAC,CAAC,KAAK,CAAC,CAAA,MAAA,EAAS,KAAK,CAAC,IAAI,CAAA,eAAA,CAAiB,CAAC;oBAChE,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC;oBACjC;gBACF;gBAEA,MAAM,WAAW,GAAG,IAAI,CAAC,eAAe,CAAC,oBAAoB,EAAE;AAC/D,gBAAA,IAAI,WAAW,IAAI,CAAC,EAAE;oBACpB,MAAM,CAAC,YAAY,CAAC,CAAC,KAAK,CAAC,CAAA,iCAAA,CAAmC,CAAC;oBAC/D,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC;oBACjC;gBACF;
|
|
1
|
+
{"version":3,"file":"dispatcher.js","sources":["../../src/execution/dispatcher.ts"],"sourcesContent":[null],"names":[],"mappings":";;AAKA;;AAEG;MACU,UAAU,CAAA;AAWX,IAAA,OAAA;AACA,IAAA,YAAA;AACA,IAAA,eAAA;AACA,IAAA,UAAA;;IAZF,SAAS,GAAG,KAAK;AAEzB;;;;;AAKG;AACH,IAAA,WAAA,CACU,OAAgB,EAChB,YAA0B,EAC1B,eAAgC,EAChC,UAAkB,EAAA;QAHlB,IAAA,CAAA,OAAO,GAAP,OAAO;QACP,IAAA,CAAA,YAAY,GAAZ,YAAY;QACZ,IAAA,CAAA,eAAe,GAAf,eAAe;QACf,IAAA,CAAA,UAAU,GAAV,UAAU;IACjB;AAEH;;;AAGG;AACK,IAAA,MAAM,MAAM,GAAA;AAClB,QAAA,OAAO,IAAI,CAAC,SAAS,EAAE;YACrB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,+BAA+B,EAAE;YAExE,IAAI,WAAW,GAAG,IAAI;AAEtB,YAAA,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE;gBAC1B,MAAM,cAAc,GAAG,IAAI,CAAC,eAAe,CAAC,qBAAqB,CAAC,KAAK,CAAC;AACxE,gBAAA,IAAI,cAAc,IAAI,CAAC,EAAE;AACvB,oBAAA,MAAM,CAAC,YAAY,CAAC,CAAC,KAAK,CAAC,CAAA,MAAA,EAAS,KAAK,CAAC,IAAI,CAAA,eAAA,CAAiB,CAAC;oBAChE,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC;oBACjC;gBACF;gBAEA,MAAM,WAAW,GAAG,IAAI,CAAC,eAAe,CAAC,oBAAoB,EAAE;AAC/D,gBAAA,IAAI,WAAW,IAAI,CAAC,EAAE;oBACpB,MAAM,CAAC,YAAY,CAAC,CAAC,KAAK,CAAC,CAAA,iCAAA,CAAmC,CAAC;oBAC/D,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC;oBACjC;gBACF;gBAEA,MAAM,IAAI,GAAc,MAAM,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC;AAE7G,gBAAA,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;;oBAEnB,WAAW,GAAG,KAAK;gBACrB;AAEA,gBAAA,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE;;;;oBAItB,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,KAAK,EAAE,GAAG,CAAC;;oBAEzC,KAAK,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC;gBAC/C;YACF;YAEA,IAAI,WAAW,EAAE;gBACf,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC;YACnC;QACF;IACF;AAEA;;;;;AAKG;AACK,IAAA,KAAK,CAAC,KAAa,EAAA;AACzB,QAAA,OAAO,IAAI,OAAO,CAAC,CAAC,CAAC,KAAK,UAAU,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;IACjD;AAEA;;AAEG;IACH,KAAK,GAAA;QACH,MAAM,CAAC,YAAY,CAAC,CAAC,KAAK,CAAC,CAAA,sBAAA,CAAwB,CAAC;AACpD,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI;AACrB,QAAA,KAAK,IAAI,CAAC,MAAM,EAAE;IACpB;AAEA;;;AAGG;AACH,IAAA,MAAM,IAAI,GAAA;AACR,QAAA,IAAI,CAAC,SAAS,GAAG,KAAK;AACtB,QAAA,MAAM,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE;IACtC;AACD;;;;"}
|
|
@@ -67,39 +67,45 @@ class ExecutorManager {
|
|
|
67
67
|
return this.activeJobs.size;
|
|
68
68
|
}
|
|
69
69
|
/**
|
|
70
|
-
*
|
|
70
|
+
* Prepares a job for execution by marking it as active and adding it to a queue slot.
|
|
71
71
|
* @param queueConfig The queue configuration.
|
|
72
|
-
* @param job The job data
|
|
72
|
+
* @param job The job data.
|
|
73
73
|
*/
|
|
74
|
-
|
|
75
|
-
core.logger("Executor Manager").debug(`Submitting job ${job.id} for execution in queue ${queueConfig.name}`);
|
|
74
|
+
queueJob(queueConfig, job) {
|
|
76
75
|
if (!this.activeByQueue[queueConfig.name]) {
|
|
77
76
|
this.activeByQueue[queueConfig.name] = new Set();
|
|
78
77
|
}
|
|
79
|
-
if (this.availableSlotsByQueue(queueConfig) <= 0 || this.availableSlotsGlobal() <= 0) {
|
|
80
|
-
core.logger("Executor Manager").debug(`No available slots for job ${job.id} in queue ${queueConfig.name}`);
|
|
81
|
-
await jobTransitioner.JobTransitioner.apply(this.backend, job, new core.SnoozeTransition(0));
|
|
82
|
-
return;
|
|
83
|
-
}
|
|
84
78
|
this.activeByQueue[queueConfig.name].add(job.id);
|
|
85
79
|
this.activeJobs.add(job.id);
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
signal.emit("abort");
|
|
95
|
-
isRunning = false;
|
|
96
|
-
return;
|
|
97
|
-
}
|
|
98
|
-
await new Promise((r) => setTimeout(r, 1000));
|
|
99
|
-
}
|
|
100
|
-
};
|
|
101
|
-
void cancellationCheck();
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Executes a job in the given queue.
|
|
83
|
+
* @param queueConfig The queue configuration.
|
|
84
|
+
* @param job The job data to execute.
|
|
85
|
+
*/
|
|
86
|
+
async execute(queueConfig, job) {
|
|
87
|
+
let isRunning = false;
|
|
102
88
|
try {
|
|
89
|
+
core.logger("Executor Manager").debug(`Submitting job ${job.id} for execution in queue ${queueConfig.name}`);
|
|
90
|
+
// We call prepareJob here again to make sure the jobs are in the queues.
|
|
91
|
+
// This might not be necessary, but for the sake of consistency we do it.
|
|
92
|
+
this.queueJob(queueConfig, job);
|
|
93
|
+
job = await jobTransitioner.JobTransitioner.apply(this.backend, job, new core.RunTransition());
|
|
94
|
+
isRunning = true;
|
|
95
|
+
const signal = new EventEmitter();
|
|
96
|
+
const cancellationCheck = async () => {
|
|
97
|
+
while (isRunning) {
|
|
98
|
+
const watchedJob = await this.backend.getJob(job.id);
|
|
99
|
+
if (watchedJob.state === "canceled") {
|
|
100
|
+
core.logger("Executor Manager").debug(`Emitting abort signal for job ${job.id}`);
|
|
101
|
+
signal.emit("abort");
|
|
102
|
+
isRunning = false;
|
|
103
|
+
return;
|
|
104
|
+
}
|
|
105
|
+
await new Promise((r) => setTimeout(r, 1000));
|
|
106
|
+
}
|
|
107
|
+
};
|
|
108
|
+
void cancellationCheck();
|
|
103
109
|
core.logger("Executor Manager").debug(`Running job ${job.id} in queue ${queueConfig.name}`);
|
|
104
110
|
const runPromise = this.runnerPool.run(job, signal);
|
|
105
111
|
if (job.timeout) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"executor-manager.cjs","sources":["../../src/execution/executor-manager.ts"],"sourcesContent":[null],"names":["RunnerPool","logger","JobTransitioner","
|
|
1
|
+
{"version":3,"file":"executor-manager.cjs","sources":["../../src/execution/executor-manager.ts"],"sourcesContent":[null],"names":["RunnerPool","logger","JobTransitioner","RunTransition","RetryTransition","inspect","JobTransitionFactory"],"mappings":"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"}
|
|
@@ -33,6 +33,12 @@ declare class ExecutorManager {
|
|
|
33
33
|
* @returns The number of active jobs.
|
|
34
34
|
*/
|
|
35
35
|
totalActiveWorkers(): number;
|
|
36
|
+
/**
|
|
37
|
+
* Prepares a job for execution by marking it as active and adding it to a queue slot.
|
|
38
|
+
* @param queueConfig The queue configuration.
|
|
39
|
+
* @param job The job data.
|
|
40
|
+
*/
|
|
41
|
+
queueJob(queueConfig: QueueConfig, job: JobData): void;
|
|
36
42
|
/**
|
|
37
43
|
* Executes a job in the given queue.
|
|
38
44
|
* @param queueConfig The queue configuration.
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { logger,
|
|
1
|
+
import { logger, RunTransition, RetryTransition, JobTransitionFactory } from '@sidequest/core';
|
|
2
2
|
import EventEmitter from 'events';
|
|
3
3
|
import { inspect } from 'util';
|
|
4
4
|
import { JobTransitioner } from '../job/job-transitioner.js';
|
|
@@ -65,39 +65,45 @@ class ExecutorManager {
|
|
|
65
65
|
return this.activeJobs.size;
|
|
66
66
|
}
|
|
67
67
|
/**
|
|
68
|
-
*
|
|
68
|
+
* Prepares a job for execution by marking it as active and adding it to a queue slot.
|
|
69
69
|
* @param queueConfig The queue configuration.
|
|
70
|
-
* @param job The job data
|
|
70
|
+
* @param job The job data.
|
|
71
71
|
*/
|
|
72
|
-
|
|
73
|
-
logger("Executor Manager").debug(`Submitting job ${job.id} for execution in queue ${queueConfig.name}`);
|
|
72
|
+
queueJob(queueConfig, job) {
|
|
74
73
|
if (!this.activeByQueue[queueConfig.name]) {
|
|
75
74
|
this.activeByQueue[queueConfig.name] = new Set();
|
|
76
75
|
}
|
|
77
|
-
if (this.availableSlotsByQueue(queueConfig) <= 0 || this.availableSlotsGlobal() <= 0) {
|
|
78
|
-
logger("Executor Manager").debug(`No available slots for job ${job.id} in queue ${queueConfig.name}`);
|
|
79
|
-
await JobTransitioner.apply(this.backend, job, new SnoozeTransition(0));
|
|
80
|
-
return;
|
|
81
|
-
}
|
|
82
76
|
this.activeByQueue[queueConfig.name].add(job.id);
|
|
83
77
|
this.activeJobs.add(job.id);
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
signal.emit("abort");
|
|
93
|
-
isRunning = false;
|
|
94
|
-
return;
|
|
95
|
-
}
|
|
96
|
-
await new Promise((r) => setTimeout(r, 1000));
|
|
97
|
-
}
|
|
98
|
-
};
|
|
99
|
-
void cancellationCheck();
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Executes a job in the given queue.
|
|
81
|
+
* @param queueConfig The queue configuration.
|
|
82
|
+
* @param job The job data to execute.
|
|
83
|
+
*/
|
|
84
|
+
async execute(queueConfig, job) {
|
|
85
|
+
let isRunning = false;
|
|
100
86
|
try {
|
|
87
|
+
logger("Executor Manager").debug(`Submitting job ${job.id} for execution in queue ${queueConfig.name}`);
|
|
88
|
+
// We call prepareJob here again to make sure the jobs are in the queues.
|
|
89
|
+
// This might not be necessary, but for the sake of consistency we do it.
|
|
90
|
+
this.queueJob(queueConfig, job);
|
|
91
|
+
job = await JobTransitioner.apply(this.backend, job, new RunTransition());
|
|
92
|
+
isRunning = true;
|
|
93
|
+
const signal = new EventEmitter();
|
|
94
|
+
const cancellationCheck = async () => {
|
|
95
|
+
while (isRunning) {
|
|
96
|
+
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");
|
|
100
|
+
isRunning = false;
|
|
101
|
+
return;
|
|
102
|
+
}
|
|
103
|
+
await new Promise((r) => setTimeout(r, 1000));
|
|
104
|
+
}
|
|
105
|
+
};
|
|
106
|
+
void cancellationCheck();
|
|
101
107
|
logger("Executor Manager").debug(`Running job ${job.id} in queue ${queueConfig.name}`);
|
|
102
108
|
const runPromise = this.runnerPool.run(job, signal);
|
|
103
109
|
if (job.timeout) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"executor-manager.js","sources":["../../src/execution/executor-manager.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;;;;
|
|
1
|
+
{"version":3,"file":"executor-manager.js","sources":["../../src/execution/executor-manager.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;;;;AAQA;;AAEG;MACU,eAAe,CAAA;AAWhB,IAAA,OAAA;AACA,IAAA,aAAA;AAXF,IAAA,aAAa;AACb,IAAA,UAAU;AACV,IAAA,UAAU;AAElB;;;;AAIG;IACH,WAAA,CACU,OAAgB,EAChB,aAAsC,EAAA;QADtC,IAAA,CAAA,OAAO,GAAP,OAAO;QACP,IAAA,CAAA,aAAa,GAAb,aAAa;AAErB,QAAA,IAAI,CAAC,aAAa,GAAG,EAAE;AACvB,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI,GAAG,EAAE;QAC3B,IAAI,CAAC,UAAU,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,aAAa,CAAC;IACtD;AAEA;;;;AAIG;AACH,IAAA,qBAAqB,CAAC,WAAwB,EAAA;QAC5C,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE;YACzC,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,IAAI,GAAG,EAAE;QAClD;QACA,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,IAAI,CAAC;AACvD,QAAA,MAAM,KAAK,GAAG,WAAW,CAAC,WAAW,IAAI,EAAE;AAE3C,QAAA,MAAM,cAAc,GAAG,KAAK,GAAG,UAAU,CAAC,IAAI;AAC9C,QAAA,IAAI,cAAc,GAAG,CAAC,EAAE;AACtB,YAAA,OAAO,CAAC;QACV;AACA,QAAA,OAAO,cAAc;IACvB;AAEA;;;AAGG;IACH,oBAAoB,GAAA;AAClB,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,iBAAiB;QAClD,MAAM,cAAc,GAAG,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI;AACnD,QAAA,IAAI,cAAc,GAAG,CAAC,EAAE;AACtB,YAAA,OAAO,CAAC;QACV;AACA,QAAA,OAAO,cAAc;IACvB;AAEA;;;AAGG;IACH,kBAAkB,GAAA;AAChB,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI;IAC7B;AAEA;;;;AAIG;IACH,QAAQ,CAAC,WAAwB,EAAE,GAAY,EAAA;QAC7C,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE;YACzC,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,IAAI,GAAG,EAAE;QAClD;AACA,QAAA,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;QAChD,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;IAC7B;AAEA;;;;AAIG;AACH,IAAA,MAAM,OAAO,CAAC,WAAwB,EAAE,GAAY,EAAA;QAClD,IAAI,SAAS,GAAG,KAAK;AACrB,QAAA,IAAI;AACF,YAAA,MAAM,CAAC,kBAAkB,CAAC,CAAC,KAAK,CAAC,CAAA,eAAA,EAAkB,GAAG,CAAC,EAAE,2BAA2B,WAAW,CAAC,IAAI,CAAA,CAAE,CAAC;;;AAGvG,YAAA,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,GAAG,CAAC;AAE/B,YAAA,GAAG,GAAG,MAAM,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,aAAa,EAAE,CAAC;YAEzE,SAAS,GAAG,IAAI;AAChB,YAAA,MAAM,MAAM,GAAG,IAAI,YAAY,EAAE;AACjC,YAAA,MAAM,iBAAiB,GAAG,YAAW;gBACnC,OAAO,SAAS,EAAE;AAChB,oBAAA,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;AACpD,oBAAA,IAAI,UAAW,CAAC,KAAK,KAAK,UAAU,EAAE;AACpC,wBAAA,MAAM,CAAC,kBAAkB,CAAC,CAAC,KAAK,CAAC,CAAA,8BAAA,EAAiC,GAAG,CAAC,EAAE,CAAA,CAAE,CAAC;AAC3E,wBAAA,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC;wBACpB,SAAS,GAAG,KAAK;wBACjB;oBACF;AACA,oBAAA,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,KAAK,UAAU,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;gBAC/C;AACF,YAAA,CAAC;YACD,KAAK,iBAAiB,EAAE;AAExB,YAAA,MAAM,CAAC,kBAAkB,CAAC,CAAC,KAAK,CAAC,CAAA,YAAA,EAAe,GAAG,CAAC,EAAE,aAAa,WAAW,CAAC,IAAI,CAAA,CAAE,CAAC;AAEtF,YAAA,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC;AAEnD,YAAA,IAAI,GAAG,CAAC,OAAO,EAAE;AACf,gBAAA,KAAK,IAAI,OAAO,CAAC,MAAK;oBACpB,UAAU,CAAC,MAAK;AACd,wBAAA,MAAM,CAAC,kBAAkB,CAAC,CAAC,KAAK,CAAC,CAAA,IAAA,EAAO,GAAG,CAAC,EAAE,oBAAoB,GAAG,CAAC,OAAO,CAAA,aAAA,CAAe,CAAC;AAC7F,wBAAA,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC;wBACpB,KAAK,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,eAAe,CAAC,uBAAuB,GAAG,CAAC,OAAO,CAAA,EAAA,CAAI,CAAC,CAAC;AAC5G,oBAAA,CAAC,EAAE,GAAG,CAAC,OAAQ,CAAC;AAClB,gBAAA,CAAC,CAAC;YACJ;AAEA,YAAA,MAAM,MAAM,GAAG,MAAM,UAAU;YAE/B,SAAS,GAAG,KAAK;AACjB,YAAA,MAAM,CAAC,kBAAkB,CAAC,CAAC,KAAK,CAAC,CAAA,IAAA,EAAO,GAAG,CAAC,EAAE,2BAA2B,OAAO,CAAC,MAAM,CAAC,CAAA,CAAE,CAAC;YAC3F,MAAM,UAAU,GAAG,oBAAoB,CAAC,MAAM,CAAC,MAAM,CAAC;AACtD,YAAA,MAAM,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE,UAAU,CAAC;QAC5D;QAAE,OAAO,KAAc,EAAE;YACvB,SAAS,GAAG,KAAK;YACjB,MAAM,GAAG,GAAG,KAAc;AAC1B,YAAA,IAAI,GAAG,CAAC,OAAO,KAAK,2BAA2B,EAAE;AAC/C,gBAAA,MAAM,CAAC,kBAAkB,CAAC,CAAC,KAAK,CAAC,CAAA,IAAA,EAAO,GAAG,CAAC,EAAE,CAAA,YAAA,CAAc,CAAC;YAC/D;iBAAO;AACL,gBAAA,MAAM,CAAC,kBAAkB,CAAC,CAAC,KAAK,CAAC,CAAA,oCAAA,EAAuC,GAAG,CAAC,EAAE,KAAK,GAAG,CAAC,OAAO,CAAA,CAAE,CAAC;AACjG,gBAAA,MAAM,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,eAAe,CAAC,GAAG,CAAC,CAAC;YAC1E;QACF;gBAAU;YACR,SAAS,GAAG,KAAK;AACjB,YAAA,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;YACnD,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;QAChC;IACF;AAEA;;AAEG;AACH,IAAA,MAAM,OAAO,GAAA;QACX,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,KAAI;YAC1C,MAAM,SAAS,GAAG,MAAK;AACrB,gBAAA,IAAI,IAAI,CAAC,kBAAkB,EAAE,KAAK,CAAC,EAAE;oBACnC,MAAM,CAAC,iBAAiB,CAAC,CAAC,IAAI,CAAC,mDAAmD,CAAC;AACnF,oBAAA,IAAI;AACF,wBAAA,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE;wBACzB,MAAM,CAAC,iBAAiB,CAAC,CAAC,KAAK,CAAC,mCAAmC,CAAC;AACpE,wBAAA,OAAO,EAAE;oBACX;oBAAE,OAAO,KAAK,EAAE;wBACd,MAAM,CAAC,iBAAiB,CAAC,CAAC,KAAK,CAAC,qCAAqC,EAAE,KAAK,CAAC;wBAC7E,MAAM,CAAC,KAAc,CAAC;oBACxB;gBACF;qBAAO;AACL,oBAAA,MAAM,CAAC,iBAAiB,CAAC,CAAC,IAAI,CAAC,CAAA,YAAA,EAAe,IAAI,CAAC,kBAAkB,EAAE,CAAA,yBAAA,CAA2B,CAAC;AACnG,oBAAA,UAAU,CAAC,SAAS,EAAE,IAAI,CAAC;gBAC7B;AACF,YAAA,CAAC;YAED,KAAK,SAAS,EAAE;AAClB,QAAA,CAAC,CAAC;IACJ;AACD;;;;"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sidequest/engine",
|
|
3
|
-
"version": "1.13.
|
|
3
|
+
"version": "1.13.3",
|
|
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.
|
|
46
|
-
"@sidequest/core": "1.13.
|
|
45
|
+
"@sidequest/backend": "1.13.3",
|
|
46
|
+
"@sidequest/core": "1.13.3",
|
|
47
47
|
"node-cron": "^4.2.1",
|
|
48
48
|
"piscina": "^5.1.3"
|
|
49
49
|
},
|
|
50
50
|
"peerDependencies": {
|
|
51
|
-
"sidequest": "1.13.
|
|
51
|
+
"sidequest": "1.13.3"
|
|
52
52
|
}
|
|
53
53
|
}
|