Код:
Версия Python 2.7.x и версия 1.5.1 airflow
мой сценарий это
from airflow import DAG
from airflow.operators import BashOperator
from datetime import datetime, timedelta
default_args = {
'owner': 'xyz',
'depends_on_past': False,
'start_date': datetime(2015,10,13),
'email': ['[email protected]'],
'schedule_interval':timedelta(minutes=5),
'email_on_failure': True,
'email_on_retry': True,
'retries': 1,
'retry_delay': timedelta(minutes=5),
}
dag = DAG('testing', default_args=default_args)
run_this_first = BashOperator(task_id='Start1',bash_command='date', dag=dag)
for i in range(5):
t = BashOperator(task_id="Orders1"+str(i), bash_command='sleep 5',dag=dag)
t.set_upstream(run_this_first)
Из этого видно, что я создаю группу обеспечения доступности баз данных с 6 задачами, первая задача (Start1) запускается первой, после чего запускаются все остальные пять задач.
В настоящее время я дал 5 минутную задержку между запуском DAG
Он отлично выполнил все шесть заданий первого типа, но через пять минут группа обеспечения доступности баз данных не перезапускается
Прошло более 1 часа, но DAG не был повторно инициирован. Я действительно не знаю, где я был неправ.
Было бы очень хорошо, если бы кто-то мог указать мне, что не так. Я попытался очистить с помощью airflow testing clear
затем произойдет то же самое. Он запустил первый экземпляр, а затем просто стоял там.
Единственное, что показывает командная строка, это Getting all instance for DAG testing
Когда я изменяю позицию schedule_interval, он просто запускается без какого-либо параллельного интервала расписания. Это происходит за 5 минут. 300 или более экземпляров задачи завершены. Нет 5-минутного интервала
Код 2:
from airflow import DAG
from airflow.operators import BashOperator
from datetime import datetime, timedelta
default_args = {
'owner': 'xyz',
'depends_on_past': False,
'start_date': datetime(2015,10,13),
'email': ['[email protected]'],
'email_on_failure': True,
'email_on_retry': True,
'retries': 1,
'retry_delay': timedelta(minutes=5),
}
dag = DAG('testing',schedule_interval=timedelta(minutes=5),default_args=default_args)#Schedule here
run_this_first = BashOperator(task_id='Start1',bash_command='date', dag=dag)
for i in range(5):
t = BashOperator(task_id="Orders1"+str(i), bash_command='sleep 5',dag=dag)
t.set_upstream(run_this_first)