![](/img/trans.png)
[英]Airflow ExternalTaskSensor doesn't recognise task in DAG is on status SUCCESS
[英]Airflow: how to mark ExternalTaskSensor operator as Success after timeout
我有一个dag A
,它正在等待其他dag B
和C
其他运算符下载数据,然后对其进行计算。
对于B
和C
某些运算符来说,它花费的时间太长,我想继续使用,而不用“挂起”运算符,而使用到目前为止我收到的任何数据。
因此,我有一个超时,并且我想在给定的超时后将我的ExternalTaskSensor
标记为Success。
我怎样才能做到这一点?
# dag A:
wait_for_task_1 = ExternalTaskSensor(
task_id='wait_B_task_1',
external_dag_id='B',
external_task_id='task_1',
dag=dag,
timeout=(4 * 3600) # After 4 hours, I want to continue A "as is"
)
目前尚不可能,但是您可以对直接依赖于wait_for_task_1
任务设置trigger_rule='all_done'
。
例:
wait_for_task_1 = ExternalTaskSensor(
task_id='wait_B_task_1',
external_dag_id='B',
external_task_id='task_1',
dag=dag,
timeout=(4 * 3600) # After 4 hours, I want to continue A "as is"
)
task_2 = DummyOperator(task_id='task_2', trigger_rule='all_done', dag=dag)
wait_for_task_1 >> task_2
即使任务失败,这也将允许下游任务运行。 所有任务的默认trigger_rule
为all_success
。
文件: https : //airflow.apache.org/concepts.html#trigger-rules
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.