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;
|
||
|
}
|