繁体   English   中英

触发 ExternalTask​​Sensor 时气流卡住

[英]Airflow stuck while trigger ExternalTaskSensor

谁能解释为什么 Airflow 的 ExternalTask​​Sensor 在调度时正常工作,而不是在前端触发时正常工作? 我尝试了几个版本,结果总是一样。 任务在 up_fro_reschedule 上停止。

example_external_task_marker_child 和 example_external_task_marker_parent

任务日志

[2020-03-08 22:25:25,071] {taskinstance.py:866} INFO - Executing <Task(ExternalTaskSensor): child_task1> on 2020-03-08T21:16:27.647772+00:00
[2020-03-08 22:25:25,075] {standard_task_runner.py:53} INFO - Started process 58496 to run task
[2020-03-08 22:25:25,261] {logging_mixin.py:91} INFO - Running <TaskInstance: example_external_task_marker_child.child_task1 2020-03-08T21:16:27.647772+00:00 [None]> on host 1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa
[2020-03-08 22:25:25,363] {taskinstance.py:934} INFO - Exporting the following env vars:
AIRFLOW_CTX_DAG_OWNER=airflow
AIRFLOW_CTX_DAG_ID=example_external_task_marker_child
AIRFLOW_CTX_TASK_ID=child_task1
AIRFLOW_CTX_EXECUTION_DATE=2020-03-08T21:16:27.647772+00:00
AIRFLOW_CTX_DAG_RUN_ID=manual__2020-03-08T21:16:27.647772+00:00
[2020-03-08 22:25:25,401] {external_task_sensor.py:119} INFO - Poking for example_external_task_marker_parent.parent_task on 2020-03-08T21:16:27.647772+00:00 ... 
[2020-03-08 22:25:25,538] {taskinstance.py:1110} INFO - Rescheduling task, marking task as UP_FOR_RESCHEDULE
[2020-03-08 22:25:29,903] {logging_mixin.py:91} INFO - [2020-03-08 22:25:29,902] {local_task_job.py:103} INFO - Task exited with return code 0
[2020-03-08 22:26:43,224] {taskinstance.py:656} INFO - Dependencies all met for <TaskInstance: example_external_task_marker_child.child_task1 2020-03-08T21:16:27.647772+00:00 [queued]>
[2020-03-08 22:26:43,275] {taskinstance.py:656} INFO - Dependencies all met for <TaskInstance: example_external_task_marker_child.child_task1 2020-03-08T21:16:27.647772+00:00 [queued]>
[2020-03-08 22:26:43,275] {taskinstance.py:845} INFO - 

默认情况下, ExternalTaskSensor将使用与传感器 DAG 相同的执行日期监控external_dag_id 当两个 dag 以相同的时间表运行或当您确切知道两者之间的 timedelta 时,这非常有效。

但是,当一个 dag 被手动触发或由另一个 dag 触发时,您无法确定这两个 dag 中任何一个的确切执行日期。 这就是从前端触发时失败的原因。

如果您使用TriggerDagRunOperator触发您的 dag,您可以解决此问题。 看看这个问题了解更多信息。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM