是否有方法调用气流中任务内的任务?

2024-05-05 09:38:53 发布

您现在位置:Python中文网/ 问答频道 /正文

我有以下逻辑:

def function_1():
    if condition_1 == True:
        function_2()
    else:
        function_3()
        function_2()

是否有任何方法可以调用气流中任务中的任务


Tags: 方法trueifdeffunction逻辑conditionelse
1条回答
网友
1楼 · 发布于 2024-05-05 09:38:53

您可以使用BranchPythonOperator实现相同的功能,如下所示

    def function_1(**kwargs):
      if condition_1 == True :
        return 'function_2'
      else:
        return 'function_3'

    check_task = BranchPythonOperator(
      task_id='check_task',
      python_callable=function_1, # defined above method holds the branching condition
      provide_context=True,
      dag=dag
    )

    function_2_task = BashOperator(
      task_id= 'function_2',
      bash_command="echo function_2 task executed",
      dag=dag
    )

    function_3_task = BashOperator(
      task_id= 'function_3',
      bash_command="echo function_3 task executed",
      dag=dag
    )

    function_2_task.set_upstream(check_task)
    function_3_task.set_upstream(check_task)
    function_3_task.set_upstream(function_2_task)

Tasks Graph View

相关问题 更多 >