@eggjs/schedule
Version:
schedule plugin for egg, support corn job.
54 lines (53 loc) • 1.45 kB
TypeScript
import type { ParserOptions as CronOptions } from 'cron-parser';
import type { Schedule } from './schedule.js';
import type { ScheduleWorker } from './schedule_worker.js';
/**
* Schedule Config
* @see https://www.eggjs.org/zh-CN/basics/schedule
*/
export interface EggScheduleConfig {
type?: 'worker' | 'all';
interval?: string | number;
cron?: string;
cronOptions?: CronOptions;
immediate?: boolean;
disable?: boolean;
env?: string[];
}
export type EggScheduleTask = (ctx: any, ...args: any[]) => Promise<void>;
export interface EggScheduleItem {
schedule: EggScheduleConfig;
scheduleQueryString: string;
task: EggScheduleTask;
key: string;
}
export interface EggScheduleJobInfo {
id: string;
key: string;
workerId: number;
args: any[];
success?: boolean;
message?: string;
rt?: number;
}
declare module 'egg' {
interface EggScheduleAgent {
schedule: Schedule;
}
interface Agent extends EggScheduleAgent {
}
interface EggScheduleApplication {
scheduleWorker: ScheduleWorker;
/** runSchedule in unittest */
runSchedule: (schedulePath: string, ...args: any[]) => Promise<void>;
}
interface Application extends EggScheduleApplication {
}
interface EggScheduleAppConfig {
schedule: {
directory: string[];
};
}
interface EggAppConfig extends EggScheduleAppConfig {
}
}