airflow - Apache Airflow 中的开始日期和预定日期问题

标签 airflow airflow-scheduler

我正在使用 Apache Airflow ,但我对预定日期和开始日期有问题。
我希望 dag 每天在 8:00 AM UTC 运行。所以,我所做的是:

default_args = {
        'owner': 'airflow',
        'depends_on_past': False,
        'start_date': datetime(2020, 12, 7, 10, 0,0),
        'email': ['example@emaiil.com'],
        'email_on_failure': True,
        'email_on_retry': False,
        'retries': 1,
        'retry_delay': timedelta(hours=5)
    }
#never run
dag = DAG(dag_id='id', default_args=default_args, schedule_interval='0 8 * * *',catchup=True)
我上传 dag 的那天是 2020-12-07,我想在 2020-12-08 的 08:00:00 运行它
我将 start_date 设置在 2020-12-07 的 10:00:00 以避免在 2020-12-07 的 08:00:00 运行它,并且只在第二天触发它,但它不起作用。
然后我所做的是修改开始日期:
default_args = {
        'owner': 'airflow',
        'depends_on_past': False,
        'start_date': datetime(2020, 12, 7, 7, 59,0),
        'email': ['example@emaiil.com'],
        'email_on_failure': True,
        'email_on_retry': False,
        'retries': 1,
        'retry_delay': timedelta(hours=5)
    }
#never run
dag = DAG(dag_id='etl-ca-cpke-spark_dev_databricks', default_args=default_args, schedule_interval='0 8 * * *',catchup=True)
现在开始日期是 dag 应该运行前 1 分钟,而且确实,因为 catchup 设置为 True,dag 已在 2020-12-07 08:00:00 触发,但尚未触发 2020 -12-08 在 08:00:00。
为什么?

最佳答案

Airflow 调度任务在 |完区间 ( See doc reference )
这意味着当你这样做时:

start_date: datetime(2020, 12, 7, 8, 0,0)
schedule_interval: '0 8 * * *'
第一 运行将在 2020-12-08 开始在 08:00 +-(取决于资源)
本次运行 execution_date将是:2020-12-07 08:00下一个 运行将在 2020-12-09 开始在 08:00本次运行 execution_date2020-12-08 08:00 .
因为今天是 2020-12-08下一次运行没有开始,因为它不是 |完的间隔呢。

关于airflow - Apache Airflow 中的开始日期和预定日期问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65196414/

相关文章:

python - 升级 AWS Apache Airflow (MWAA) 中的 python 版本

python - 仅当在 python 中使用 DAG 的 AWS athena 表中有新分区/数据可用时,如何触发 Airflow 任务?

Airflow :使用环境变量时未创建连接

mysql - 名称错误 : name '_mysql' is not defined -- On airflow start in MacOSX

python - Airflow 任务信息 - 任务退出并返回代码 -9

environment-variables - 环境变量中的 Airflow 配置不起作用

docker - dockerized算法的机器学习DAG,Luigi/Airflow/Celery

python - 如何在Airflow中实现Canary DAG来进行其他作业的健康检查?

airflow - 如何将 Airflow 日志写入Elasticsearch?

python - 如何在 celery 中使用 Airflow