在构建 Airflow dag 时,我通常会指定一个简单的计划来定期运行 - 我预计这是最常见的用途。
dag = DAG('my_dag',
description='this is what it does',
schedule_interval='0 12 * * *',
start_date=datetime(2017, 10, 1),
catchup=False)
Run Code Online (Sandbox Code Playgroud)
然后,我需要在实际过程中使用“日期”作为参数,因此我只需检查当前日期。
date = datetime.date.today()
# do some date-sensitive stuff
operator = MyOperator(..., params=[date, ...])
Run Code Online (Sandbox Code Playgroud)
我的理解是,设置catchup=True将使 Airflow 为start_date从现在(或end_date)之间的每个计划间隔安排我的 dag;例如每天。
如何scheduled_date在我的 dag 实例中使用它?
我认为你的意思是这里的执行日期,你可以在你的运算符中使用宏,更多细节可以在这里找到: https: //airflow.apache.org/code.html#macros。所以气流会尊重它,所以你不需要date动态生成
Operator内部,可以{{ ds }}直接调用str
在 Operator 之外,例如 PythonOperator,您需要provide_context=True首先将**kwargs最后一个参数传递给函数,然后您可以调用kwargs['ds']
| 归档时间: |
|
| 查看次数: |
4239 次 |
| 最近记录: |