trigger.dev
Version:
A Command-Line Interface for Trigger.dev projects
63 lines (62 loc) • 2.12 kB
TypeScript
import { WorkerManifest } from "@trigger.dev/core/v3";
import { TaskRunProcess } from "../../executions/taskRunProcess.js";
import { RunnerEnv } from "./env.js";
import { RunLogger } from "./logger.js";
export interface TaskRunProcessProviderOptions {
workerManifest: WorkerManifest;
env: RunnerEnv;
logger: RunLogger;
processKeepAliveEnabled: boolean;
processKeepAliveMaxExecutionCount: number;
}
export interface GetProcessOptions {
taskRunEnv: Record<string, string>;
isWarmStart?: boolean;
}
export declare class TaskRunProcessProvider {
private readonly workerManifest;
private readonly env;
private readonly logger;
private readonly processKeepAliveEnabled;
private readonly processKeepAliveMaxExecutionCount;
private persistentProcess;
private executionCount;
constructor(opts: TaskRunProcessProviderOptions);
get hasPersistentProcess(): boolean;
handleImmediateRetry(): Promise<void>;
/**
* Gets a TaskRunProcess, either by reusing an existing one or creating a new one
*/
getProcess(opts: GetProcessOptions): Promise<TaskRunProcess>;
/**
* Returns a process after execution, handling keep-alive logic and cleanup
*/
returnProcess(process: TaskRunProcess): Promise<void>;
suspendProcess(flush: boolean, process?: TaskRunProcess): Promise<void>;
/**
* Handles process abort/kill scenarios
*/
handleProcessAbort(process: TaskRunProcess): Promise<void>;
killProcess(process: TaskRunProcess): Promise<void>;
/**
* Forces cleanup of any persistent process
*/
cleanup(): Promise<void>;
/**
* Gets metrics about the provider state
*/
get metrics(): {
processKeepAlive: {
enabled: boolean;
executionCount: number;
maxExecutionCount: number;
hasPersistentProcess: boolean;
};
};
private createTaskRunProcess;
private buildProcessEnvironment;
private shouldReusePersistentProcess;
private shouldKeepProcessAlive;
private cleanupProcess;
private sendDebugLog;
}