gpt4 book ai didi

airflow - 如何正确工作 Airflow schedule_interval

转载 作者:行者123 更新时间:2023-12-04 02:52:04 26 4
gpt4 key购买 nike

我想尝试使用 Airflow 而不是 Cron。
但是 schedule_interval 没有按我预期的那样工作。

我写了如下的python代码。
根据我的理解,Airflow 应该在“2016/03/30 8:15:00”上运行,但当时它不起作用。

如果我像这样更改它“'schedule_interval': timedelta(minutes = 5)”,我认为它可以正常工作。

“notice_slack.sh”只是将 slack api 调用到我的 channel 。

# -*- coding: utf-8 -*-
from __future__ import absolute_import, unicode_literals
import os
from airflow.operators import BashOperator
from airflow.models import DAG
from datetime import datetime, timedelta

args = {
'owner': 'airflow',
'depends_on_past': False,
'start_date': datetime(2016, 3, 29, 8, 15),
}

dag = DAG(
dag_id='notice_slack',
default_args=args,
schedule_interval="@daily",
dagrun_timeout=timedelta(minutes=1))

# cmd file name
CMD = '/tmp/notice_slack.sh'

run_this = BashOperator(
task_id='run_transport', bash_command=CMD, dag=dag)

我想每天在特定时间运行我的一些脚本,就像这个 cron 设置。
15 08 * * * bash /tmp/notice_slack.sh

我已阅读文档 Scheduling & Triggers ,而且我知道它与 cron 有点不同。
所以我尝试在“start_date”和“schedule_interval”设置中进行安排。

有谁知道我该怎么办?

airflow version

INFO - Using executor LocalExecutor

v1.7.0

amazon-linux-ami/2015.09-release-notes

最佳答案

尝试这个:

# -*- coding: utf-8 -*-
from __future__ import absolute_import, unicode_literals
import os
from airflow.operators import BashOperator
from airflow.models import DAG
from datetime import datetime, timedelta

args = {
'owner': 'airflow',
'depends_on_past': False,
'start_date': datetime(2016, 3, 29),
}

dag = DAG(
dag_id='notice_slack',
default_args=args,
schedule_interval="15 08 * * *",
dagrun_timeout=timedelta(minutes=1))

# cmd file name
CMD = 'bash /tmp/notice_slack.sh'

run_this = BashOperator(
task_id='run_transport', bash_command=CMD, dag=dag)
start_date (datetime) – 任务的 start_date,确定第一个任务实例的 execution_date。最佳做法是将 start_date 四舍五入到 DAG 的 schedule_interval。
schedule_interval (datetime.timedelta 或 dateutil.relativedelta.relativedelta 或 str 作为 cron 表达式)——定义 DAG 运行的频率,这个 timedelta 对象被添加到您最新的任务实例的 execution_date 以找出下一个计划。

只需配置 schedule_intervalbash_command因为在您的 cron 设置中也是如此。

关于airflow - 如何正确工作 Airflow schedule_interval,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36298756/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com