如果特定任务失败,流程是否可以终止?

时间:2020-10-05 12:37:10

标签: etl prefect

我的流程很长,如果特定于 的任务失败,我想将其状态标记为Failed

我阅读了文档here,但是他们似乎并未指定这种情况。 我的猜测是,我需要在@task()装饰器中以某种方式对此进行具体说明,但是我不知道如何。

非常感谢任何指导。

1 个答案:

答案 0 :(得分:1)

这可以通过将特定任务声明为Flow的“参考任务”来实现。 Reference tasks是最终确定每个流运行的最终状态的任务。

例如,以下代码段创建了一个流程,其中包含两个独立的,不相关的任务,这些任务随机失败一半。但是,由于我们将任务指定为唯一参考任务,因此只能根据task_one的状态来确定总体流程运行状态:

import random
from prefect import task, Flow


@task
def task_one():
    if random.random() > 0.5:
        raise ValueError("Random failure")

@task
def task_two():
    if random.random() > 0.5:
        raise ValueError("Random failure")


flow = Flow("Two Task Flow", tasks=[task_one, task_two])
flow.set_reference_tasks([task_one])
相关问题