Ray Workflows与数据集的深度解析
1. Ray Workflows基础
Ray Workflows为Ray添加了工作流原语,能够创建具有丰富工作流管理支持的动态管道。以下是一个预订旅行的工作流示例:
@workflow.step
def finalize_or_cancel(
flights: List[Flight],
hotels: List[Hotel]) -> Receipt: ...
@workflow.step
def book_trip(origin: str, dest: str, dates) -> "Workflow[Receipt]":
# 注意:工作流引擎在父步骤返回之前不会开始执行子工作流
# 这避免了步骤重叠并确保可恢复性
f1: Workflow = book_flight.step(origin, dest, dates[0])
f2: Workflow = book_flight.step(dest, origin, dates[1])
hotel: Workflow = book_hotel.step(dest, dates)
return finalize_or_cancel.step([f1, f2], [hotel])
fut = book_trip.step("OAK", "SAN", ["6/12", "7/5"])
fut.run() # 返回Receipt(...)
2. 异常处理
Ray提供了两种处理异常的方式:
-
超级会员免费看
订阅专栏 解锁全文
1076

被折叠的 条评论
为什么被折叠?



