Python 气流:如何在超时后将ExternalTaskSensor操作符标记为成功
我有一个dagPython 气流:如何在超时后将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,
a
,它正在等待其他dagB
和C
中的一些其他操作符下载数据,然后对其执行CAME计算
对于DAGB
和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
文件: