![](/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.