【发布时间】:2022-08-24 00:01:05
【问题描述】:
是否可以在运行时实例化一个 Flyte 任务,以便我可以创建一个具有可变数量任务的工作流,并且每个任务都运行一个运行时确定的 Python 可调用对象?在documentation 中,我只看到对编译时工作流程的引用,这些工作流程声明性地由使用@Task 装饰器注释的Python 函数组成。
如果您可以在开源代码中提供任何现有示例或新的小型内联示例,请提供!谢谢!
是否可以在运行时实例化一个 Flyte 任务,以便我可以创建一个具有可变数量任务的工作流,并且每个任务都运行一个运行时确定的 Python 可调用对象?在documentation 中,我只看到对编译时工作流程的引用,这些工作流程声明性地由使用@Task 装饰器注释的Python 函数组成。
如果您可以在开源代码中提供任何现有示例或新的小型内联示例,请提供!谢谢!
您是否查看过动态工作流程https://docs.flyte.org/projects/cookbook/en/stable/auto/core/control_flow/dynamics.html。 Flyte 中的 Dynamic 就像 Java 这样的语言中的 JITing。创建、编译、验证并执行新的工作流图。但是图表是根据输入创建的,您可以在运行时控制形状/结构
【讨论】:
@dynamic 工作流中,也必须在编译时定义任务。工作流的形状是可配置的,但工作流的任务必须在编译时定义。它们是可配置的,您可以将参数传递给任务,但不能在运行时实例化任务。例如,我想从数据库中获取 SQL,然后使用该 SQL 运行 Snowflake。 Snowflake 必须在编译时知道 SQL。
我正在寻找的功能由FlyteRemote class 提供。使用此类,可以注册实例化实体,即任务、工作流和启动计划。
【讨论】: