@stouder-io/adonis-scheduler
Version:
Unopinionated scheduler for Adonis
28 lines (27 loc) • 797 B
TypeScript
declare module '@ioc:StouderIO/Scheduler' {
import type { CronExpression, CronDate } from 'cron-parser';
export interface TaskContract {
readonly name: string;
readonly cron: string;
run(): Promise<void>;
}
export interface SchedulerContract {
loadTasks(): Promise<void>;
wakeUp(taskName: string): Promise<void>;
start(): Promise<void>;
}
export interface CachedTask {
cron: CronExpression;
nextRunAt: CronDate;
task: TaskContract;
}
export interface TaskFile<T extends TaskContract> {
absPath: string;
name: string;
getTask(): {
new (): T;
};
}
const Scheduler: SchedulerContract;
export default Scheduler;
}