39 lines
860 B
TypeScript
39 lines
860 B
TypeScript
import type { ITaskStep } from './taskbuffer.classes.taskstep.js';
|
|
|
|
export interface ITaskMetadata {
|
|
name: string;
|
|
version?: string;
|
|
status: 'idle' | 'running' | 'completed' | 'failed';
|
|
steps: ITaskStep[];
|
|
currentStep?: string;
|
|
currentProgress: number; // 0-100
|
|
lastRun?: Date;
|
|
nextRun?: Date; // For scheduled tasks
|
|
runCount: number;
|
|
averageDuration?: number;
|
|
cronSchedule?: string;
|
|
buffered?: boolean;
|
|
bufferMax?: number;
|
|
timeout?: number;
|
|
}
|
|
|
|
export interface ITaskExecutionReport {
|
|
taskName: string;
|
|
startTime: number;
|
|
endTime: number;
|
|
duration: number;
|
|
steps: ITaskStep[];
|
|
stepsCompleted: string[];
|
|
progress: number;
|
|
result?: any;
|
|
error?: Error;
|
|
}
|
|
|
|
export interface IScheduledTaskInfo {
|
|
name: string;
|
|
schedule: string;
|
|
nextRun: Date;
|
|
lastRun?: Date;
|
|
steps?: ITaskStep[];
|
|
metadata?: ITaskMetadata;
|
|
} |