@pisell/pisellos
Version:
一个可扩展的前端模块化SDK框架,支持插件系统
78 lines (77 loc) • 2.12 kB
TypeScript
import { Task, TasksModule, RunTaskParams, AddTaskParams, DeleteTaskParams } from "./type";
import App from "../app";
export declare class TasksManager {
private static instance;
private taskFunctions;
private tasks;
private app;
private db;
useTasks: () => {
tasks: TasksModule;
};
watchTaskCallback: (taskModule: TasksModule) => void;
constructor(app: App);
static getInstance(app?: App): TasksManager;
addTaskFunction<T>(name: string, fun: T): void;
addTaskFunctions<T>(tasks: {
name: string;
fun: T;
}[]): void;
getTasks(): TasksModule;
getTaskFunction(name: string): any;
init(): Promise<void>;
private saveTaskQueueToLocal;
private loadTaskQueueFromLocal;
/**
* @title: 执行任务
* @description:
* @param {Task} task
* @return {*}
* @Author: zhiwei.Wang
* @Date: 2024-09-26 13:53
*/
private runTask;
/**
* @title: 启动轮询
* @description: 根据轮询间隔定期执行任务
* @param {Task} task
* @return {*}
*/
private startPolling;
/**
* @title: 创建任务数据
* @description:
* @param {Partial} payload
* @return {*}
* @Author: zhiwei.Wang
* @Date: 2024-09-26 13:54
*/
private createTaskData;
private getTaskQueue;
private timeout;
/**
* @title: 执行任务队列
* @description:
* @return {*}
* @Author: zhiwei.Wang
* @Date: 2024-09-26 13:52
*/
run(payload: RunTaskParams): Promise<void>;
deleteTask(payload: DeleteTaskParams): void;
/**
* @title: 重试任务
* @description:
* @return {*}
* @Author: zhiwei.Wang
* @Date: 2024-09-26 13:53
*/
retryTask(payload: RunTaskParams): void;
addTask(payload: AddTaskParams): void;
private updateTask;
private updateQueueStatus;
private setTasks;
clearAllTaskTimer(tasks: Task[]): void;
clearTasks(payload: RunTaskParams): void;
clearAllTasks(): void;
watchTask(callback: (taskModule: TasksModule) => void): void;
}