【问题标题】:Apache Airflow logic on executing next BashOperator taskApache Airflow 执行下一个 BashOperator 任务的逻辑
【发布时间】:2021-06-08 18:00:02
【问题描述】:

我对气流还很陌生,我想知道如何为我的 dag 添加一些逻辑。

如果至少是这样的话,还是我需要为逻辑创建一个运算符?

这是我的日常:

以 DAG(dag_id='test_dag', schedule_interval=None, catchup=False, default_args=default_args) 作为 dag:

start: DummyOperator = DummyOperator(task_id='start')

task_one = BashOperator(
    task_id='tsk_1',
    xcom_push=True,
    provide_context=True,
    bash_command=BASH_CMD)

task_two = BashOperator(
    task_id='tsk_2',
    xcom_push=True,
    provide_context=True,
    bash_command=BASH_CMD)

end: DummyOperator = DummyOperator(task_id='end')

start >> task_one >> task_two >> end

在我的陈述结束时,我使用“;echo $?”当我检查 xcom 时,我将正确的变量保存为 "return_value": 0 - 这很好/

我试图做一些逻辑,比如我想以某种方式处理该错误,例如,如果返回码为 0,那么我想执行 task_2,我该如何实现?

我知道我必须使用 xcom_pull 来挖掘该变量,如果这就是这样做的地方,我有什么困惑?

如果你们能指出我正确的方向,我只需要提示,甚至可能是一些例子来尝试理解我的逻辑需要如何以及在哪里。

【问题讨论】:

    标签: python bash automation airflow


    【解决方案1】:

    您正在寻找的是 Airflow 中分支的概念。

    BranchPythonOperator 是您实现此目的的主要运营商。开始使用此运算符所需要做的就是根据 XCom 或任何其他来源返回目标任务 ID。 查看this great post

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-07-19
      • 1970-01-01
      • 1970-01-01
      • 2017-06-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-09-23
      相关资源
      最近更新 更多