sdg
Version:
pomelo ts
86 lines (85 loc) • 2.21 kB
TypeScript
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;
}