尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

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

openYuanrong进阶教程——使用 yr.wait 限制并发/待处理任务的数量
📅 发布时间:2026/6/28 23:31:19

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()

相关新闻

  • 跨平台桌面待办工具终极指南:用My-TODOs重塑你的工作效率
  • ESP32 SSD1306 OLED驱动开发实战:从硬件认知到创意实现的深度进阶指南
  • [算法实战] 用动态规划求解最大活动时长:从会议安排到资源优化

最新新闻

  • 瑞萨RA8D2 DTC寄存器配置详解:从寻址到高级优化实战
  • 近期量化工具别求全能,先按学习阶段换重点
  • Video2X 6.0.0:开源视频超分辨率与帧插值的终极解决方案
  • 应对多协议通信调试复杂性的COMTool深度应用方案
  • HS2-HF补丁:解锁《Honey Select 2》完整游戏体验的终极解决方案
  • AI率高怎么降?10款降AIGC平台盘点,含免费方案

日新闻

  • ENVI5.3.1实战:基于Landsat 8影像的区域无缝镶嵌与精准裁剪
  • 3步完成HS2-HF Patch安装:新手快速打造完美HoneySelect2体验
  • 微信好友检测终极指南:3分钟发现谁已悄悄删除你

周新闻

  • Windows字体自定义终极方案:No!! MeiryoUI完全指南
  • Deepin Boot Maker:告别命令行,3分钟制作Linux启动盘的智能解决方案
  • Plain Craft Launcher 2:重新定义你的Minecraft游戏体验

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号