buddy-bot
Version:
The Stacks CLI.
38 lines • 1.26 kB
TypeScript
import { Logger } from '../utils/logger';
import type { BuddyBotConfig } from '../types';
export declare interface ScheduleConfig {
cron: string
timezone?: string
runOnStartup?: boolean
maxRuntime?: number
}
export declare interface SchedulerJob {
id: string
name: string
schedule: ScheduleConfig
lastRun?: Date
nextRun?: Date
status: 'idle' | 'running' | 'error'
config: BuddyBotConfig
}
export declare class Scheduler {
private jobs: any;
private timers: any;
private logger: Logger;
private isRunning: any;
constructor(verbose?: any);
addJob(job: SchedulerJob): void;
removeJob(jobId: string): void;
start(): void;
stop(): void;
getJobStatus(jobId: string): SchedulerJob | undefined;
getAllJobs(): SchedulerJob[];
private scheduleJob(job: SchedulerJob): void;
private runJob(job: SchedulerJob): Promise<void>;
private executeJob(job: SchedulerJob): Promise<void>;
private getNextRunTime(cronExpression: string, timezone?: string): Date | null;
private parseCronExpression(cron: string, timezone?: string): Date;
private parseCronField(field: string, min: number, max: number): number[];
static createJobFromConfig(config: BuddyBotConfig, jobId?: any): SchedulerJob;
static readonly PRESETS: any;
}