etl - 如果特定任务失败,是否可以终止流程?
问题描述
我的流程很长,我想将其状态标记为Failed
特定任务失败。
我在这里阅读了文档,但是他们似乎没有指定这种情况。我的猜测是我需要在@task()
装饰器中以某种方式具体说明这一点,但我不知道如何。
非常感谢任何指导。
解决方案
这可以通过将您的特定任务声明为 Flow 的“参考任务”来实现。 参考任务是最终确定每个流程运行的最终状态的任务。
例如,以下代码片段创建了一个流程,其中包含两个独立的、不相关的任务,这些任务随机失败了一半。但是,整体流运行状态将仅根据 的状态确定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])
推荐阅读
- css - 让云漂浮在屏幕上并将 div 组合成一个对象?
- amazon-web-services - 动态/静态资源映射(Terraform)
- javascript - 在javascript中获取选项名称
- python - 获取 MultiValueDictKeyError 可能是由于干扰
- php - Lumen 8 路由后备
- javascript - 如何在express node js中将函数导出为函数表达式
- flutter - 如何使 svg 图像的一部分充当 Flutter 中的按钮?
- c - 如何使用 xcb 清除窗口
- c# - 将 Microsoft Bot 的 AudioCard 与 Microsoft Teams 一起使用,请参阅 bot UI 显示“返回主窗口以查看此内容”。
- c++ - 如何创建大纲