我想使用ExternalTaskSensor。
TaskSensor = ExternalTaskSensor(
task_id='TaskSensor',
external_dag_id='datamart_OTT_CMS_v1',
external_task_id="end",
allowed_states=None,
execution_delta=None,
execution_date_fn=None,
dag=dag)
我写了一个dag B取决于A.当dag A结束(成功)然后dag B将运行。但是当它运行时,我发现dag B一直在戳dag A。
为什么呢?我想念一下吗?
答案 0 :(得分:1)
这是预期的行为。 ExternalTaskSensor
正在轮询DAG datamart_OTT_CMS_v1的“结束”任务完成。默认情况下,它会每分钟检查一次,但您可以通过在传感器上设置poke_interval
(秒)来降低此间隔。
或许您正在寻找的是TriggerDagRunOperator。因此,您可以在DAG A结束时使用此运算符来触发DAG B的运行,而不是依赖于轮询。