即使我没有提供气流的上游或下游,任务也会出现

Tasks show up even when i am not giving a upstream or downstream in airflow

我不确定这是否应该是这样的,但可以说我正在制作一个有 4 个任务的 dag,而我只在 Steam 中放置了 3 个任务,所以为什么第 4 个任务也出现了 运行??

EX:

default_args = {
    'owner': 'airflow',
    'depends_on_past': False,
    'start_date': datetime(2018, 1, 1),
    'email_on_failure': False,
    'email_on_retry': False,
    'retries': 1,
    'retry_delay': timedelta(minutes=5),
}

dag = DAG('example_dag_one',
            schedule_interval='@daily',
            catchup=False,
            default_args=default_args)

t1 = BashOperator(
    task_id='start',
    bash_command='stuff',
    dag=dag)

t2 = BashOperator(
    task_id='test',
    bash_command='stuff',
    dag=dag)

    t3 = BashOperator(
        task_id='stop',
        bash_command='more stuff',
        dag=dag)
t4 = BashOperator(
        task_id='test2',
        bash_command='more stuff',
        dag=dag)

t1>>t2>>t3

所以我希望只有 3 个任务出现在我的 dag 中,但由于某种原因所有 4 个都出现了。 为什么 t4 出现了?

运算符有一个 trigger_rule 来定义任务的触发方式。默认 all_success 规则规定当所有上游依赖任务都达到成功状态时应触发任务。 如果你不指定上游,那么当你触发 dag 时,任务就会被触发。

创建任务并提及 dag 后,它将成为该 dag 的一部分。设置up/down流只是为了建立任务之间的关系,触发哪个任务由上游任务和触发规则决定。