Воздушный поток не распознает планирование DAG - PullRequest
1 голос
/ 02 октября 2019

Я пытаюсь составлять еженедельные, ежемесячные графики воздушного потока, но это не работает. Кто-нибудь может сообщить, что может происходить? Если я делаю еженедельное, ежемесячное планирование, оно остается на месте, как если бы оно было отключено. Нет сообщения об ошибке, просто не выполняется. Я отправил пример кода, чтобы продемонстрировать, как я планирую ... есть ли другой способ сделать это планирование?

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 Ответ

2 голосов
/ 03 октября 2019

Существует документация о том, что не выполняется следующее: 'start_date': airflow.utils.dates.days_ago(0),, потому что таким образом никогда не будет 1-недельного интервала, прошедшего с даты начала, что означает, что первый интервал не закрывается, а первый запуск не выполняется. не запланировано.

Предложение: выберите фиксированный день в день недели 4 (четверг?) по сравнению с прошлой неделей как start_date.

Воздушный поток примет datetime или строку . Используйте airflow.utils.timezone s datetime для расписания без UTC. Например, либо:

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

, либо

from airflow.utils.timezone import datetime

default_args = {
  'owner': 'your-unix-user-id-or-ldap-etc',
  'start_date': datetime(2018, 1, 1),
...
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...