12、Ray Workflows与高级数据处理:功能、应用与实践

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

这个示例展示了如何通过工作流步骤组合来实现一个复杂的预订流程,工作流引擎会确保步

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值