js实现并发任务队列控制执行代码

代码语言:nodejs

所属分类:其他

代码描述:js实现并发任务队列控制执行代码,可以使用一个任务队列和一个并发控制器来实现。可以实时地将任务添加到队列中并控制并发执行:

代码标签: js 并发 任务 队列 控制 执行 代码

下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开

class TaskQueue {
  constructor(concurrency) {
    this.concurrency = concurrency; // 最大并发数
    this.queue = []; // 任务队列
    this.running = 0; // 当前正在执行的任务数
  }

  async runTask(task) {
    this.running++;
    await task();
    this.running--;
    this.next(); // 执行下一个任务
  }

  async next() {
    while (this.running < this.concurrency && this.queue.length > 0) {
      const task = this.queue.shift(); // 取出队首任务
      await this.runTask(task);
    }
  }

  push(task) {
    this.queue.push(task); // 将任务添加到队列中
    this.next(); // 尝试执行任务
  .........完整代码请登录后点击上方下载按钮下载查看

网友评论0