如何在GCP中每25天运行一次DAG?

时间:2019-11-19 21:26:16

标签: cron airflow directed-acyclic-graphs

我们在DAG函数中具有“ schedule_interval”属性,以提供cron表达式来满足我的要求。我认为cron有一个局限性,我们不能使工作/任务连续25天运行一次。下面是cron表达式,每个月的第25天执行一次工作。

                       5 10 */25 * *

但是我需要每25天连续运行一次作业/ DAG。有没有办法运行DAG来满足我的要求?

1 个答案:

答案 0 :(得分:1)

您可以使用schedule_interval来设置datetime.timedelta

例如,要安排DAG从今天开始10:05 CET在25天之内首次运行,然后每25天运行一次,则可以这样指定DAG脚本:

import pendulum
from datetime import datetime, timedelta
from airflow import DAG
from airflow.operators.dummy_operator import DummyOperator


default_args = {
    'owner': 'Airflow',
    'start_date': datetime(
        2019, 11, 24, 10, 5, tzinfo=pendulum.timezone('Europe/Berlin')
    ),
}

with DAG(
    'my_dag', schedule_interval=timedelta(days=25), default_args=default_args,
) as dag:
    op = DummyOperator(task_id='dummy')