如何在 GCP 中每 25 天制作一个 DAG 运行?

How to make a DAG run for every 25days in GCP?

我们在 DAG 函数中有 "schedule_interval" 属性来提供 cron 表达式来满足我的要求。我认为 cron 有一个限制,我们不能每隔 25 天创建一个 job/task 运行。以下是 运行 每个月第 25 天的作业的 cron 表达式。

                       5 10 */25 * *

但我需要连续 25 天 job/DAG 到 运行。有没有办法运行 DAG 满足我的要求?

您可以使用 datetime.timedelta 设置 schedule_interval

例如,要在从今天 10:05 CET 开始的 25 天内第一次将 DAG 安排到 运行,然后每 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')