task-pool-coordinator
v1.1.0
Published
task pool coordinator
Readme
TaskPool
高性能任务池调度器,支持最大并发、暂停/恢复、顺序控制、自动提交等功能。
安装
npm install task-pool-coordinator类型定义
详见 type.ts:
export interface Task<Args extends any[] = [], T = any> {
args: Args
body: (...args: Args) => Promise<T>
handleDelete?: () => any
}
export type TaskRunning = Task & { seq: number, deleted?: boolean }用法示例
import { TaskPool } from 'task-pool-coordinator'
import type { Task } from 'task-pool-coordinator/type'
const tasks: Task[] = [
{
args: [1, 2],
body: async (a, b) => a + b,
},
{
args: [3, 4],
body: async (a, b) => a * b,
},
]
const tc = new TaskPool({
taskPool: tasks,
executor: (results) => {
console.log('全部完成', results)
},
concurrency: 2,
maintainOrder: true,
immediately: false,
})
tc.start()构建与发布
- 使用 Vite 构建,支持 ESM(.mjs)和 CommonJS(.cjs)格式
- 类型声明输出到
dist/type.d.ts - 发布前请运行:
npm run build
npm publishAPI
TaskPool 构造参数
taskPool: Task[]任务数组executor: (results, crtResult?, crtIndex?, error?) => any结果回调concurrency: number最大并发数maintainOrder?: boolean是否保持顺序immediately?: boolean是否每个任务完成立即回调autoSubmit?: boolean是否自动提交submit?: (results) => any自动提交函数
实例方法
addTask(task: Task | Task[])添加任务deleteTask(seq: number)删除任务start()启动调度stop()停止并清空setConcurrency(newConcurrency: number)动态调整并发reset()重置所有状态getStatus()获取当前状态pause()暂停调度resume()恢复调度isPaused()是否处于暂停setImmediately(newVal: boolean)动态设置immediately
