如何在具有不同时间表的DAG中仅运行一项任务?

时间:2019-08-21 13:49:38

标签: airflow airflow-scheduler

我有一个DAG,它每天在特定的预定时间间隔运行,该时间从API提取数据,进行处理并将其传输到Google Cloud。

现在,随着API的授权令牌不断到期,我需要自动执行(使用API​​)获取身份验证令牌并更新Airflow中的连接的任务。为此,我在DAG中又添加了一个任务,用于更新气流连接中的Auth令牌。

但是我只想每月一次而不是每天安排一次特定任务。

这是我在DAG中的default_args

default_args = {
"owner": "airflow_admin",
"start_date": datetime(2017, 8, 29),
"schedule_interval": "0 5 * * *"
}

这是我的任务

update_auth_token = PythonOperator(
task_id = "update_auth_token",
python_context = True,
python_callable = update_auth_token,
dag=dag,
)

与DAG中运行的其他任务不同,我如何每月只调度一次update_auth_token任务,而不是每天调度一次?我可以单独在任务中添加start_date,schedule_interval吗?还有其他方法吗?

1 个答案:

答案 0 :(得分:0)

您的python可调用对象做什么?

python_callable = update_auth_token

它在调用其他任务吗?另外,如果令牌过期且令牌仍然有效,您的任务返回什么结果?