pixivflow 2.18.0 → 2.18.1
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/commands/SchedulerCommand.d.ts.map +1 -1
- package/dist/commands/SchedulerCommand.js +63 -38
- package/dist/commands/SchedulerCommand.js.map +1 -1
- package/dist/commands/scheduler-runtime.d.ts +6 -0
- package/dist/commands/scheduler-runtime.d.ts.map +1 -1
- package/dist/commands/scheduler-runtime.js +77 -9
- package/dist/commands/scheduler-runtime.js.map +1 -1
- package/dist/download/DownloadManager.d.ts +9 -0
- package/dist/download/DownloadManager.d.ts.map +1 -1
- package/dist/download/DownloadManager.js +18 -1
- package/dist/download/DownloadManager.js.map +1 -1
- package/dist/package.json +1 -1
- package/dist/pixiv-client/PixivFlowPixivClient.d.ts +7 -1
- package/dist/pixiv-client/PixivFlowPixivClient.d.ts.map +1 -1
- package/dist/pixiv-client/PixivFlowPixivClient.js +14 -8
- package/dist/pixiv-client/PixivFlowPixivClient.js.map +1 -1
- package/dist/pixiv-client/TargetSearchRunner.d.ts +2 -2
- package/dist/pixiv-client/TargetSearchRunner.d.ts.map +1 -1
- package/dist/pixiv-client/TargetSearchRunner.js +21 -14
- package/dist/pixiv-client/TargetSearchRunner.js.map +1 -1
- package/dist/scheduler/MultiScheduleManager.d.ts +33 -1
- package/dist/scheduler/MultiScheduleManager.d.ts.map +1 -1
- package/dist/scheduler/MultiScheduleManager.js +115 -2
- package/dist/scheduler/MultiScheduleManager.js.map +1 -1
- package/dist/scheduler/ScheduleTriggerServer.d.ts +32 -9
- package/dist/scheduler/ScheduleTriggerServer.d.ts.map +1 -1
- package/dist/scheduler/ScheduleTriggerServer.js +34 -6
- package/dist/scheduler/ScheduleTriggerServer.js.map +1 -1
- package/dist/scheduler/Scheduler.d.ts +28 -1
- package/dist/scheduler/Scheduler.d.ts.map +1 -1
- package/dist/scheduler/Scheduler.js +82 -7
- package/dist/scheduler/Scheduler.js.map +1 -1
- package/dist/scheduler/SlotCoordinator.d.ts +28 -3
- package/dist/scheduler/SlotCoordinator.d.ts.map +1 -1
- package/dist/scheduler/SlotCoordinator.js +31 -5
- package/dist/scheduler/SlotCoordinator.js.map +1 -1
- package/dist/storage/repositories/SlotRepository.d.ts +17 -0
- package/dist/storage/repositories/SlotRepository.d.ts.map +1 -1
- package/dist/storage/repositories/SlotRepository.js +26 -4
- package/dist/storage/repositories/SlotRepository.js.map +1 -1
- package/dist/topic/TopicPipeline.d.ts +15 -1
- package/dist/topic/TopicPipeline.d.ts.map +1 -1
- package/dist/topic/TopicPipeline.js +18 -2
- package/dist/topic/TopicPipeline.js.map +1 -1
- package/dist/topic/TopicResolver.d.ts +5 -1
- package/dist/topic/TopicResolver.d.ts.map +1 -1
- package/dist/topic/TopicResolver.js +32 -6
- package/dist/topic/TopicResolver.js.map +1 -1
- package/dist/topic/createTopicPipeline.d.ts +2 -2
- package/dist/topic/createTopicPipeline.d.ts.map +1 -1
- package/dist/topic/createTopicPipeline.js +5 -5
- package/dist/topic/createTopicPipeline.js.map +1 -1
- package/dist/topic/types.d.ts +5 -1
- package/dist/topic/types.d.ts.map +1 -1
- package/dist/utils/errors.d.ts +18 -0
- package/dist/utils/errors.d.ts.map +1 -1
- package/dist/utils/errors.js +30 -0
- package/dist/utils/errors.js.map +1 -1
- package/dist/version.js +1 -1
- package/dist/webui/package.json +1 -1
- package/package.json +1 -1
|
@@ -48,12 +48,40 @@ class ScheduleTriggerServer {
|
|
|
48
48
|
return;
|
|
49
49
|
}
|
|
50
50
|
const result = await this.handlers.run(scheduleId, resolved.context);
|
|
51
|
-
//
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
51
|
+
// Business disposition, not HTTP luck: an accepted or already-running
|
|
52
|
+
// occurrence is NOT a completed one. Returning 200/"completed" for a run
|
|
53
|
+
// that is still executing makes an external clock stop retrying and
|
|
54
|
+
// silently lose the slot, so 'running' is reported as 202 here.
|
|
55
|
+
switch (result.disposition) {
|
|
56
|
+
case 'already_completed':
|
|
57
|
+
res.status(200).json({
|
|
58
|
+
status: 'completed',
|
|
59
|
+
schedule: result,
|
|
60
|
+
note: 'already_completed',
|
|
61
|
+
});
|
|
62
|
+
return;
|
|
63
|
+
case 'accepted':
|
|
64
|
+
res.status(202).json({
|
|
65
|
+
status: 'accepted',
|
|
66
|
+
schedule: result,
|
|
67
|
+
note: 'queued',
|
|
68
|
+
});
|
|
69
|
+
return;
|
|
70
|
+
case 'already_running':
|
|
71
|
+
res.status(202).json({
|
|
72
|
+
status: 'running',
|
|
73
|
+
schedule: result,
|
|
74
|
+
note: 'already_running',
|
|
75
|
+
});
|
|
76
|
+
return;
|
|
77
|
+
default:
|
|
78
|
+
res.status(503).json({
|
|
79
|
+
status: 'rejected',
|
|
80
|
+
schedule: result,
|
|
81
|
+
note: 'rejected',
|
|
82
|
+
});
|
|
83
|
+
return;
|
|
84
|
+
}
|
|
57
85
|
}
|
|
58
86
|
catch (error) {
|
|
59
87
|
logger_1.logger.error('Schedule trigger failed', { error: error instanceof Error ? error.message : String(error) });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ScheduleTriggerServer.js","sourceRoot":"","sources":["../../src/scheduler/ScheduleTriggerServer.ts"],"names":[],"mappings":";;;;;;AAAA,sDAA8D;AAC9D,6CAA8C;AAG9C,sCAAmC;
|
|
1
|
+
{"version":3,"file":"ScheduleTriggerServer.js","sourceRoot":"","sources":["../../src/scheduler/ScheduleTriggerServer.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,6 +6,19 @@ import { ScheduleRunOptions } from './OccurrenceResolver';
|
|
|
6
6
|
* cap so a wedged download run cannot occupy the scheduler queue forever.
|
|
7
7
|
*/
|
|
8
8
|
export declare const DEFAULT_SCHEDULE_TIMEOUT_MS: number;
|
|
9
|
+
/**
|
|
10
|
+
* How long a run may keep draining after its timeout fired before the scheduler
|
|
11
|
+
* gives up on it.
|
|
12
|
+
*
|
|
13
|
+
* Cancellation is cooperative, so a request that never returns (or a retry loop
|
|
14
|
+
* that ignores the abort) can outlive the timeout indefinitely. Awaiting that
|
|
15
|
+
* forever is what kept a timed-out run holding its Slot lease: the scheduler
|
|
16
|
+
* stayed `running`, the runtime kept heart-beating, and the occurrence could
|
|
17
|
+
* never be recovered. After this window the run is declared abandoned — the
|
|
18
|
+
* scheduler slot is freed and the runtime takes the Slot terminal — so a wedged
|
|
19
|
+
* job degrades into one recorded failure instead of a permanent hang.
|
|
20
|
+
*/
|
|
21
|
+
export declare const ABORT_DRAIN_MS: number;
|
|
9
22
|
/**
|
|
10
23
|
* Optional integration hooks allowing the host command to provide real
|
|
11
24
|
* accounting data and cooperative cancellation to the scheduler.
|
|
@@ -29,6 +42,18 @@ export interface JobFailure {
|
|
|
29
42
|
consecutiveFailures: number;
|
|
30
43
|
stopped: boolean;
|
|
31
44
|
}
|
|
45
|
+
/**
|
|
46
|
+
* Reported when a run was still executing after its timeout AND the drain window
|
|
47
|
+
* expired, so it can never be awaited to completion. The host must treat the run
|
|
48
|
+
* as finished: stop renewing any lease it owns and take its Slot terminal, or a
|
|
49
|
+
* recovery sweep will re-dispatch the same occurrence while this run is alive.
|
|
50
|
+
*/
|
|
51
|
+
export interface JobAbandoned {
|
|
52
|
+
scheduleId: string;
|
|
53
|
+
executionNumber: number;
|
|
54
|
+
errorMessage: string | null;
|
|
55
|
+
drainWindowMs: number;
|
|
56
|
+
}
|
|
32
57
|
/** Admission is acquired before timeout/accounting starts. */
|
|
33
58
|
export interface JobAdmissionController {
|
|
34
59
|
acquire(scheduleId: string): Promise<JobLease | null>;
|
|
@@ -40,6 +65,7 @@ export declare class Scheduler {
|
|
|
40
65
|
private readonly scheduleId;
|
|
41
66
|
private readonly admission?;
|
|
42
67
|
private readonly onFailure?;
|
|
68
|
+
private readonly onAbandoned?;
|
|
43
69
|
private task;
|
|
44
70
|
private job;
|
|
45
71
|
private running;
|
|
@@ -47,9 +73,10 @@ export declare class Scheduler {
|
|
|
47
73
|
private executionCount;
|
|
48
74
|
private consecutiveFailures;
|
|
49
75
|
private timeoutHandle;
|
|
76
|
+
private drainHandle;
|
|
50
77
|
private stopped;
|
|
51
78
|
private pending;
|
|
52
|
-
constructor(config: SchedulerConfig, database?: Database | undefined, telemetry?: JobTelemetry | undefined, scheduleId?: string, admission?: JobAdmissionController | undefined, onFailure?: ((failure: JobFailure) => Promise<void> | void) | undefined);
|
|
79
|
+
constructor(config: SchedulerConfig, database?: Database | undefined, telemetry?: JobTelemetry | undefined, scheduleId?: string, admission?: JobAdmissionController | undefined, onFailure?: ((failure: JobFailure) => Promise<void> | void) | undefined, onAbandoned?: ((abandoned: JobAbandoned) => Promise<void> | void) | undefined);
|
|
53
80
|
start(job: (options?: ScheduleRunOptions) => Promise<void>): void;
|
|
54
81
|
/**
|
|
55
82
|
* Arm the scheduler for external/manual triggers (runNow) WITHOUT registering
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Scheduler.d.ts","sourceRoot":"","sources":["../../src/scheduler/Scheduler.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAG5C,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE1D;;;GAGG;AACH,eAAO,MAAM,2BAA2B,QAAiB,CAAC;AAE1D;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC3B,sFAAsF;IACtF,QAAQ,IAAI,OAAO,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC;IACrC,+FAA+F;IAC/F,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC;IACnD,gFAAgF;IAChF,aAAa,CAAC,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;CACtC;AAED,MAAM,WAAW,QAAQ;IACvB,OAAO,IAAI,IAAI,CAAC;CACjB;AAED,MAAM,WAAW,UAAU;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,MAAM,CAAC;IACxB,MAAM,EAAE,QAAQ,GAAG,SAAS,CAAC;IAC7B,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,mBAAmB,EAAE,MAAM,CAAC;IAC5B,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,8DAA8D;AAC9D,MAAM,WAAW,sBAAsB;IACrC,OAAO,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAC;CACvD;AAED,qBAAa,SAAS;
|
|
1
|
+
{"version":3,"file":"Scheduler.d.ts","sourceRoot":"","sources":["../../src/scheduler/Scheduler.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.Scheduler = exports.DEFAULT_SCHEDULE_TIMEOUT_MS = void 0;
|
|
6
|
+
exports.Scheduler = exports.ABORT_DRAIN_MS = exports.DEFAULT_SCHEDULE_TIMEOUT_MS = void 0;
|
|
7
7
|
const node_cron_1 = __importDefault(require("node-cron"));
|
|
8
8
|
const logger_1 = require("../logger");
|
|
9
9
|
const errors_1 = require("../utils/errors");
|
|
@@ -12,6 +12,19 @@ const errors_1 = require("../utils/errors");
|
|
|
12
12
|
* cap so a wedged download run cannot occupy the scheduler queue forever.
|
|
13
13
|
*/
|
|
14
14
|
exports.DEFAULT_SCHEDULE_TIMEOUT_MS = 30 * 60 * 1000;
|
|
15
|
+
/**
|
|
16
|
+
* How long a run may keep draining after its timeout fired before the scheduler
|
|
17
|
+
* gives up on it.
|
|
18
|
+
*
|
|
19
|
+
* Cancellation is cooperative, so a request that never returns (or a retry loop
|
|
20
|
+
* that ignores the abort) can outlive the timeout indefinitely. Awaiting that
|
|
21
|
+
* forever is what kept a timed-out run holding its Slot lease: the scheduler
|
|
22
|
+
* stayed `running`, the runtime kept heart-beating, and the occurrence could
|
|
23
|
+
* never be recovered. After this window the run is declared abandoned — the
|
|
24
|
+
* scheduler slot is freed and the runtime takes the Slot terminal — so a wedged
|
|
25
|
+
* job degrades into one recorded failure instead of a permanent hang.
|
|
26
|
+
*/
|
|
27
|
+
exports.ABORT_DRAIN_MS = 30 * 1000;
|
|
15
28
|
class Scheduler {
|
|
16
29
|
config;
|
|
17
30
|
database;
|
|
@@ -19,6 +32,7 @@ class Scheduler {
|
|
|
19
32
|
scheduleId;
|
|
20
33
|
admission;
|
|
21
34
|
onFailure;
|
|
35
|
+
onAbandoned;
|
|
22
36
|
task = null;
|
|
23
37
|
job = null;
|
|
24
38
|
running = false;
|
|
@@ -26,15 +40,17 @@ class Scheduler {
|
|
|
26
40
|
executionCount = 0;
|
|
27
41
|
consecutiveFailures = 0;
|
|
28
42
|
timeoutHandle = null;
|
|
43
|
+
drainHandle = null;
|
|
29
44
|
stopped = false;
|
|
30
45
|
pending = false;
|
|
31
|
-
constructor(config, database, telemetry, scheduleId = 'default', admission, onFailure) {
|
|
46
|
+
constructor(config, database, telemetry, scheduleId = 'default', admission, onFailure, onAbandoned) {
|
|
32
47
|
this.config = config;
|
|
33
48
|
this.database = database;
|
|
34
49
|
this.telemetry = telemetry;
|
|
35
50
|
this.scheduleId = scheduleId;
|
|
36
51
|
this.admission = admission;
|
|
37
52
|
this.onFailure = onFailure;
|
|
53
|
+
this.onAbandoned = onAbandoned;
|
|
38
54
|
}
|
|
39
55
|
start(job) {
|
|
40
56
|
this.arm(job, true);
|
|
@@ -181,6 +197,11 @@ class Scheduler {
|
|
|
181
197
|
scheduleId: this.scheduleId,
|
|
182
198
|
});
|
|
183
199
|
// Set up timeout if configured
|
|
200
|
+
let abandoned = false;
|
|
201
|
+
let resolveDrainExpired = null;
|
|
202
|
+
const drainExpired = new Promise((resolve) => {
|
|
203
|
+
resolveDrainExpired = resolve;
|
|
204
|
+
});
|
|
184
205
|
if (this.config.timeout) {
|
|
185
206
|
this.timeoutHandle = setTimeout(() => {
|
|
186
207
|
if (this.running) {
|
|
@@ -194,15 +215,33 @@ class Scheduler {
|
|
|
194
215
|
catch (cancelError) {
|
|
195
216
|
logger_1.logger.warn('Failed to request job cancellation', { error: cancelError });
|
|
196
217
|
}
|
|
197
|
-
//
|
|
198
|
-
//
|
|
218
|
+
// Bounded drain. requestCancel is cooperative, so this run is only
|
|
219
|
+
// guaranteed to be *asked* to stop; a request that ignores the abort
|
|
220
|
+
// would otherwise hold `running` (and, through the host, the Slot
|
|
221
|
+
// lease) for good. After the drain window the run is abandoned.
|
|
222
|
+
this.drainHandle = setTimeout(() => {
|
|
223
|
+
abandoned = true;
|
|
224
|
+
errorMessage =
|
|
225
|
+
`Execution timeout after ${this.config.timeout}ms; the job was still running after the ` +
|
|
226
|
+
`${exports.ABORT_DRAIN_MS}ms drain window and has been abandoned`;
|
|
227
|
+
logger_1.logger.error('Job did not settle within the drain window; abandoning it', {
|
|
228
|
+
scheduleId: this.scheduleId,
|
|
229
|
+
drainWindowMs: exports.ABORT_DRAIN_MS,
|
|
230
|
+
});
|
|
231
|
+
resolveDrainExpired?.();
|
|
232
|
+
}, exports.ABORT_DRAIN_MS);
|
|
233
|
+
this.drainHandle.unref?.();
|
|
234
|
+
// Keep running=true until the aborted job settles (or the drain
|
|
235
|
+
// expires) so the concurrent-run guard stays correct.
|
|
199
236
|
}
|
|
200
237
|
}, this.config.timeout);
|
|
238
|
+
this.timeoutHandle.unref?.();
|
|
201
239
|
}
|
|
240
|
+
const jobPromise = this.executeWithTracking(job, (count) => {
|
|
241
|
+
itemsDownloaded = count;
|
|
242
|
+
}, triggerOptions);
|
|
202
243
|
try {
|
|
203
|
-
await this.
|
|
204
|
-
itemsDownloaded = count;
|
|
205
|
-
});
|
|
244
|
+
await (this.config.timeout ? Promise.race([jobPromise, drainExpired]) : jobPromise);
|
|
206
245
|
if (timeoutOccurred) {
|
|
207
246
|
status = 'timeout';
|
|
208
247
|
this.consecutiveFailures++;
|
|
@@ -245,6 +284,38 @@ class Scheduler {
|
|
|
245
284
|
clearTimeout(this.timeoutHandle);
|
|
246
285
|
this.timeoutHandle = null;
|
|
247
286
|
}
|
|
287
|
+
if (this.drainHandle) {
|
|
288
|
+
clearTimeout(this.drainHandle);
|
|
289
|
+
this.drainHandle = null;
|
|
290
|
+
}
|
|
291
|
+
if (abandoned) {
|
|
292
|
+
// The job is still running somewhere. Its abort signal has been fired, so
|
|
293
|
+
// it unwinds at the next checkpoint, but we stop waiting for it: capture
|
|
294
|
+
// its eventual rejection (nothing else can) and let the host finish the
|
|
295
|
+
// bookkeeping it owns — stop the lease heartbeat and take the Slot
|
|
296
|
+
// terminal — so a recovery sweep cannot re-dispatch the same occurrence
|
|
297
|
+
// while this run is still alive.
|
|
298
|
+
void jobPromise.catch((error) => {
|
|
299
|
+
logger_1.logger.warn('Abandoned job settled after the drain window', {
|
|
300
|
+
scheduleId: this.scheduleId,
|
|
301
|
+
error: error instanceof Error ? error.message : String(error),
|
|
302
|
+
});
|
|
303
|
+
});
|
|
304
|
+
try {
|
|
305
|
+
await this.onAbandoned?.({
|
|
306
|
+
scheduleId: this.scheduleId,
|
|
307
|
+
executionNumber,
|
|
308
|
+
errorMessage,
|
|
309
|
+
drainWindowMs: exports.ABORT_DRAIN_MS,
|
|
310
|
+
});
|
|
311
|
+
}
|
|
312
|
+
catch (error) {
|
|
313
|
+
logger_1.logger.warn('Failed to report an abandoned job', {
|
|
314
|
+
scheduleId: this.scheduleId,
|
|
315
|
+
error: error instanceof Error ? error.message : String(error),
|
|
316
|
+
});
|
|
317
|
+
}
|
|
318
|
+
}
|
|
248
319
|
const endTime = new Date();
|
|
249
320
|
const duration = endTime.getTime() - startTime.getTime();
|
|
250
321
|
// Log to database if available
|
|
@@ -298,6 +369,10 @@ class Scheduler {
|
|
|
298
369
|
clearTimeout(this.timeoutHandle);
|
|
299
370
|
this.timeoutHandle = null;
|
|
300
371
|
}
|
|
372
|
+
if (this.drainHandle) {
|
|
373
|
+
clearTimeout(this.drainHandle);
|
|
374
|
+
this.drainHandle = null;
|
|
375
|
+
}
|
|
301
376
|
logger_1.logger.info('Scheduler stopped', {
|
|
302
377
|
totalExecutions: this.executionCount,
|
|
303
378
|
consecutiveFailures: this.consecutiveFailures,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Scheduler.js","sourceRoot":"","sources":["../../src/scheduler/Scheduler.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Scheduler.js","sourceRoot":"","sources":["../../src/scheduler/Scheduler.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,6 +3,19 @@ import { Database } from '../storage/Database';
|
|
|
3
3
|
import { CellStatus, SlotItemRecord, SlotRecord, SlotStatus } from '../storage/repositories/SlotRepository';
|
|
4
4
|
import { TriggerSource } from './OccurrenceResolver';
|
|
5
5
|
import { TargetOutcome } from './TargetOutcome';
|
|
6
|
+
/**
|
|
7
|
+
* Execution-lease TTL and heartbeat cadence.
|
|
8
|
+
*
|
|
9
|
+
* These describe how fast a DEAD worker is noticed — they are deliberately
|
|
10
|
+
* unrelated to `schedule.timeout` (which caps how long a run may take). Tying
|
|
11
|
+
* the two together made a crashed worker hold its slot for up to 31 minutes
|
|
12
|
+
* before any other trigger could resume it. A live worker renews its lease every
|
|
13
|
+
* SLOT_HEARTBEAT_MS, so the worst-case recovery delay after a crash/restart is
|
|
14
|
+
* about SLOT_LEASE_TTL_MS. The TTL stays comfortably above the heartbeat so an
|
|
15
|
+
* occasional stalled event loop cannot make a healthy run look dead.
|
|
16
|
+
*/
|
|
17
|
+
export declare const SLOT_LEASE_TTL_MS: number;
|
|
18
|
+
export declare const SLOT_HEARTBEAT_MS: number;
|
|
6
19
|
/**
|
|
7
20
|
* Durable execution context attached to a run. A scheduled occurrence always
|
|
8
21
|
* has a slotId; an ad-hoc/manual run has none (it never touches the slot ledger).
|
|
@@ -62,13 +75,25 @@ export declare class SlotCoordinator {
|
|
|
62
75
|
*/
|
|
63
76
|
resolveOccurrence(schedule: ScheduleConfig, config: StandaloneConfig, triggerSource: TriggerSource, at?: Date, requestedSlotName?: string): SlotResolveResult;
|
|
64
77
|
/**
|
|
65
|
-
*
|
|
66
|
-
* creation. A later config reload cannot add/remove cells for this
|
|
78
|
+
* Durably open (or resume) an occurrence and snapshot its target membership
|
|
79
|
+
* on first creation. A later config reload cannot add/remove cells for this
|
|
80
|
+
* occurrence.
|
|
81
|
+
*
|
|
82
|
+
* This deliberately does NOT mark the slot `running`: the HTTP trigger calls
|
|
83
|
+
* it before dispatch so that a crash between "accepted" and "claimed" still
|
|
84
|
+
* leaves a durable `pending` row for reconciliation to pick up (see
|
|
85
|
+
* `markRunning` and MultiScheduleManager's recovery loop).
|
|
67
86
|
*/
|
|
68
|
-
|
|
87
|
+
prepare(slot: SlotContext, schedule: ScheduleConfig, targets: TargetConfig[]): {
|
|
69
88
|
slotRec: SlotRecord;
|
|
70
89
|
alreadyCompleted: boolean;
|
|
71
90
|
};
|
|
91
|
+
/**
|
|
92
|
+
* Mark the occurrence as actually executing. Called by the worker that has
|
|
93
|
+
* already won the cross-process lease (never by the accepting adapter), so a
|
|
94
|
+
* slot is never reported `running` by a process that is not running it.
|
|
95
|
+
*/
|
|
96
|
+
markRunning(slotId: string): void;
|
|
72
97
|
/**
|
|
73
98
|
* The targets that still need to run for this occurrence. Membership comes
|
|
74
99
|
* from the materialized snapshot (stable), intersected with the targets the
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SlotCoordinator.d.ts","sourceRoot":"","sources":["../../src/scheduler/SlotCoordinator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAC3E,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EACL,UAAU,EACV,cAAc,EACd,UAAU,EACV,UAAU,EACX,MAAM,wCAAwC,CAAC;AAEhD,OAAO,EAEL,aAAa,EAId,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD;;;GAGG;AACH,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,EAAE,MAAM,CAAC;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,aAAa,CAAC;IAC7B;;;;OAIG;IACH,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,UAAU,CAAC;IACnB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB;AAED,MAAM,WAAW,cAAc;IAC7B,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,UAAU,CAAC;IACnB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,KAAK,EAAE,eAAe,EAAE,CAAC;CAC1B;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;;;;GASG;AACH,qBAAa,eAAe;IACd,OAAO,CAAC,QAAQ,CAAC,QAAQ;gBAAR,QAAQ,EAAE,QAAQ;IAE/C;;;;;OAKG;IACH,iBAAiB,CACf,QAAQ,EAAE,cAAc,EACxB,MAAM,EAAE,gBAAgB,EACxB,aAAa,EAAE,aAAa,EAC5B,EAAE,GAAE,IAAiB,EACrB,iBAAiB,CAAC,EAAE,MAAM,GACzB,iBAAiB;IAkCpB
|
|
1
|
+
{"version":3,"file":"SlotCoordinator.d.ts","sourceRoot":"","sources":["../../src/scheduler/SlotCoordinator.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,22 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.SlotCoordinator = void 0;
|
|
3
|
+
exports.SlotCoordinator = exports.SLOT_HEARTBEAT_MS = exports.SLOT_LEASE_TTL_MS = void 0;
|
|
4
4
|
exports.timezoneForSchedule = timezoneForSchedule;
|
|
5
5
|
const logger_1 = require("../logger");
|
|
6
6
|
const OccurrenceResolver_1 = require("./OccurrenceResolver");
|
|
7
|
+
/**
|
|
8
|
+
* Execution-lease TTL and heartbeat cadence.
|
|
9
|
+
*
|
|
10
|
+
* These describe how fast a DEAD worker is noticed — they are deliberately
|
|
11
|
+
* unrelated to `schedule.timeout` (which caps how long a run may take). Tying
|
|
12
|
+
* the two together made a crashed worker hold its slot for up to 31 minutes
|
|
13
|
+
* before any other trigger could resume it. A live worker renews its lease every
|
|
14
|
+
* SLOT_HEARTBEAT_MS, so the worst-case recovery delay after a crash/restart is
|
|
15
|
+
* about SLOT_LEASE_TTL_MS. The TTL stays comfortably above the heartbeat so an
|
|
16
|
+
* occasional stalled event loop cannot make a healthy run look dead.
|
|
17
|
+
*/
|
|
18
|
+
exports.SLOT_LEASE_TTL_MS = 3 * 60 * 1000;
|
|
19
|
+
exports.SLOT_HEARTBEAT_MS = 30 * 1000;
|
|
7
20
|
/**
|
|
8
21
|
* Owns the Schedule Slot ledger for one scheduler run. A Slot is one durable
|
|
9
22
|
* execution occurrence of a Schedule (NOT a morning/evening row). It ensures
|
|
@@ -58,10 +71,16 @@ class SlotCoordinator {
|
|
|
58
71
|
};
|
|
59
72
|
}
|
|
60
73
|
/**
|
|
61
|
-
*
|
|
62
|
-
* creation. A later config reload cannot add/remove cells for this
|
|
74
|
+
* Durably open (or resume) an occurrence and snapshot its target membership
|
|
75
|
+
* on first creation. A later config reload cannot add/remove cells for this
|
|
76
|
+
* occurrence.
|
|
77
|
+
*
|
|
78
|
+
* This deliberately does NOT mark the slot `running`: the HTTP trigger calls
|
|
79
|
+
* it before dispatch so that a crash between "accepted" and "claimed" still
|
|
80
|
+
* leaves a durable `pending` row for reconciliation to pick up (see
|
|
81
|
+
* `markRunning` and MultiScheduleManager's recovery loop).
|
|
63
82
|
*/
|
|
64
|
-
|
|
83
|
+
prepare(slot, schedule, targets) {
|
|
65
84
|
const targetIds = targets.map((t) => t.id).filter((id) => Boolean(id));
|
|
66
85
|
const { slot: slotRec, created } = this.database.slots.getOrCreateSlot(slot.slotId, {
|
|
67
86
|
scheduleId: slot.scheduleId,
|
|
@@ -86,9 +105,16 @@ class SlotCoordinator {
|
|
|
86
105
|
if (slotRec.status === 'success' || slotRec.status === 'partial') {
|
|
87
106
|
return { slotRec, alreadyCompleted: true };
|
|
88
107
|
}
|
|
89
|
-
this.database.slots.markSlotStatus(slot.slotId, 'running');
|
|
90
108
|
return { slotRec, alreadyCompleted: false };
|
|
91
109
|
}
|
|
110
|
+
/**
|
|
111
|
+
* Mark the occurrence as actually executing. Called by the worker that has
|
|
112
|
+
* already won the cross-process lease (never by the accepting adapter), so a
|
|
113
|
+
* slot is never reported `running` by a process that is not running it.
|
|
114
|
+
*/
|
|
115
|
+
markRunning(slotId) {
|
|
116
|
+
this.database.slots.markSlotStatus(slotId, 'running');
|
|
117
|
+
}
|
|
92
118
|
/**
|
|
93
119
|
* The targets that still need to run for this occurrence. Membership comes
|
|
94
120
|
* from the materialized snapshot (stable), intersected with the targets the
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SlotCoordinator.js","sourceRoot":"","sources":["../../src/scheduler/SlotCoordinator.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"SlotCoordinator.js","sourceRoot":"","sources":["../../src/scheduler/SlotCoordinator.ts"],"names":[],"mappings":";;;AAiXA,kDAEC;AA3WD,sCAAmC;AACnC,6DAM8B;AAG9B;;;;;;;;;;GAUG;AACU,QAAA,iBAAiB,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;AAClC,QAAA,iBAAiB,GAAG,EAAE,GAAG,IAAI,CAAC;AA4C3C;;;;;;;;;GASG;AACH,MAAa,eAAe;IACG;IAA7B,YAA6B,QAAkB;QAAlB,aAAQ,GAAR,QAAQ,CAAU;IAAG,CAAC;IAEnD;;;;;OAKG;IACH,iBAAiB,CACf,QAAwB,EACxB,MAAwB,EACxB,aAA4B,EAC5B,KAAW,IAAI,IAAI,EAAE,EACrB,iBAA0B;QAE1B,MAAM,QAAQ,GAAG,MAAM,CAAC,gBAAgB,EAAE,OAAO,EAAE,YAAY,IAAI,EAAE,CAAC;QACtE,IAAI,UAA8B,CAAC;QACnC,IAAI,CAAC;YACH,UAAU,GAAG,IAAA,sCAAiB,EAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,aAAa,EAAE,CAAC,CAAC;QAClE,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,EAAE,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;QACxF,CAAC;QAED,0EAA0E;QAC1E,6EAA6E;QAC7E,qBAAqB;QACrB,IAAI,aAAa,KAAK,MAAM,IAAI,aAAa,KAAK,QAAQ,EAAE,CAAC;YAC3D,MAAM,MAAM,GAAG,IAAA,0CAAqB,EAAC,UAAU,EAAE,EAAE,EAAE,QAAQ,CAAC,CAAC;YAC/D,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;gBACf,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,KAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC;YACzD,CAAC;QACH,CAAC;QAED,OAAO;YACL,OAAO,EAAE;gBACP,MAAM,EAAE,UAAU,CAAC,MAAM;gBACzB,UAAU,EAAE,UAAU,CAAC,UAAU;gBACjC,YAAY,EAAE,UAAU,CAAC,YAAY,CAAC,OAAO,EAAE;gBAC/C,cAAc,EAAE,UAAU,CAAC,cAAc;gBACzC,eAAe,EAAE,UAAU,CAAC,eAAe;gBAC3C,QAAQ,EAAE,UAAU,CAAC,QAAQ;gBAC7B,aAAa,EAAE,UAAU,CAAC,aAAa;gBACvC,QAAQ,EAAE,iBAAiB,EAAE,IAAI,EAAE,IAAI,UAAU,CAAC,eAAe;gBACjE,QAAQ,EAAE,UAAU,CAAC,cAAc;aACpC;SACF,CAAC;IACJ,CAAC;IAED;;;;;;;;;OASG;IACH,OAAO,CAAC,IAAiB,EAAE,QAAwB,EAAE,OAAuB;QAC1E,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,EAAgB,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;QACrF,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,EAAE;YAClF,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,cAAc,EAAE,IAAI,CAAC,cAAc;YACnC,eAAe,EAAE,IAAI,CAAC,eAAe;YACrC,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,SAAS;YACT,aAAa,EAAE,IAAI,CAAC,aAAa;YACjC,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,QAAQ,EAAE,IAAI,CAAC,QAAQ;SACxB,CAAC,CAAC;QACH,IAAI,OAAO,EAAE,CAAC;YACZ,2EAA2E;YAC3E,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAY,EAAE,CAAC,CAAC,IAAI,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC;YACxF,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,gBAAgB,CAAC,IAAI,CAAC,MAAM,EAAE,SAAS,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,SAAS,CAAC,CAAC;YACxG,eAAM,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,CAAC,EAAE,EAAE,OAAO,EAAE,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC;QACvG,CAAC;aAAM,CAAC;YACN,eAAM,CAAC,IAAI,CAAC,6CAA6C,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;QAC5G,CAAC;QAED,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YACjE,OAAO,EAAE,OAAO,EAAE,gBAAgB,EAAE,IAAI,EAAE,CAAC;QAC7C,CAAC;QACD,OAAO,EAAE,OAAO,EAAE,gBAAgB,EAAE,KAAK,EAAE,CAAC;IAC9C,CAAC;IAED;;;;OAIG;IACH,WAAW,CAAC,MAAc;QACxB,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IACxD,CAAC;IAED;;;;OAIG;IACH,cAAc,CAAC,MAAc,EAAE,OAAuB;QACpD,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC;QACzE,MAAM,GAAG,GAAqD,EAAE,CAAC;QACjE,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,IAAI,CAAC,MAAM,CAAC,EAAE;gBAAE,SAAS;YACzB,IAAI,UAAU,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;gBAAE,SAAS,CAAC,6CAA6C;YAC9G,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;YAC5D,IAAI,CAAC,IAAI;gBAAE,SAAS;YACpB,IAAI,IAAI,CAAC,MAAM,KAAK,WAAW,IAAI,IAAI,CAAC,MAAM,KAAK,cAAc;gBAAE,SAAS;YAC5E,GAAG,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;QAC7B,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IAED,iFAAiF;IACjF,QAAQ,CAAC,MAAc,EAAE,QAAgB,EAAE,MAAc,EAAE,QAAgB;QACzE,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAC3D,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,YAAY,CAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;IACvE,CAAC;IAED,yEAAyE;IACzE,QAAQ,CAAC,MAAc,EAAE,QAAgB,EAAE,MAAkB,EAAE,KAAc;QAC3E,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QAC3D,IAAI,CAAC,IAAI;YAAE,OAAO;QAClB,IAAI,IAAI,CAAC,MAAM,KAAK,WAAW,IAAI,MAAM,KAAK,WAAW;YAAE,OAAO,CAAC,mCAAmC;QACtG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,aAAa,CAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;IACrE,CAAC;IAED;;;;;OAKG;IACH,YAAY,CAAC,MAAc,EAAE,QAAgB,EAAE,OAAsB;QACnE,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QAC3D,IAAI,CAAC,IAAI;YAAE,OAAO;QAClB,QAAQ,OAAO,CAAC,IAAI,EAAE,CAAC;YACrB,KAAK,WAAW;gBACd,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,YAAY,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;gBACrF,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC;gBACnD,OAAO;YACT,KAAK,QAAQ;gBACX,uEAAuE;gBACvE,wEAAwE;gBACxE,gDAAgD;gBAChD,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,YAAY,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;gBACrF,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC;gBACnD,OAAO;YACT,KAAK,kBAAkB;gBACrB,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,YAAY,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;gBACrF,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,QAAQ,EAAE,kBAAkB,CAAC,CAAC;gBAC1D,OAAO;YACT,KAAK,cAAc;gBACjB,qEAAqE;gBACrE,mEAAmE;gBACnE,IAAI,CAAC,IAAI,CAAC,MAAM;oBAAE,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,QAAQ,EAAE,cAAc,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;gBACxF,OAAO;YACT,KAAK,WAAW;gBACd,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,YAAY,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,IAAI,SAAS,CAAC,CAAC;gBAC/F,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;gBACnE,OAAO;YACT,KAAK,QAAQ;gBACX,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;oBACtB,oEAAoE;oBACpE,oEAAoE;oBACpE,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;oBACpE,OAAO;gBACT,CAAC;gBACD,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;gBAC/D,OAAO;QACX,CAAC;IACH,CAAC;IAED,yEAAyE;IACzE,aAAa,CAAC,MAAc,EAAE,QAAgB,EAAE,MAAc,EAAE,QAAgB;QAC9E,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,YAAY,CAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;QACrE,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC;IACrD,CAAC;IAEO,cAAc,CACpB,MAAc,EACd,QAAgB,EAChB,IAAiE,EACjE,KAAc;QAEd,IAAI,CAAC;YACH,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;QACpE,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,eAAM,CAAC,KAAK,CAAC,0BAA0B,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAG,CAAW,CAAC,OAAO,EAAE,CAAC,CAAC;QACpG,CAAC;IACH,CAAC;IAED,sFAAsF;IACtF,aAAa,CAAC,MAAc,EAAE,KAAa,EAAE,OAAe;QAC1D,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO,CAAC,CAAC;IACjF,CAAC;IAED,cAAc,CAAC,MAAc,EAAE,KAAa,EAAE,OAAe;QAC3D,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,kBAAkB,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO,CAAC,CAAC;IAC9E,CAAC;IAED,eAAe,CAAC,MAAc,EAAE,KAAa;QAC3C,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,gBAAgB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IACtD,CAAC;IAED,oFAAoF;IACpF,MAAM,CAAC,IAAiB,EAAE,QAAwB,EAAE,OAAuB;QACzE,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACrE,MAAM,GAAG,GAAG,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAa,CAAC;QACtG,KAAK,MAAM,QAAQ,IAAI,GAAG,EAAE,CAAC;YAC3B,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;YAChE,IAAI,CAAC,IAAI;gBAAE,SAAS;YACpB,0EAA0E;YAC1E,sEAAsE;YACtE,IAAI,IAAI,CAAC,MAAM,KAAK,kBAAkB,IAAI,IAAI,CAAC,MAAM,KAAK,gBAAgB;gBAAE,SAAS;YACrF,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,IAAI,IAAI,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;gBAC5D,yEAAyE;gBACzE,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,CAAC,SAAS,IAAI,yBAAyB,CAAC,CAAC;YAClH,CAAC;QACH,CAAC;QACD,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACjE,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACxD,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAElD,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAClE,QAAQ,EAAE,CAAC,CAAC,QAAQ;YACpB,MAAM,EAAE,CAAC,CAAC,MAAM;YAChB,MAAM,EAAE,CAAC,CAAC,MAAM;YAChB,KAAK,EAAE,CAAC,CAAC,SAAS;SACnB,CAAC,CAAC,CAAC;QAEJ,MAAM,IAAI,GAAG,CAAC,CAAa,EAAE,EAAE,CAC7B,CAAC,KAAK,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,cAAc,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,UAAU,CAAC;QAClF,eAAM,CAAC,IAAI,CACT,QAAQ,IAAI,CAAC,MAAM,IAAI,MAAM,IAAI;YAC/B,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,KAAK,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EACrJ,EAAE,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,CAC9B,CAAC;QAEF,OAAO,EAAE,UAAU,EAAE,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,gBAAgB,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;IAClG,CAAC;IAED;;;;;OAKG;IACK,uBAAuB,CAAC,MAAc,EAAE,MAAc;QAC5D,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,QAAQ;YAAE,OAAO;QAChF,IAAI,CAAC;YACH,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,mBAAmB,CAAC,MAAM,CAAC;gBAAE,OAAO;YAC7D,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;YAC9D,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,WAAW,CAAC;gBAC/B,WAAW,EAAE,MAAM;gBACnB,MAAM;gBACN,KAAK,EAAE,mBAAmB;gBAC1B,eAAe,EAAE,CAAC;gBAClB,MAAM,EAAE,EAAE,OAAO,EAAE;aACpB,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,eAAM,CAAC,KAAK,CAAC,qCAAqC,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAG,KAAe,CAAC,OAAO,EAAE,CAAC,CAAC;QACzG,CAAC;IACH,CAAC;IAED,gBAAgB,CAAC,MAAc,EAAE,QAAwB;QAAuB,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAC3I,QAAQ,EAAE,CAAC,CAAC,QAAQ;YACpB,MAAM,EAAE,CAAC,CAAC,MAAM;YAChB,MAAM,EAAE,CAAC,CAAC,MAAM;YAChB,KAAK,EAAE,CAAC,CAAC,SAAS;SACnB,CAAC,CAAC,CAAC;QACJ,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACpD,OAAO;YACL,UAAU,EAAE,QAAQ,CAAC,EAAE;YACvB,MAAM;YACN,MAAM,EAAG,OAAO,EAAE,MAAqB,IAAI,SAAS;YACpD,gBAAgB,EAAE,IAAI;YACtB,KAAK;SACN,CAAC;IACJ,CAAC;CACF;AA1RD,0CA0RC;AAED,6EAA6E;AAC7E,SAAgB,mBAAmB,CAAC,QAAoC,EAAE,MAAwB;IAChG,OAAO,IAAA,qCAAgB,EAAC,QAAQ,EAAE,MAAM,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;AAChE,CAAC"}
|
|
@@ -115,6 +115,23 @@ export declare class SlotRepository extends BaseRepository {
|
|
|
115
115
|
};
|
|
116
116
|
/** Slots whose lease expired while still non-terminal (crashed workers). */
|
|
117
117
|
slotsWithStaleLease(now?: number): string[];
|
|
118
|
+
/**
|
|
119
|
+
* Non-terminal slots no live worker currently owns, and which therefore should
|
|
120
|
+
* be re-dispatched.
|
|
121
|
+
*
|
|
122
|
+
* Two distinct situations qualify, and both must be recovered:
|
|
123
|
+
* - `lease_until <= now`: a worker claimed the slot and then died (crash, OOM,
|
|
124
|
+
* machine stop, redeploy). Its heartbeat stopped, so the lease expired.
|
|
125
|
+
* - `lease_until IS NULL`: a durable slot was recorded (accepted) but no worker
|
|
126
|
+
* ever claimed it — e.g. the process died between "occurrence recorded" and
|
|
127
|
+
* "lease claimed". Nothing else will ever pick that up.
|
|
128
|
+
*
|
|
129
|
+
* Callers must NOT clear the lease from here. Recovery re-DISPATCHES the slot
|
|
130
|
+
* and the atomic CAS in `claimSlotLease` still elects the single winner, so a
|
|
131
|
+
* merely slow (but healthy) owner that heartbeats mid-scan cannot be robbed by
|
|
132
|
+
* a read-then-clear race.
|
|
133
|
+
*/
|
|
134
|
+
recoverableSlots(now?: number): SlotRecord[];
|
|
118
135
|
/** Record an error without changing terminality (retryable failure keeps the cell resumable). */
|
|
119
136
|
setCellError(slotId: string, targetId: string, error: string): void;
|
|
120
137
|
/** Work ids already locked in THIS slot (to stop two cells taking the same work). */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SlotRepository.d.ts","sourceRoot":"","sources":["../../../src/storage/repositories/SlotRepository.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"SlotRepository.d.ts","sourceRoot":"","sources":["../../../src/storage/repositories/SlotRepository.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD,MAAM,MAAM,UAAU,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,QAAQ,GAAG,SAAS,CAAC;AAC9F,MAAM,MAAM,UAAU,GAClB,SAAS,GACT,UAAU,GACV,gBAAgB,GAChB,kBAAkB,GAClB,WAAW,GACX,cAAc,GACd,WAAW,GACX,QAAQ,CAAC;AAEb,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,2EAA2E;IAC3E,UAAU,EAAE,MAAM,CAAC;IACnB,2EAA2E;IAC3E,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,0EAA0E;IAC1E,cAAc,EAAE,MAAM,CAAC;IACvB,uEAAuE;IACvE,eAAe,EAAE,MAAM,CAAC;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,0EAA0E;IAC1E,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,MAAM,EAAE,UAAU,CAAC;IACnB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAE7B,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B;AAED,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,MAAM,EAAE,UAAU,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B;AAED;;;;;;;;GAQG;AACH,qBAAa,cAAe,SAAQ,cAAc;IAChD;;;;;OAKG;IACI,eAAe,CACpB,EAAE,EAAE,MAAM,EACV,IAAI,EAAE;QACJ,UAAU,EAAE,MAAM,CAAC;QACnB,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAC7B,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,SAAS,EAAE,MAAM,EAAE,CAAC;QACpB,aAAa,CAAC,EAAE,MAAM,CAAC;QAEvB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,GACA;QAAE,IAAI,EAAE,UAAU,CAAC;QAAC,OAAO,EAAE,OAAO,CAAA;KAAE;IA0BlC,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI;IAK7C,gFAAgF;IACzE,gBAAgB,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,EAAE;IAatC,cAAc,CAAC,KAAK,SAAK,GAAG,UAAU,EAAE;IAOxC,cAAc,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI;IAU3E,6CAA6C;IACtC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,cAAc,EAAE;IAO1C,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,cAAc,GAAG,IAAI;IAOvE;;;;;OAKG;IACI,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,gBAAgB,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,MAAM,GAAG,MAAM,EAAE;IAoBhH,6DAA6D;IACtD,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,cAAc;IAWrF;;;;OAIG;IACI,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,cAAc;IAevG,4FAA4F;IACrF,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI;IAWrD,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI;IAahG;;;OAGG;IACI,cAAc,CACnB,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,UAAU,EAChB,KAAK,CAAC,EAAE,MAAM,GACb,cAAc;IAajB;;;;;OAKG;IACI,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,GAAE,MAAmB,GAAG,OAAO;IAYpG,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,GAAE,MAAmB,GAAG,IAAI;IASrG,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IASrD,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG;QAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE;IAOnF,4EAA4E;IACrE,mBAAmB,CAAC,GAAG,GAAE,MAAmB,GAAG,MAAM,EAAE;IAM9D;;;;;;;;;;;;;;;OAeG;IACI,gBAAgB,CAAC,GAAG,GAAE,MAAmB,GAAG,UAAU,EAAE;IAY/D,iGAAiG;IAC1F,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAS1E,qFAAqF;IAC9E,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC;IAOpD,8CAA8C;IACvC,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU;IAWnD,OAAO,CAAC,MAAM;IA8Bd,OAAO,CAAC,MAAM;CAef"}
|
|
@@ -211,12 +211,34 @@ class SlotRepository extends BaseRepository_1.BaseRepository {
|
|
|
211
211
|
}
|
|
212
212
|
/** Slots whose lease expired while still non-terminal (crashed workers). */
|
|
213
213
|
slotsWithStaleLease(now = Date.now()) {
|
|
214
|
+
return this.recoverableSlots(now)
|
|
215
|
+
.filter((slot) => slot.leaseUntil !== null)
|
|
216
|
+
.map((slot) => slot.id);
|
|
217
|
+
}
|
|
218
|
+
/**
|
|
219
|
+
* Non-terminal slots no live worker currently owns, and which therefore should
|
|
220
|
+
* be re-dispatched.
|
|
221
|
+
*
|
|
222
|
+
* Two distinct situations qualify, and both must be recovered:
|
|
223
|
+
* - `lease_until <= now`: a worker claimed the slot and then died (crash, OOM,
|
|
224
|
+
* machine stop, redeploy). Its heartbeat stopped, so the lease expired.
|
|
225
|
+
* - `lease_until IS NULL`: a durable slot was recorded (accepted) but no worker
|
|
226
|
+
* ever claimed it — e.g. the process died between "occurrence recorded" and
|
|
227
|
+
* "lease claimed". Nothing else will ever pick that up.
|
|
228
|
+
*
|
|
229
|
+
* Callers must NOT clear the lease from here. Recovery re-DISPATCHES the slot
|
|
230
|
+
* and the atomic CAS in `claimSlotLease` still elects the single winner, so a
|
|
231
|
+
* merely slow (but healthy) owner that heartbeats mid-scan cannot be robbed by
|
|
232
|
+
* a read-then-clear race.
|
|
233
|
+
*/
|
|
234
|
+
recoverableSlots(now = Date.now()) {
|
|
214
235
|
const rows = this.db
|
|
215
|
-
.prepare(`SELECT
|
|
216
|
-
WHERE
|
|
217
|
-
AND
|
|
236
|
+
.prepare(`SELECT * FROM schedule_slots
|
|
237
|
+
WHERE status IN ('pending','running')
|
|
238
|
+
AND (lease_until IS NULL OR lease_until <= @now)
|
|
239
|
+
ORDER BY COALESCE(occurrence_at, 0) ASC`)
|
|
218
240
|
.all({ now });
|
|
219
|
-
return rows.map((r) => r
|
|
241
|
+
return rows.map((r) => this.toSlot(r));
|
|
220
242
|
}
|
|
221
243
|
/** Record an error without changing terminality (retryable failure keeps the cell resumable). */
|
|
222
244
|
setCellError(slotId, targetId, error) {
|