TaskQueue
任务队列
介绍
nodejs 任务队列, 针对请求、IO 操作或其他异步操作高并发削峰的解决方案
安装教程
- pnpm i
- pnpm build
调试说明
- pnpm build(构建)
- pnpm example(示例)
- pnpm debug(调试源码)
用法介绍
安装依赖
pnpm install task-queue-lib
import { TaskQueue } from "task-queue-lib";
切片长度 maxLen
const taskQueue = new TaskQueue({ maxLen: 10 });
新建一个队列
const taskQueue = new TaskQueue({ maxLen: 10 });
taskQueue.push([() => {}])
单个队列中的函数,有几个就 push 几个
taskQueue.push(syncFn.bind(null, "args"));
某个队列中的函数全部执行完成后会触发后续操作
taskQueue.push([() => {}]).then(console.log);// [ undefined ]
或
taskQueue.on(taskQueue.defaultKey, console.log).push([() => {}])
队列索引,通过第二个参数分组,异步操作成组完成
const fn = (params) => params;
taskQueue.push([fn.bind(this, "hello")], "task1");
taskQueue.push([fn.bind(this, "world")], "task1").then(console.log); // [ 'hello', 'world' ]
taskQueue.push([fn.bind(this, "world")], "task2").then(console.log); // [ 'world' ]
删除前三个异步函数
taskQueue.unshift(3)
初始化当前队列
taskQueue.clearQueue()