apache airflow 定时调度时间配置

airflow是基于DAG(有向无环图)的调度任务管理系统,Airflow可以方便查看任务的执行状况(执行是否成功、执行时间、执行依 赖等),可追踪任务历史执行情况,任务执行失败时可以收到邮件通知,查看错误日志。

样例dag:

import airflow
from airflow import DAG
from airflow.operators.python import PythonOperator
from datetime import timedelta
from datetime import datetime
import warnings
warnings.filterwarnings('ignore')
default_args = {
    'owner': 'airflow',
    'depends_on_past': False,
    'start_date': airflow.utils.dates.days_ago(1),
    'email': ['[email protected]'],
    'email_on_failure': False,
    'email_on_retry': False,
    'execution_timeout': timedelta(hours=1),
    'retries': 3,
    'retry_delay': timedelta(minutes=10),
}

dag = DAG(
    'airflow_demo',
    default_args=default_args,
    description='test DAG',
    schedule_interval='30 23 * * *',
)

def part_one():
    print("run successful.")


part_one = PythonOperator(
    task_id='part_one',
    python_callable=part_one,
    dag=dag
)

schedule_interval为调度间隔,首次调度时间 = start_date + schedule_interval

schedule_interval=None #注意:没有引号

不进行调度设置,每次调用任务需要手动

schedule_interval="once"

首次拉起任务只调度一次

schedule_interval="hourly"

首次调度时间起,每小时执行

schedule_interval="daily"

首次调度时间起,每天执行

schedule_interval="weekly"

首次调度时间起,每周执行

schedule_interval="monthly"

首次调度时间起,每月执行

schedule_interval="yearly"

首次调度时间起,每年执行

corn时间格式

schedule_interval="* * * * *" #依次为分、时、月、年、周

使用corn时间格式的时候,需要加上时区时间的差值
apache airflow 定时调度时间配置_第1张图片
根据样例Dag:

'start_date': airflow.utils.dates.days_ago(1),
schedule_interval='30 23 * * *',

实际的第一次调度时间为前一天的上午八点+23小时30分钟
也就是当天的早上七点半
之后的任务也是每天早上七点半触发

你可能感兴趣的:(python)