trigger.dev
Version:
A Command-Line Interface for Trigger.dev projects
64 lines (63 loc) • 2.29 kB
TypeScript
import { WorkerManifest } from "@trigger.dev/core/v3";
import { type WorkloadClientToServerEvents, type WorkloadServerToClientEvents } from "@trigger.dev/core/v3/workers";
import { type Socket } from "socket.io-client";
import { SendDebugLogOptions } from "./logger.js";
import { EnvObject } from "std-env";
type ManagedRunControllerOptions = {
workerManifest: WorkerManifest;
env: EnvObject;
};
export type SupervisorSocket = Socket<WorkloadServerToClientEvents, WorkloadClientToServerEvents>;
export declare class ManagedRunController {
private readonly env;
private readonly workerManifest;
private readonly httpClient;
private readonly warmStartClient;
private socket;
private readonly logger;
private readonly taskRunProcessProvider;
private warmStartEnabled;
private warmStartCount;
private restoreCount;
private notificationCount;
private lastNotificationAt;
private currentExecution;
private processKeepAliveEnabled;
private processKeepAliveMaxExecutionCount;
constructor(opts: ManagedRunControllerOptions);
get metrics(): {
processKeepAlive: {
enabled: boolean;
executionCount: number;
maxExecutionCount: number;
hasPersistentProcess: boolean;
};
warmStartCount: number;
restoreCount: number;
notificationCount: number;
lastNotificationAt: Date | null;
};
get runnerId(): string;
get successExitCode(): number;
get failureExitCode(): number;
get workerApiUrl(): string;
get workerInstanceName(): string;
private subscribeToRunNotifications;
private unsubscribeFromRunNotifications;
private get runFriendlyId();
private get snapshotFriendlyId();
private lockedRunExecution;
private startRunExecution;
private waitForNextRunLock;
/**
* This will eagerly create a new run execution. It will never throw, but may exit
* the process on any errors or when no runs are available after the configured duration.
*/
private waitForNextRun;
private exitProcess;
createSupervisorSocket(): SupervisorSocket;
start(): void;
cancelRunsAndExitProcess(): Promise<void>;
sendDebugLog(opts: SendDebugLogOptions): void;
}
export {};