@thatcompany/ts-tool
Version:
基于TypeScript编写的工具库
32 lines (31 loc) • 1.13 kB
TypeScript
import cron from 'node-cron';
import { IRegister } from '../../../annotation';
import { ETaskService } from '../entity/ETaskService';
export declare abstract class ITaskRegister<T extends ETaskService> extends IRegister<T> {
configs: T[];
singletonConfigs: string[];
taskList: Map<string, cron.ScheduledTask>;
serviceMap: Map<string, Function>;
services: Map<string, any>;
protected scanService(): Promise<void>;
register(keys?: any[]): Promise<void>;
protected abstract registerTask(item: T): Promise<void>;
destroy(keys?: any[]): void;
/**
* 重载任务
* @param keys
*/
reload(keys?: any[]): Promise<void>;
/**
* 获取所有调度任务配置
*
* 重写该方法,实现动态获取任务配置
* 注意需要添加一个 `Id` 字段作为唯一标识
* 其他字段根据实际情况自行添加
*
* 只要单例模式的可以重写返回空数组 return []
*
* 基本:{`Id`: any, class: string, title: string, description: string, cron: string}
*/
protected abstract fetchConfigs(): Promise<T[]>;
}