2016-11-30 128 views
0

真的很喜歡Airflow工作流調度程序,但是難以運行簡單的DAG:「{jobs.py:538}錯誤 - Dag運行對於DAG:TEST_SCHEDULER_DAG「處於死鎖狀態。Airflow - BashOperator:獲取「DAG運行對於DAG死鎖:」錯誤

這是一個新的氣流安裝(v1.7.1.3),我已經能夠運行其他預定的DAG文件就好了。我的環境是Linux(ubuntu 16.04),python 2.7.12(anaconda),postgresql 9.5.5和使用LocalExecutor。

的DAG,我發現了僵局錯誤的是:

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

舊帖子,但我有同樣的問題。如果您嘗試在start_date之前在命令行中使用trigger_dag與execution_date一起運行,那麼它會死鎖,因爲depends_on_past爲True。設置depends_on_past爲False解決了我。可能與回填相同的行爲。 –

回答

0

從dag_run表中刪除dag條目並在此之後重新啓動調度程序後嘗試。