簡體   English   中英

氣流:超時后如何將ExternalTask​​Sensor操作員標記為成功

[英]Airflow: how to mark ExternalTaskSensor operator as Success after timeout

我有一個dag A ,它正在等待其他dag BC其他運算符下載數據,然后對其進行計算。

對於BC某些運算符來說,它花費的時間太長,我想繼續使用,而不用“掛起”運算符,而使用到目前為止我收到的任何數據。

因此,我有一個超時,並且我想在給定的超時后將我的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_ruleall_success

文件: https//airflow.apache.org/concepts.html#trigger-rules

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM