jcc_rpc
Version:
rpc api of jcc
118 lines (117 loc) • 3.1 kB
TypeScript
/// <reference types="node" />
import { EventEmitter as Event } from "events";
interface ISubscribeTask {
/**
* Register task
*
* @param {string} taskName
* @param {(...args) => Promise<any>} task
* @param {boolean} polling
* @param {number} timer
* @returns {ISubscribeTask}
* @memberof ISubscribeTask
*/
register(taskName: string, task: (...args: any[]) => Promise<any>, polling: boolean, timer: number): ISubscribeTask;
/**
* Start task
*
* @param {string} taskName
* @param {*} args
* @returns {ISubscribeTask}
* @memberof ISubscribeTask
*/
start(taskName: string, ...args: any[]): ISubscribeTask;
/**
* Stop polling
*
* @param {string} taskName
* @returns {ISubscribeTask}
* @memberof ISubscribeTask
*/
stopPolling(taskName: string): ISubscribeTask;
/**
* Stop all polling tasks
*
* @returns {ISubscribeTask}
* @memberof ISubscribeTask
*/
stopAll(): ISubscribeTask;
/**
* Remove registered task
*
* @param {string} taskName
* @returns {ISubscribeTask}
* @memberof ISubscribeTask
*/
removeTask(taskName: string): ISubscribeTask;
/**
* Remove all registered tasks
*
* @returns {ISubscribeTask}
* @memberof ISubscribeTask
*/
removeAll(): ISubscribeTask;
}
export default class SubscribeTask extends Event implements ISubscribeTask {
private taskMap;
private taskIdMap;
constructor();
/**
* Register task
*
* @param {string} taskName task name
* @param {(...args) => Promise<any>} task
* @param {boolean} [polling=true] whether polling
* @param {number} [timer=5000] interval time
* @returns {SubscribeTask}
* @memberof SubscribeTask
*/
register(taskName: string, task: (...args: any[]) => Promise<any>, polling?: boolean, timer?: number): SubscribeTask;
/**
* Start task
*
* If polling is true when register, would polling excute the task.
*
* Emit event of task name after the task is finished.
*
* @param {string} taskName task name
* @param {*} args
* @returns {SubscribeTask}
* @memberof SubscribeTask
*/
start(taskName: string, ...args: any[]): SubscribeTask;
/**
* Stop polling
*
* @param {string} taskName
* @returns {SubscribeTask}
* @memberof SubscribeTask
*/
stopPolling(taskName: string): SubscribeTask;
/**
* Stop all polling tasks
*
* @returns {SubscribeTask}
* @memberof SubscribeTask
*/
stopAll(): SubscribeTask;
/**
* Remove registered task
*
* @param {string} taskName
* @returns {SubscribeTask}
* @memberof SubscribeTask
*/
removeTask(taskName: string): SubscribeTask;
/**
* Remove all registered tasks
*
* @returns {SubscribeTask}
* @memberof SubscribeTask
*/
removeAll(): SubscribeTask;
private polling;
private getTask;
private getTaskId;
}
export {};