气流无法识别DAG计划

时间:2019-10-02 18:58:22

标签: airflow airflow-scheduler

我正在尝试制定每周,每月的空气流量表,但是它不起作用。谁能报告可能发生的事情?如果我按周,按月进行计划,则它会保持静止,就像已关闭一样。没有错误消息,只是不执行。我发送了一个代码示例来演示如何进行调度...还有其他方法可以执行此调度吗?

import airflow
import os
import six
import time
from datetime import datetime, timedelta
from airflow import DAG
from airflow import AirflowException
from airflow.models import BaseOperator
from airflow.utils.decorators import apply_defaults
from airflow.operators.slack_operator import SlackAPIPostOperator

default_args = {
    'owner': 'bexs-data',
    'start_date': airflow.utils.dates.days_ago(0),
    'depends_on_past': False,
    'email': ['airflow@apache.org'],
    'email_on_failure': False,
    'email_on_retry': False,
    'depends_on_past': False,
    # If a task fails, retry it once after waiting
    # at least 5 minutes
    'retries': 1,
    'retry_delay': timedelta(minutes=5),
    'on_failure_callback': slack_msg
}

dag = DAG(
    dag_id=nm_dag,
    default_args=default_args,
    schedule_interval='51 18 * * 4', 
    dagrun_timeout=timedelta(minutes=60)
)

1 个答案:

答案 0 :(得分:2)

有关于不执行以下操作的文档: 'start_date': airflow.utils.dates.days_ago(0),,因为这样一来,从您的开始日期开始就不会再有1周的间隔了,这意味着第一个间隔不会关闭,并且第一次运行不会被安排。

建议:从上周的第4天(星期四?)中选择一个固定的日期作为您的start_date

气流will accept a datetime or a string。将airflow.utils.timezone的{​​{1}}用于非UTC时间表。例如,

datetime

default_args = {
  'owner': 'your-unix-user-id-or-ldap-etc',
  'start_date': '2018-1-1',
...
}