气流:如何从python脚本取消暂停DAG

时间:2018-11-16 01:59:28

标签: python-2.7 airflow

我正在创建一个python脚本,以从模板生成DAG(使用DAG规范生成新的python文件)。一切正常,除了我需要将DAG生成为非暂停状态。

我已经搜索并尝试在脚本中运行shell命令,如下所示:

bash_command1 = 'airflow list_dags'

bash_command2 = 'airflow trigger_dag ' + str(DAG_ID)

bash_command3 = 'airflow list_tasks ' + str(DAG_ID)

bash_command4 = 'airflow unpause '+ str(DAG_ID)

subprocess.call(bash_command1.split())
subprocess.call(bash_command2.split())
subprocess.call(bash_command3.split())
subprocess.call(bash_command4.split())

但是,每当我创建一个新的DAG时,它在Web UI中就会显示为已暂停。 通过我的研究,命令airflow unpause <dag_id>应该可以解决问题,但是当脚本执行它时,我得到了错误:

Traceback (most recent call last):
  File "/home/cubo/anaconda2/bin/airflow", line 28, in <module>
    args.func(args)
  File "/home/cubo/anaconda2/lib/python2.7/site-packages/airflow/bin/cli.py", line 303, in unpause
    set_is_paused(False, args, dag)
  File "/home/cubo/anaconda2/lib/python2.7/site- packages/airflow/bin/cli.py", line 312, in set_is_paused
    dm.is_paused = is_paused
AttributeError: 'NoneType' object has no attribute 'is_paused'

但是当我在终端中执行相同的airflow unpause <dag_id>命令时,它可以正常工作,并显示:

Dag: <DAG: DAG_ID>, paused: False

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

气流(1.8及更高版本)pauses new dags by default。如果希望在创建时取消所有DAG的状态,则可以覆盖Airflow配置,以保留创建时取消暂停的先前行为。

Here's the link引导您完成设置配置选项。您想要设置一个核心配置设置:dags_are_paused_at_creation设置为False。

我们在团队中使用环境变量方法。

相关问题