trigger.dev
Version:
A Command-Line Interface for Trigger.dev projects
67 lines (66 loc) • 2.69 kB
TypeScript
import { CompletedWaitpoint, ExecutorToWorkerMessageCatalog, MachinePresetResources, ServerBackgroundWorker, TaskRunExecutionPayload, TaskRunExecutionResult, type TaskRunInternalError, WorkerManifest } from "@trigger.dev/core/v3";
import { Evt } from "evt";
import { InferSocketMessageSchema } from "@trigger.dev/core/v3/zodSocket";
export type OnSendDebugLogMessage = InferSocketMessageSchema<typeof ExecutorToWorkerMessageCatalog, "SEND_DEBUG_LOG">;
export type OnSetSuspendableMessage = InferSocketMessageSchema<typeof ExecutorToWorkerMessageCatalog, "SET_SUSPENDABLE">;
export type TaskRunProcessOptions = {
workerManifest: WorkerManifest;
serverWorker: ServerBackgroundWorker;
env: Record<string, string>;
machineResources: MachinePresetResources;
isWarmStart?: boolean;
cwd?: string;
gracefulTerminationTimeoutInMs?: number;
};
export type TaskRunProcessExecuteParams = {
payload: TaskRunExecutionPayload;
messageId: string;
env?: Record<string, string>;
};
export declare class TaskRunProcess {
#private;
readonly options: TaskRunProcessOptions;
private _ipc?;
private _child;
private _childPid?;
private _attemptPromises;
private _attemptStatuses;
private _currentExecution;
private _gracefulExitTimeoutElapsed;
private _isBeingKilled;
private _isBeingCancelled;
private _isBeingSuspended;
private _isMaxDurationExceeded;
private _maxDurationInfo?;
private _stderr;
onTaskRunHeartbeat: Evt<string>;
onExit: Evt<{
code: number | null;
signal: NodeJS.Signals | null;
pid?: number;
}>;
onSendDebugLog: Evt<OnSendDebugLogMessage>;
onSetSuspendable: Evt<OnSetSuspendableMessage>;
private _isPreparedForNextRun;
private _isPreparedForNextAttempt;
constructor(options: TaskRunProcessOptions);
get isPreparedForNextRun(): boolean;
get isPreparedForNextAttempt(): boolean;
unsafeDetachEvtHandlers(): void;
cancel(): Promise<void>;
cleanup(kill?: boolean): Promise<void>;
initialize(): this;
execute(params: TaskRunProcessExecuteParams, isWarmStart?: boolean): Promise<TaskRunExecutionResult>;
isExecuting(): boolean;
waitpointCompleted(waitpoint: CompletedWaitpoint): void;
/** This will never throw. */
kill(signal?: number | NodeJS.Signals, timeoutInMs?: number): Promise<void>;
suspend({ flush }: {
flush: boolean;
}): Promise<void>;
get isBeingKilled(): boolean | undefined;
get isBeingSuspended(): boolean;
get pid(): number | undefined;
get isHealthy(): boolean;
static parseExecuteError(error: unknown, dockerMode?: boolean): TaskRunInternalError;
}