Google cloud composer:任务未在计划 dag 运行 中执行,但在手动 dag 运行 中成功执行
Google cloud composer: tasks not executed in scheduled dag run, but executed successfully in manual dag run
我有一个 DAG 有多个任务。当调度程序执行 DAG 时,它进入 running
状态,但 DAG 中的 none 任务具有任何状态。但是,如果手动执行相同的 DAG(Trigger Dag
按钮单击)- 任务变为 queued->running->success
。
我尝试检查 Stackdriver 日志中的“Cloud Composer Environment”——但没有发现任何可疑的日志条目。还检查了气流中的任务日志 UI - 它们是空的。
为什么计划的 dag 运行卡住了?如何找出预定 DAG 问题的原因?
原因是 start_date
参数。是这样计算的:
START_DATE = datetime.datetime.now() - datetime.timedelta(hours=1)
dag = airflow.DAG(
'data_transfer_dag',
'catchup=False',
default_args = {
'owner': 'Zufar',
'depends_on_past': False,
'email': [''],
'email_on_failure': False,
'email_on_retry': False,
'retries': 1,
'retry_delay': datetime.timedelta(minutes=5),
'start_date': START_DATE,
},
schedule_interval=datetime.timedelta(hours=1)
)
修复是使用硬编码日期:START_DATE = datetime.datetime(2020,1,1)
。所以不能根据当前时间来计算。只需使用硬编码的过去日期。
我有一个 DAG 有多个任务。当调度程序执行 DAG 时,它进入 running
状态,但 DAG 中的 none 任务具有任何状态。但是,如果手动执行相同的 DAG(Trigger Dag
按钮单击)- 任务变为 queued->running->success
。
我尝试检查 Stackdriver 日志中的“Cloud Composer Environment”——但没有发现任何可疑的日志条目。还检查了气流中的任务日志 UI - 它们是空的。
为什么计划的 dag 运行卡住了?如何找出预定 DAG 问题的原因?
原因是 start_date
参数。是这样计算的:
START_DATE = datetime.datetime.now() - datetime.timedelta(hours=1)
dag = airflow.DAG(
'data_transfer_dag',
'catchup=False',
default_args = {
'owner': 'Zufar',
'depends_on_past': False,
'email': [''],
'email_on_failure': False,
'email_on_retry': False,
'retries': 1,
'retry_delay': datetime.timedelta(minutes=5),
'start_date': START_DATE,
},
schedule_interval=datetime.timedelta(hours=1)
)
修复是使用硬编码日期:START_DATE = datetime.datetime(2020,1,1)
。所以不能根据当前时间来计算。只需使用硬编码的过去日期。