UNPKG

sdg

Version:

pomelo ts

86 lines (85 loc) 2.21 kB
import schedule from 'node-schedule'; import Base from '../base'; import Application from '../application'; import HandlerService from '../common/service/handlerService'; import FilterService from '../common/service/filterService'; import { IHandlerMsg, IServerOptions, IFrontendOrBackendSession, ICron, ICronConfigs } from '..'; export default class Server extends Base { handlerService: HandlerService; globalFilterService: FilterService; filterService: FilterService; cronHandlers: { [handler: string]: { [method: string]: () => void; }; }; crons: ICron[]; cronConfigs: ICronConfigs; jobs: { [cronId: string]: schedule.Job; }; constructor(app: Application, opts: IServerOptions); start(): void; afterStart(): void; stop(): void; /** * 初始化crons * @param manualReload 是否替换 * @param clear 是否清空 */ initCrons(manualReload?: boolean, clear?: boolean): void; /** * 获取所有定时器 */ getCrons(): { active: boolean; id: string; time: string; action: string; serverId?: string | undefined; args?: any[] | undefined; }[]; globalHandle(msg: IHandlerMsg, session: IFrontendOrBackendSession): Promise<any>; handle(msg: IHandlerMsg, session: IFrontendOrBackendSession): Promise<any>; private doHandle; private doForward; private initHandler; private initFilter; private beforeFilter; private afterFilter; /** * 加载定时器handler * @param manualReload */ private loadCronHandlers; /** * 根据配置加载定时器 * @param manualReload 是否替换旧的 */ private loadCrons; /** * 增加定时器 * @param crons */ private addCrons; /** * 检查并添加cron * @param cron * @param replace */ private checkAndAdd; /** * 生成schedule */ private createSchedule; /** * 移除现有的cron * @param ids */ private removeCrons; /** * 解析路由 * @param route eg: gate.gateHandler.login */ private parseRoute; }