@foxpage/foxpage-manager
Version:
foxpage resource manager
30 lines (29 loc) • 830 B
TypeScript
import { Logger } from '@foxpage/foxpage-shared';
import { ScheduleEvents } from '@foxpage/foxpage-types';
import { FPEventEmitterInstance } from '../common';
export type ScheduleAction<T> = (data: T | undefined) => Promise<null | undefined | T>;
export interface ScheduleOptions {
appId: string;
interval: number;
}
export interface Schedule<T> {
start(): void;
stop(): void;
}
/**
* schedule
*
* @export
* @class Schedule
* @extends {FPEventEmitterInstance<ScheduleEvents<T>>}
*/
export declare class Schedule<T> extends FPEventEmitterInstance<ScheduleEvents<T>> {
private appId;
readonly interval: number;
readonly action: ScheduleAction<T>;
private handler;
logger: Logger;
private data?;
constructor(action: ScheduleAction<T>, opt?: ScheduleOptions);
private dispatch;
}