【发布时间】:2019-08-06 02:31:10
【问题描述】:
我创建了一个每天运行一次的 Dag - dag 不会获取任何参数。 dag 运行的每一天,我都需要计算昨天的日期(当前日期 -1)并将其传递给 dag 中的所有操作员(同一日期)。 我看到我可以使用 Airflow-macros 来计算日期,但问题是,我在 t2 中使用的运算符(必须使用此运算符并且不能更改它)将数据作为字符串传递给字典(default_param_dict)并且不要t 计算宏。
有没有其他方法可以在没有宏的情况下计算日期?使用 X-com 是不相关的,因为我只能使用操作员并且不能更改他们的代码。
需要你帮忙:)
添加我的 dag 示例:
t1 = SimpleHttpOperator(
task_id='check_if_daily_report_ready',
method='GET',
endpoint="/bla/bla?date={date}".format(
date='{{ (execution_date - macros.timedelta(days=1)).strftime("%Y-%m-%d") }}'),
http_conn_id="conn1",
headers={"Content-Type": "application/json"},
response_check=lambda response: True if response.status_code == 200 else False,
dag=dag,
)
t2 = Queryperator(
task_id='cal',
query_file='ca.sql',
query_folder='include/sql_files/bla',
token='Token',
default_param_dict={"date": '{{ (execution_date - macros.timedelta(days=1)).strftime("%Y-%m-%d") }}'},
dag=dag
)
【问题讨论】:
标签: airflow