Python 气流:如何在超时后将ExternalTaskSensor操作符标记为成功

Python 气流:如何在超时后将ExternalTaskSensor操作符标记为成功,python,airflow,Python,Airflow,我有一个daga,它正在等待其他dagB和C中的一些其他操作符下载数据,然后对其执行CAME计算 对于DAGB和C中的某些运算符,它花费的时间太长,我希望继续使用,而不使用“挂起”运算符,并使用迄今为止收到的任何数据 因此,我有一个超时,我想在给定超时后将我的ExternalTaskSensors标记为成功。 我该怎么做 #dag A: 等待任务1=外部任务传感器( task_id='wait_B_task_1', 外部_dag_id='B', 外部任务id='task_1', dag=dag,

我有一个dag
a
,它正在等待其他dag
B
C
中的一些其他操作符下载数据,然后对其执行CAME计算

对于DAG
B
C
中的某些运算符,它花费的时间太长,我希望继续使用,而不使用“挂起”运算符,并使用迄今为止收到的任何数据

因此,我有一个超时,我想在给定超时后将我的
ExternalTaskSensor
s标记为成功。

我该怎么做

#dag A:
等待任务1=外部任务传感器(
task_id='wait_B_task_1',
外部_dag_id='B',
外部任务id='task_1',
dag=dag,
超时=(4*3600)#4小时后,我想继续“按原样”操作
)

目前不可能,但您可以对直接依赖于任务1的任务设置
触发规则

例如:

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\u规则为
all\u success

文件: