UNPKG

trigger.dev

Version:

A Command-Line Interface for Trigger.dev projects

63 lines (62 loc) 2.12 kB
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; }