了解气流的执行日期和时间表

问题描述 投票:1回答:1

来自cron的气流新手,试图了解execution_date宏如何应用于调度系统以及何时手动触发。我已经阅读了常见问题解答,并设置了一个时间表,以使其期望在正确的execution_date宏填写后执行。

我想在世界标准时间周四上午10点每周运行我的dag。有时我会手动运行它。我的理解是,dag的开始日期应该比我希望dag开始的实际日期晚一个时间。因此,为了在今天(4/9/2020)使用4/9/20020 execution_date执行dag,我设置了以下默认值:

default_args = {
    'owner': 'airflow',
    'start_date': dt.datetime(2020, 4, 2),
    'concurrency': 4,
    'retries': 0
}

并且dag定义为:

with DAG('my_dag',
        catchup=False,
        default_args=default_args,
        schedule_interval='0 10 * * 4',
        max_active_runs=1,
        concurrency=4,
         ) as dag:

opr_exc = BashOperator(task_id='execute_dag',bash_command='/path/to/script.sh --dt {{ ds_nodash }}')

虽然dag今天4/9准时执行,但它以20200402而不是20200409的ds_nodash执行。我想我仍然感到困惑,因为赶上了关闭,开始日期是一周前,因此我期望20200409

[现在,我找到了另一个答案here,从根本上解释了execution_date在句点的开始,并且始终在句点后面。因此,我应该继续使用next_ds_nodash吗?因为按需运行execution_date会按预期工作,所以这不会为手动触发的dags造成问题。还是在手动触发时next_ds_nodash转换为ds_nodash

问题:是否有一种快乐的介质可以让我在运行计划的AND并手动触发时正确地将execution_date宏传递给我的每周运行dag?这里的最佳做法是什么?

来自cron的气流的新手,试图了解execution_date宏如何应用于调度系统以及何时手动触发。我已经阅读了常见问题,并为我设置了时间表...

airflow airflow-scheduler
1个回答
0
投票

经过更多的研究和测试,确实似乎在手动触发dag时next_ds_nodash等效于ds_nodash

© www.soinside.com 2019 - 2024. All rights reserved.