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

openYuanrong进阶教程——使用 yr.wait 限制并发/待处理任务的数量

openYuanrong 官网:官网
gitcode仓库:仓库

使用 yr.wait 限制并发/待处理任务的数量

如果发送作业的速率大于处理作业的速率,会导致作业积压在作业队列中,甚至出现 OOM。yr.wait()允许反压并且可以限制待处理作业的总数,从而使作业队列不会无限扩展进而避免 OOM。

注意,该方法主要用于限制同一时间内允许执行作业的数量。该方法也可以用于限制作业并发的数量,但这会损失分发作业的性能,所以不建议这样用。openYuanrong 会根据资源的数量和作业需要的资源大小,自动分发和调整并发作业的数量。

使用示例

importyrimporttime# 初始化 Rayyr.init()@yr.invokedefheavy_computation_task(i):# 模拟耗时操作,例如图像处理或模型推理time.sleep(1)returnf"Result from task{i}"# --- 配置参数 ---TOTAL_TASKS=100MAX_CONCURRENT_TASKS=20# 最大并行/在途任务数,防止 OOMTIMEOUT=10WAIT_NUM=1# 存储正在执行的任务句柄 (Object Refs)pending_refs=[]results=[]print(f"开始提交任务,限制最大在途任务数为:{MAX_CONCURRENT_TASKS}")foriinrange(TOTAL_TASKS):# 【核心逻辑】如果当前正在运行的任务达到了上限iflen(pending_refs)>=MAX_CONCURRENT_TASKS:# 使用 yr.wait 阻塞,直到至少有一个任务完成# timeout=None 表示无限等待直到有结果返回ready_refs,pending_refs=yr.wait(pending_refs,wait_num=WAIT_NUM,timeout=TIMEOUT)# 处理已经完成的结果forrefinready_refs:result=yr.get(ref)results.append(result)# print(f"完成并清理内存: {result}")# 提交新任务task_ref=heavy_computation_task.invoke(i)pending_refs.append(task_ref)ifi%10==0:print(f"已提交任务{i},当前队列负载:{len(pending_refs)}")# --- 收尾工作 ---# 提交完所有任务后,等待最后剩下的任务完成print("所有任务已提交,正在等待最后剩余的任务...")final_results=yr.get(pending_refs)results.extend(final_results)print(f"全部完成!成功处理了{len(results)}个任务。")yr.finalize()
http://www.jsqmd.com/news/1086209/

相关文章:

  • 阳江黄金白银回收铂金旧金回收无套路门店 TOP 榜单 实地测评资料整理
  • 跨平台桌面待办工具终极指南:用My-TODOs重塑你的工作效率
  • ESP32 SSD1306 OLED驱动开发实战:从硬件认知到创意实现的深度进阶指南
  • [算法实战] 用动态规划求解最大活动时长:从会议安排到资源优化
  • 3PEAK思瑞浦 TPA132A1Q-TS1R-S TSSOP8 电流信号检测放大器
  • ROS-基于已知地图的无人机动态窗口路径规划算法仿真与调优
  • Three.js 模型粒子化教程
  • 从“热循环”到“精准复制”:深入解析PCR三步曲的分子动力学
  • 数据结构(四):堆排序与归并排序
  • 考研数学核心不等式:从基础证明到典型应用场景剖析
  • 告别手速焦虑:biliTickerBuy让你轻松搞定B站会员购抢票
  • CGAL实战:Alpha Wrapping算法在3D模型修复与简化中的应用
  • Hi7011替代H5112C:更高电压、更大电流与65536级高辉调光的国产升级方案
  • 解锁Fay数字人Agent版:从零开始构建你的智能决策助手
  • 从“凌特杯”赛题出发:构建基于软件无线电的数字音频通信系统实战指南
  • Java ArrayList 完整详解
  • 逐点融合与运动学增强:Point-LIO如何实现超高带宽激光惯性里程计
  • 对偶上升法:从拉格朗日松弛到分布式优化的梯度之路
  • GetQzonehistory:一键找回丢失的QQ空间青春记忆完整指南
  • 盐城黄金白银回收铂金旧金回收无套路门店 TOP 榜单 实地测评资料整理
  • LLVM IR 优化 Pass 深度剖析:Rust 编译后端的底层机制与性能调优
  • 家庭是一个动态平衡的系统的庖丁解牛
  • 瑞萨RA2A2开发实战:从FSP示例项目到J-Link RTT调试全解析
  • Cadence SPB17.4 Capture CIS 常见错误代码解析与实战排查指南
  • ABAP Open SQL 新语法实战:从常量赋值到内表关联的进阶指南
  • 解锁1490款PS4游戏:GoldHEN金手指管理器的终极体验
  • 从电位器分压到ADC采集:OPA2350UA运放电路的设计与调校
  • VOMAKO「月灰疏影」S2004石英石|把东方禅意装进现代家
  • 从 1G 到 6G,一部“连接”本质的跃迁史
  • 67.等待与回响