当前位置: 首页 > 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/601924.html

相关文章:

  • 国内网站空间 linux网站积分程序怎么建设
  • 网站 备案 多久知名公司网址
  • 做杂志的网站有哪些老王传奇新开网站
  • 简单描述网站建设流程win10做网站服务器
  • 上海设计招聘网站小程序商城的好处
  • 网站分类主要有哪些申请个人网站多少钱
  • 山东省建设项目备案证明网站网站footer内容
  • 博客园网站开发江宁网站建设制作
  • 戴南做网站重庆网站快速优化排名
  • 做网站需准备些什么软件兰州一氧化碳
  • 广州网站建设解决方案做视频网站用什么服务器
  • 宝安品牌网站建设电商平面设计
  • 外贸公司网站怎么做免费的大数据分析平台
  • 秦皇岛做网站外包个人域名用来做淘宝客网站
  • 美橙建站十四年有用建站宝盒做网站的吗
  • phpcms wap网站搭建浙江邮电工程建设有限公司网站
  • 深圳网站设计平台思维导图在线制作网站
  • 如何设计大型电商网站建设网站主播
  • 找人做网站 源码被盗用自己有网站怎么推广
  • 做电影网站要不要收费帮人家做家务的网站
  • 广东省建设工程造价管理协会网站看2d影片最好的地方
  • 免费空间asp网站建网站合同
  • 郑州地方网络推广网站兰州网络广告设计价格
  • 电子商务网站建设课程的心得网站建设炎陵
  • 手机怎么打开禁止访问的网站网络营销推广运营
  • 株洲营销网站建设app界面设计尺寸规范
  • 网站开发难吗单仁网站建设
  • 电子网站大全沈阳网站建设公司熊掌号
  • 网站群建设 公司seo基本步骤
  • 做文具的网站佛山新网站建设教程