真的很喜欢Airflow工作流程调度程序,但是在运行简单DAG时遇到错误:“ {jobs.py:538} ERROR - DAG运行因DAG而死锁:TEST_SCHEDULER_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)显示为'failed',我在控制台上看到'deadlock'错误。
谢谢!
答案 0 :(得分:0)
尝试从dag_run表中删除dags条目并在此之后重新启动调度程序。
答案 1 :(得分:0)
@Gergely的回复帮助了我。我试图运行气流回填的日期超过了DAG上指定的end_date。一旦我将DAG对象的end_date更改为包括我回填的日期,就可以使用。
答案 2 :(得分:0)
尝试删除数据库中状态为“正在运行”的dagrun表行。
然后'airflow backfil