Skip to content

CoordinatedShutdown

Defined in: src/CoordinatedShutdown.ts:79

Lifecycle coordinator that runs registered tasks in well-known phases. Ordinary application code calls addTask(phase, name, task); the runtime guarantees task order across phases and bounded parallelism within a phase. Task failures are logged and do NOT by default abort the rest of the pipeline.

new CoordinatedShutdown(system): CoordinatedShutdown

Defined in: src/CoordinatedShutdown.ts:95

ActorSystem

CoordinatedShutdown

defaultPhaseTimeoutMs: number = 5_000

Defined in: src/CoordinatedShutdown.ts:93

Default per-phase timeout in ms. Can be changed globally or per-phase via setPhaseTimeout. 5 seconds is a reasonable balance between letting slow tasks finish and not blocking shutdown indefinitely.

get isComplete(): boolean

Defined in: src/CoordinatedShutdown.ts:163

True once run() has completed (successful or not).

boolean


get isRunning(): boolean

Defined in: src/CoordinatedShutdown.ts:161

True once run() has been kicked off.

boolean

addPhase(def): void

Defined in: src/CoordinatedShutdown.ts:141

Add a custom phase. dependsOn tells the coordinator where in the order it sits.

PhaseDefinition

void


addTask(phase, name, task): void

Defined in: src/CoordinatedShutdown.ts:128

Register a task to run during the given phase. Task names must be unique within a phase.

string

string

ShutdownTask

void


installProcessHooks(signals?): void

Defined in: src/CoordinatedShutdown.ts:179

Install SIGTERM / SIGINT handlers that call run(ProcessTerminateReason). Calling twice is harmless. Uninstall via removeProcessHooks.

Signals[] = ...

void


removeProcessHooks(): void

Defined in: src/CoordinatedShutdown.ts:192

void


run(reason?): Promise<void>

Defined in: src/CoordinatedShutdown.ts:169

Run the pipeline. Safe to call from multiple sites — subsequent calls return the same in-flight promise.

Reason = UnknownReason.instance

Promise<void>


setPhaseTimeout(phase, timeoutMs): void

Defined in: src/CoordinatedShutdown.ts:154

Override the timeout for a phase. Uses defaultPhaseTimeoutMs by default.

string

number

void