nestjs-temporal-core
Version:
Complete NestJS integration for Temporal.io with auto-discovery, declarative scheduling, enhanced monitoring, and enterprise-ready features
70 lines (69 loc) • 3.11 kB
TypeScript
import { OnModuleInit, OnModuleDestroy, OnApplicationBootstrap, BeforeApplicationShutdown } from '@nestjs/common';
import { Worker, NativeConnection } from '@temporalio/worker';
import { TemporalOptions, WorkerStatus, WorkerRestartResult, WorkerHealthStatus, WorkerStats, ActivityRegistrationResult, WorkerDefinition, MultipleWorkersInfo, CreateWorkerResult } from '../interfaces';
import { TemporalDiscoveryService } from './temporal-discovery.service';
export declare class TemporalWorkerManagerService implements OnModuleInit, OnModuleDestroy, OnApplicationBootstrap, BeforeApplicationShutdown {
private readonly discoveryService;
private readonly options;
private readonly injectedConnection;
private readonly logger;
private worker;
private restartCount;
private isInitialized;
private isRunning;
private lastError;
private startedAt;
private readonly activities;
private readonly workers;
private connection;
private shutdownPromise;
constructor(discoveryService: TemporalDiscoveryService, options: TemporalOptions, injectedConnection: NativeConnection | null);
private get maxRestarts();
private get autoRestartEnabled();
onModuleInit(): Promise<void>;
onApplicationBootstrap(): Promise<void>;
beforeApplicationShutdown(signal?: string): Promise<void>;
onModuleDestroy(): Promise<void>;
private initializeMultipleWorkers;
private createWorkerFromDefinition;
registerWorker(workerDef: WorkerDefinition): Promise<CreateWorkerResult>;
getWorker(taskQueue: string): Worker | null;
getAllWorkers(): MultipleWorkersInfo;
getWorkerStatusByTaskQueue(taskQueue: string): WorkerStatus | null;
startWorkerByTaskQueue(taskQueue: string): Promise<void>;
stopWorkerByTaskQueue(taskQueue: string): Promise<void>;
private runWorkerWithAutoRestartByTaskQueue;
private autoRestartWorkerByTaskQueue;
private cleanupWorkerForRestartByTaskQueue;
getConnection(): NativeConnection | null;
private getWorkerStatusFromInstance;
private loadActivitiesForWorker;
startWorker(): Promise<void>;
private runWorkerWithAutoRestart;
private autoRestartWorker;
private cleanupWorkerForRestart;
stopWorker(): Promise<void>;
shutdown(): Promise<void>;
restartWorker(): Promise<WorkerRestartResult>;
getWorkerStatus(): WorkerStatus;
getRegisteredActivities(): Record<string, Function>;
registerActivitiesFromDiscovery(): Promise<ActivityRegistrationResult>;
isWorkerAvailable(): boolean;
isWorkerRunning(): boolean;
getHealthStatus(): WorkerHealthStatus;
getStats(): WorkerStats;
private validateConfiguration;
private createConnection;
private shouldInitializeWorker;
private initializeWorker;
private loadActivitiesFromDiscovery;
private createWorkerConfig;
private shutdownWorker;
private performShutdown;
private getWorkflowSource;
private getNativeState;
private calculateWorkerHealth;
private waitForDiscoveryCompletion;
private safeShutdownWorker;
private extractErrorMessage;
}