当前位置: 首页 > wzjs >正文

程序员做图网站二级网站免费建

程序员做图网站,二级网站免费建,怎么建立公司网站平台,哈尔滨网站建设报价并发批量请求处理器 ✨ 设计目标 该类用于批量异步请求处理,支持: 自定义并发数请求节拍控制(延时)失败重试机制进度回调通知 🔧 构造函数参数 new BulkRequestHandler({dataList, // 要处理的数据列表r…

并发批量请求处理器

✨ 设计目标

该类用于批量异步请求处理,支持:

  • 自定义并发数
  • 请求节拍控制(延时)
  • 失败重试机制
  • 进度回调通知

🔧 构造函数参数

new BulkRequestHandler({dataList,          // 要处理的数据列表requestFn,         // 每条数据的处理函数(返回Promise)concurrency = 5,   // 并发请求数delay = 100,       // 请求间隔时间(ms)retry = 3,         // 每条数据最大重试次数onProgressUpdate = () => {}  // 进度更新回调函数
})

🔁 核心执行流程

1. start() 启动任务处理

const workers = Array(this.concurrency).fill(null).map(() => this._worker());
await Promise.all(workers);
return this.results;
  • 启动多个“工人(worker)任务”并行处理数据。

  • 每个 worker 会不断从共享的 this.index 中取任务,直到任务取尽

2. _worker() 单个任务工人执行逻辑

while (this.index < this.dataList.length) {const currentIndex = this.index++;const item = this.dataList[currentIndex];try {const result = await this._requestWithRetry(item, this.retry);this.results[currentIndex] = result;} catch (err) {this.results[currentIndex] = {name: item.name,address: item.address,error: err.message,success: false};}this.completed++;this.onProgressUpdate(this.completed);await new Promise((res) => setTimeout(res, this.delay));
}

流程说明:

  • 从共享索引中取出当前任务项。

  • 调用 _requestWithRetry() 尝试处理该项。

  • 处理完成或失败后记录结果。

  • 更新完成数量,并触发进度回调。

  • 可选的节拍等待,避免请求过快

3. _requestWithRetry() 重试机制处理

try {return await this.requestFn(item);
} catch (err) {if (retriesLeft <= 1) throw err;await new Promise(res => setTimeout(res, 200 * (this.retry - retriesLeft + 1)));return await this._requestWithRetry(item, retriesLeft - 1);
}

说明:

  • 如果请求失败,则根据剩余重试次数,指数退避式延迟后重试。

  • 最多重试 retry 次,失败则抛出错误交由上层处理

小结:执行顺序图

start()├─ 创建多个 worker 并发执行├─ 每个 worker 循环取任务│   ├─ 获取 dataList[index++]│   ├─ 尝试执行 requestFn(带重试)│   ├─ 记录结果到 results[]│   ├─ 调用进度回调│   └─ 可选 delay 等待└─ 所有 worker 结束后,返回 results

📚 示例代码

全部代码链接

http://www.dtcms.com/wzjs/587869.html

相关文章:

  • 植物网站建设服务网站建设的公司排名
  • 网站设计模板免费下载宁波cms建站
  • 企业进行网站建设的方式有( )做网站怎么收费多少
  • 网站建设与管理公司网站开发需要多少钱
  • 卡地亚手表官方网站小红书推广文案怎么写
  • 曲阜做网站的公司海南教育学会网站建设
  • 网站备案必须是企业吗wordpress做的社交
  • 建网站和开发网站网站广告位怎么做
  • 自己做卖假货网站网站搭建价格表
  • 兰州建设网站的网站购物网站每个模块主要功能
  • 小程序建站公司wordpress页面展示插件
  • 淮北网站建设推广网页设计公司介绍网页
  • 规范机关单位网站建设杭州做网站怎么收费多少
  • 网站建设与运营实验wordpress 单栏 主题
  • 如何做网站的管理后台淘宝网站建设的优点
  • 邢台邯郸做网站网站设计制作价格怎么样
  • 顺德网站建设如何保险网站建设的目标
  • 广州做营销网站公司永久免费个人网站
  • 国外seo网站wordpress主题wordstar
  • 做网站的商家怎么赚取流量费免费的电商平台有哪些
  • app展示网站模板网易企业邮箱的登录方法
  • 网站建设需要提供什么东西厦门外贸网站建
  • 东莞营销网站建设哪家好wordpress 侧边栏 背景
  • 给公司网站做seo的好处网站建设技术方案
  • 怎么查看网站跳出率网站有域名没备案
  • 南宁工程建设网站有哪些域名如何解绑一个网站
  • 网页设计师常逛网站库尔勒网络推广
  • 定制网站c mvc网站开发实例
  • 苏州html网站模板资阳网站开发
  • 茶网站建设河北专业网站建设