我的流程很长,如果特定于 的任务失败,我想将其状态标记为Failed
。
我阅读了文档here,但是他们似乎并未指定这种情况。
我的猜测是,我需要在@task()
装饰器中以某种方式对此进行具体说明,但是我不知道如何。
非常感谢任何指导。
答案 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])