2016-11-30 10 views
0

Действительно нравится планировщик рабочего процесса Airflow, но при запуске с ошибкой работает простая DAG: «{jobs.py:538} ERROR - Dag running заблокированы для DAG: TEST_SCHEDULER_DAG ".Воздушный поток - BashOperator: получение ошибки «Dag run are deadlocked for DAG: ..»

Это новая установка воздушного потока (v1.7.1.3), и я смог просто запустить другие запланированные файлы Dag. Моей средой является Linux (ubuntu 16.04), python 2.7.12 (anaconda), postgresql 9.5.5 и использование LocalExecutor.

ДАГ Я получаю ошибку взаимоблокировки на это:

from airflow import DAG 
from airflow.operators import BashOperator 
from datetime import datetime, timedelta 

default_args = { 
    'owner': 'owner.name', 
    'depends_on_past': True, 
    'start_date': datetime(2016, 11, 30, 8, 0, 0), 
    'retries': 0, 
    'retry_delay': timedelta(seconds=60), 
} 

tst_dag = DAG(dag_id='TEST_SCHEDULER_DAG', 
       default_args=default_args, 
       schedule_interval='10 * * * *') 

t1 = BashOperator(
    task_id='task_1', 
    bash_command='sleep 10', 
    dag=tst_dag) 

t2 = BashOperator(
    task_id='task_2', 
    bash_command='sleep 10',     
    dag=tst_dag) 

t2.set_upstream(t1) 

Опять же, первое исполнение работает нормально, но все последующие казни (DagRun) показывают, как «не удалось», и я вижу «затор 'на консоли.

Спасибо!

+1

Старый пост, но у меня была та же проблема. Если вы попытались запустить с помощью trigger_dag в командной строке с параметром execute_date до start_date, тогда он будет тупик, потому что depend_on_past - True. Установка depend_on_past для False разрешила это для меня. Возможно, это будет одинаковое поведение для обратной засыпки. –

ответ

0

Попробуйте удалить записи dags из таблицы dag_run и перезапустить планировщик после этого.