velocious 1.0.529 → 1.0.532
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/README.md +5 -2
- package/build/background-jobs/job-runner.js +5 -3
- package/build/background-jobs/pooled-runner-child.js +53 -16
- package/build/background-jobs/worker.js +193 -42
- package/build/configuration-types.js +1 -0
- package/build/configuration.js +33 -4
- package/build/database/drivers/mysql/sql/alter-table.js +42 -0
- package/build/database/query/preloader/belongs-to.js +9 -9
- package/build/database/query/preloader/has-many.js +8 -8
- package/build/database/query/preloader/has-one.js +5 -5
- package/build/database/tenants/schema-cloner.js +46 -9
- package/build/src/background-jobs/job-runner.d.ts +3 -1
- package/build/src/background-jobs/job-runner.d.ts.map +1 -1
- package/build/src/background-jobs/job-runner.js +8 -4
- package/build/src/background-jobs/pooled-runner-child.js +49 -18
- package/build/src/background-jobs/worker.d.ts +85 -14
- package/build/src/background-jobs/worker.d.ts.map +1 -1
- package/build/src/background-jobs/worker.js +189 -45
- package/build/src/configuration-types.d.ts +5 -0
- package/build/src/configuration-types.d.ts.map +1 -1
- package/build/src/configuration-types.js +2 -1
- package/build/src/configuration.d.ts +6 -0
- package/build/src/configuration.d.ts.map +1 -1
- package/build/src/configuration.js +34 -4
- package/build/src/database/drivers/mysql/sql/alter-table.d.ts.map +1 -1
- package/build/src/database/drivers/mysql/sql/alter-table.js +36 -1
- package/build/src/database/query/preloader/belongs-to.js +10 -12
- package/build/src/database/query/preloader/has-many.js +9 -11
- package/build/src/database/query/preloader/has-one.js +6 -7
- package/build/src/database/tenants/schema-cloner.d.ts +10 -0
- package/build/src/database/tenants/schema-cloner.d.ts.map +1 -1
- package/build/src/database/tenants/schema-cloner.js +36 -9
- package/package.json +3 -1
- package/src/background-jobs/job-runner.js +5 -3
- package/src/background-jobs/pooled-runner-child.js +53 -16
- package/src/background-jobs/worker.js +193 -42
- package/src/configuration-types.js +1 -0
- package/src/configuration.js +33 -4
- package/src/database/drivers/mysql/sql/alter-table.js +42 -0
- package/src/database/query/preloader/belongs-to.js +9 -9
- package/src/database/query/preloader/has-many.js +8 -8
- package/src/database/query/preloader/has-one.js +5 -5
- package/src/database/tenants/schema-cloner.js +46 -9
|
@@ -16,20 +16,22 @@ export default class BackgroundJobsWorker {
|
|
|
16
16
|
* @param {number} [args.maxConcurrentForkedJobs] - Override the process runner concurrency cap from `configuration.getBackgroundJobsConfig()`.
|
|
17
17
|
* @param {number} [args.maxConcurrentInlineJobs] - Override the inline-job concurrency cap from `configuration.getBackgroundJobsConfig()`.
|
|
18
18
|
* @param {number} [args.pooledRunnerCount] - Override the pooled runner count.
|
|
19
|
+
* @param {number} [args.pooledRunnerConcurrency] - Override the per-runner concurrency.
|
|
19
20
|
* @param {number} [args.pooledRunnerMaxJobs] - Override the per-runner recycle job count.
|
|
20
21
|
* @param {number} [args.pooledRunnerMaxRssBytes] - Override the per-runner recycle RSS limit.
|
|
21
22
|
* @param {number} [args.pooledRunnerMaxLifetimeMs] - Override the per-runner recycle lifetime.
|
|
22
23
|
* @param {number} [args.forkedChildSigkillGraceMs] - Override the grace period between SIGTERM and SIGKILL when reaping lingering process runners on stop.
|
|
23
24
|
* @param {number} [args.heartbeatIntervalMs] - Override the liveness heartbeat interval (default 15000ms).
|
|
24
|
-
* @param {number} [args.jobTimeoutMs] - Override the
|
|
25
|
+
* @param {number} [args.jobTimeoutMs] - Override the wall-clock timeout for forked and pooled jobs from `configuration.getBackgroundJobsConfig()`. `0` disables it.
|
|
25
26
|
*/
|
|
26
|
-
constructor({ configuration, host, port, maxConcurrentForkedJobs, maxConcurrentInlineJobs, pooledRunnerCount, pooledRunnerMaxJobs, pooledRunnerMaxRssBytes, pooledRunnerMaxLifetimeMs, forkedChildSigkillGraceMs, heartbeatIntervalMs, jobTimeoutMs }?: {
|
|
27
|
+
constructor({ configuration, host, port, maxConcurrentForkedJobs, maxConcurrentInlineJobs, pooledRunnerCount, pooledRunnerConcurrency, pooledRunnerMaxJobs, pooledRunnerMaxRssBytes, pooledRunnerMaxLifetimeMs, forkedChildSigkillGraceMs, heartbeatIntervalMs, jobTimeoutMs }?: {
|
|
27
28
|
configuration?: import("../configuration.js").default | undefined;
|
|
28
29
|
host?: string | undefined;
|
|
29
30
|
port?: number | undefined;
|
|
30
31
|
maxConcurrentForkedJobs?: number | undefined;
|
|
31
32
|
maxConcurrentInlineJobs?: number | undefined;
|
|
32
33
|
pooledRunnerCount?: number | undefined;
|
|
34
|
+
pooledRunnerConcurrency?: number | undefined;
|
|
33
35
|
pooledRunnerMaxJobs?: number | undefined;
|
|
34
36
|
pooledRunnerMaxRssBytes?: number | undefined;
|
|
35
37
|
pooledRunnerMaxLifetimeMs?: number | undefined;
|
|
@@ -69,10 +71,12 @@ export default class BackgroundJobsWorker {
|
|
|
69
71
|
* @type {number} */
|
|
70
72
|
maxConcurrentForkedJobs: number;
|
|
71
73
|
pooledRunnerCountOverride: number | undefined;
|
|
74
|
+
pooledRunnerConcurrencyOverride: number | undefined;
|
|
72
75
|
pooledRunnerMaxJobsOverride: number | undefined;
|
|
73
76
|
pooledRunnerMaxRssBytesOverride: number | undefined;
|
|
74
77
|
pooledRunnerMaxLifetimeMsOverride: number | undefined;
|
|
75
78
|
pooledRunnerCount: number;
|
|
79
|
+
pooledRunnerConcurrency: number;
|
|
76
80
|
pooledRunnerMaxJobs: number;
|
|
77
81
|
pooledRunnerMaxRssBytes: number;
|
|
78
82
|
pooledRunnerMaxLifetimeMs: number;
|
|
@@ -83,7 +87,7 @@ export default class BackgroundJobsWorker {
|
|
|
83
87
|
*/
|
|
84
88
|
forkedChildSigkillGraceMs: number;
|
|
85
89
|
/**
|
|
86
|
-
* Constructor override for the forked
|
|
90
|
+
* Constructor override for the forked and pooled wall-clock job timeout. When unset the
|
|
87
91
|
* timeout is read from `configuration.getBackgroundJobsConfig().jobTimeoutMs`
|
|
88
92
|
* at fork time (default: disabled).
|
|
89
93
|
* @type {number | undefined}
|
|
@@ -138,15 +142,20 @@ export default class BackgroundJobsWorker {
|
|
|
138
142
|
inflightPooledJobs: Set<Promise<void>>;
|
|
139
143
|
/** @type {Set<import("node:child_process").ChildProcess>} */
|
|
140
144
|
pooledChildren: Set<import("node:child_process").ChildProcess>;
|
|
141
|
-
/** @type {Map<import("node:child_process").ChildProcess, {createdAtMs: number, jobsRun: number, payload
|
|
145
|
+
/** @type {Map<import("node:child_process").ChildProcess, {createdAtMs: number, jobsRun: number, inflight: Map<string, {payload: import("./types.js").BackgroundJobPayload & {id: string}, resolve?: (value: void) => void, timeoutTimer?: ReturnType<typeof setTimeout> | null}>, retiring: boolean, settling?: boolean, timeoutSigkillTimer?: ReturnType<typeof setTimeout> | null}>} */
|
|
142
146
|
pooledChildStates: Map<import("node:child_process").ChildProcess, {
|
|
143
147
|
createdAtMs: number;
|
|
144
148
|
jobsRun: number;
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
+
inflight: Map<string, {
|
|
150
|
+
payload: import("./types.js").BackgroundJobPayload & {
|
|
151
|
+
id: string;
|
|
152
|
+
};
|
|
153
|
+
resolve?: (value: void) => void;
|
|
154
|
+
timeoutTimer?: ReturnType<typeof setTimeout> | null;
|
|
155
|
+
}>;
|
|
156
|
+
retiring: boolean;
|
|
149
157
|
settling?: boolean;
|
|
158
|
+
timeoutSigkillTimer?: ReturnType<typeof setTimeout> | null;
|
|
150
159
|
}>;
|
|
151
160
|
/**
|
|
152
161
|
* Runs start.
|
|
@@ -271,20 +280,62 @@ export default class BackgroundJobsWorker {
|
|
|
271
280
|
*/
|
|
272
281
|
_trackPooledJob(pooledJob: Promise<void>): void;
|
|
273
282
|
/**
|
|
274
|
-
*
|
|
283
|
+
* Free pooled slots across the pool: open slots in non-retiring children plus
|
|
284
|
+
* the slots we could add by spawning more children up to `pooledRunnerCount`.
|
|
285
|
+
* Retiring children (draining before replacement) never contribute capacity.
|
|
286
|
+
* @returns {number} - Number of pooled jobs the worker can accept right now.
|
|
287
|
+
*/
|
|
288
|
+
_availablePooledSlots(): number;
|
|
289
|
+
/**
|
|
290
|
+
* Runs a payload on a pooled child with a free concurrency slot, spawning a
|
|
291
|
+
* new child when every non-retiring child is full and the pool is below
|
|
292
|
+
* `pooledRunnerCount`. Each child runs up to `pooledRunnerConcurrency` jobs at
|
|
293
|
+
* once on its own event loop.
|
|
275
294
|
* @param {import("./types.js").BackgroundJobPayload & {id: string}} payload - Job payload.
|
|
276
295
|
* @returns {Promise<void>} - Resolves after the durable report.
|
|
277
296
|
*/
|
|
278
297
|
_runPooledJob(payload: import("./types.js").BackgroundJobPayload & {
|
|
279
298
|
id: string;
|
|
280
299
|
}): Promise<void>;
|
|
300
|
+
/**
|
|
301
|
+
* Arms a per-job wall-clock backstop for a pooled job. A pooled child hosts many
|
|
302
|
+
* concurrent jobs, so a single genuinely-hung job would otherwise pin its
|
|
303
|
+
* runner's concurrency slot forever — the lifetime recycle only retires a child
|
|
304
|
+
* once its in-flight set drains, which a hung job never does. On overrun the
|
|
305
|
+
* whole child is terminated so the hung job (and its siblings) requeue. Returns
|
|
306
|
+
* the timer, or null when no timeout is configured.
|
|
307
|
+
* @param {object} args - Options.
|
|
308
|
+
* @param {import("node:child_process").ChildProcess} args.child - Pooled child.
|
|
309
|
+
* @param {string} args.jobId - Job id whose overrun is guarded.
|
|
310
|
+
* @returns {ReturnType<typeof setTimeout> | null} - The armed timer, or null.
|
|
311
|
+
*/
|
|
312
|
+
_armPooledJobTimeout({ child, jobId }: {
|
|
313
|
+
child: import("node:child_process").ChildProcess;
|
|
314
|
+
jobId: string;
|
|
315
|
+
}): ReturnType<typeof setTimeout> | null;
|
|
316
|
+
/**
|
|
317
|
+
* Fired when a pooled job overruns its timeout. Terminates the child running it
|
|
318
|
+
* (SIGTERM, then SIGKILL after the grace) — a hung JS job cannot be cancelled
|
|
319
|
+
* any other way. The non-clean exit flows through `_handlePooledChildFailure`,
|
|
320
|
+
* which reports every in-flight job on the child failed (so they requeue) and
|
|
321
|
+
* drops it from tracking; capacity is refilled on the next dispatch.
|
|
322
|
+
* @param {object} args - Options.
|
|
323
|
+
* @param {import("node:child_process").ChildProcess} args.child - Pooled child.
|
|
324
|
+
* @param {string} args.jobId - Job id that overran.
|
|
325
|
+
* @returns {void}
|
|
326
|
+
*/
|
|
327
|
+
_onPooledJobTimeout({ child, jobId }: {
|
|
328
|
+
child: import("node:child_process").ChildProcess;
|
|
329
|
+
jobId: string;
|
|
330
|
+
}): void;
|
|
281
331
|
/**
|
|
282
332
|
* Creates a reusable pooled child.
|
|
283
333
|
* @returns {import("node:child_process").ChildProcess} - New pooled child.
|
|
284
334
|
*/
|
|
285
335
|
_createPooledChild(): import("node:child_process").ChildProcess;
|
|
286
336
|
/**
|
|
287
|
-
* Handles a pooled child's durable-report acknowledgement.
|
|
337
|
+
* Handles a pooled child's per-job durable-report acknowledgement. A child
|
|
338
|
+
* runs jobs concurrently and reports one `job-outcome` per job id.
|
|
288
339
|
* @param {object} args - Message details.
|
|
289
340
|
* @param {import("node:child_process").ChildProcess} args.child - Pooled child.
|
|
290
341
|
* @param {?} args.message - IPC message.
|
|
@@ -295,13 +346,33 @@ export default class BackgroundJobsWorker {
|
|
|
295
346
|
message: unknown;
|
|
296
347
|
}): void;
|
|
297
348
|
/**
|
|
298
|
-
*
|
|
349
|
+
* Marks a pooled child for retirement and eagerly spawns a single replacement
|
|
350
|
+
* (1-for-1) so its capacity is restored immediately without waiting for it to
|
|
351
|
+
* finish draining. The retiring child stops receiving new jobs and is
|
|
352
|
+
* terminated only once its in-flight set drains, so a long-running job (e.g. a
|
|
353
|
+
* build) is never cut off.
|
|
354
|
+
* @param {import("node:child_process").ChildProcess} child - Child to retire.
|
|
355
|
+
* @returns {void}
|
|
356
|
+
*/
|
|
357
|
+
_beginRetirePooledChild(child: import("node:child_process").ChildProcess): void;
|
|
358
|
+
/**
|
|
359
|
+
* Terminates a retiring pooled child once it has no in-flight jobs left.
|
|
360
|
+
* @param {import("node:child_process").ChildProcess} child - Child to check.
|
|
361
|
+
* @returns {void}
|
|
362
|
+
*/
|
|
363
|
+
_terminateIfDrained(child: import("node:child_process").ChildProcess): void;
|
|
364
|
+
/**
|
|
365
|
+
* Retires a drained pooled child (removes it from tracking, then SIGTERMs it).
|
|
299
366
|
* @param {import("node:child_process").ChildProcess} child - Child process to retire.
|
|
300
367
|
* @returns {void}
|
|
301
368
|
*/
|
|
302
369
|
_retirePooledChild(child: import("node:child_process").ChildProcess): void;
|
|
303
370
|
/**
|
|
304
|
-
* Removes and reports
|
|
371
|
+
* Removes an exited/unhealthy pooled child and reports every job that was
|
|
372
|
+
* in-flight on it as failed — a process-level crash's blast radius is the
|
|
373
|
+
* child's whole in-flight set. Capacity is refilled lazily on the next
|
|
374
|
+
* dispatch (a spawnable slot is still advertised), avoiding a tight respawn
|
|
375
|
+
* loop when a child crashes on startup.
|
|
305
376
|
* @param {object} args - Failure details.
|
|
306
377
|
* @param {import("node:child_process").ChildProcess} args.child - Pooled child.
|
|
307
378
|
* @param {?} args.error - Failure.
|
|
@@ -359,12 +430,12 @@ export default class BackgroundJobsWorker {
|
|
|
359
430
|
child: import("node:child_process").ChildProcess;
|
|
360
431
|
}): ForkedJobTimeoutState;
|
|
361
432
|
/**
|
|
362
|
-
* Resolves the effective
|
|
433
|
+
* Resolves the effective wall-clock job timeout in ms (shared by forked and pooled jobs), or null when disabled. The
|
|
363
434
|
* constructor override wins; otherwise the value comes from the background-jobs
|
|
364
435
|
* configuration. A non-positive value disables the backstop.
|
|
365
436
|
* @returns {number | null} - Timeout in ms, or null when disabled.
|
|
366
437
|
*/
|
|
367
|
-
|
|
438
|
+
_resolveJobTimeoutMs(): number | null;
|
|
368
439
|
/**
|
|
369
440
|
* Fired when a forked runner overruns its timeout. Sends SIGTERM for a clean
|
|
370
441
|
* shutdown, then SIGKILL after the grace for a runner that ignores it. The
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"worker.d.ts","sourceRoot":"","sources":["../../../src/background-jobs/worker.js"],"names":[],"mappings":"AAiDA;;;;;;;GAOG;AAEH;IACE
|
|
1
|
+
{"version":3,"file":"worker.d.ts","sourceRoot":"","sources":["../../../src/background-jobs/worker.js"],"names":[],"mappings":"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"}
|