Google cloud platform 气流触发\u规则=无\u失败不工作

Google cloud platform 气流触发\u规则=无\u失败不工作,google-cloud-platform,airflow,Google Cloud Platform,Airflow,我有一个演示DAG,其源代码附在下面 dag非常简单: 虚拟\u成功>>一个\u失败>>无一个\u失败 dummy_success是一个虚拟节点,它会成功 one_failed是触发器规则为one_failed的任务,因此将在dag中跳过该任务 none_failed是触发器规则为none_failed的任务 如前所述,最终任务将被触发,因为它的所有父任务都处于“成功”或“跳过”状态(在本例中为“跳过”)。然而,当我在GCP composer中运行这个时,最后的任务也被跳过了 我想知道为什么这不

我有一个演示DAG,其源代码附在下面

dag非常简单: 虚拟\u成功>>一个\u失败>>无一个\u失败

dummy_success是一个虚拟节点,它会成功

one_failed是触发器规则为one_failed的任务,因此将在dag中跳过该任务

none_failed是触发器规则为none_failed的任务

如前所述,最终任务将被触发,因为它的所有父任务都处于“成功”或“跳过”状态(在本例中为“跳过”)。然而,当我在GCP composer中运行这个时,最后的任务也被跳过了

我想知道为什么这不符合预期?如果我需要在父任务成功或跳过时触发任务,我还能做什么

我的图像版本是composer-1.7.2-airflow-1.10.2

将日期时间导入为dt
从airflow.models导入DAG
从airflow.operators.dummy_operator导入dummy operator
dag=dag(
dag_id='test_trigger_rule',
计划时间间隔=“@once”,
开始日期=日期时间(2019年2月28日)
)
dummy\u success=DummyOperator(任务id='dummy\u success',dag=dag)
one\u failed=DummyOperator(任务\u id='one\u failed',dag=dag,触发器\u rule=“one\u failed”)
none\u failed=DummyOperator(任务\u id='none\u failed',dag=dag,触发器\u规则='none\u failed')
虚拟\u成功>>一个\u失败>>无一个\u失败

我尝试添加另一个虚拟节点作为none_失败任务的上游,然后它按预期工作

dummy_fix = DummyOperator(task_id='dummy_fix', dag=dag)
dummy_fix >> none_failed

似乎只有当任务有多个上游任务时,“无失败触发器”规则才有效?

如何跳过一个失败的DummyOperator?我问的原因是具有跳过逻辑的不同运算符有不同的行为。我在这里也做过类似的工作:一次失败被跳过,然后一次失败也被跳过。我尝试添加另一个虚拟节点,因为none_的上游失败,然后它就工作了