使用Airflow UI执行整个DAG

时间:2016-09-28 07:42:35

标签: python airflow

我是气流的新手,我们有一个有3个任务的DAG。目前我们正在使用Celery Executor,因为我们需要灵活地运行单个任务。我们不想安排工作流程,现在它将是手动触发器。有没有办法使用Airflow UI执行整个工作流程(与我们在oozie中的相同)?

一次执行一项任务很痛苦。

2 个答案:

答案 0 :(得分:6)

在Airflow 1.8及更高版本中,仪表板上的每个dag都有一个按钮,看起来像一个播放按钮:

play button

在旧版Airflow中,您可以使用以下对话框:

Browse -> Dag Runs -> Create

任何一方都应该从用户界面开始唠叨。

答案 1 :(得分:0)

我会对它进行一次尝试,希望您可以调整代码来使用它。

default_args = {
'owner': 'airflow',
'depends_on_past': False,
'start_date': datetime(2015, 6, 1),
'email': ['airflow@airflow.com'],
'email_on_failure': False,
'email_on_retry': False,
'retries': 1,
'retry_delay': timedelta(minutes=5),
# 'queue': 'bash_queue',
# 'pool': 'backfill',
# 'priority_weight': 10,
# 'end_date': datetime(2016, 1, 1),
}

dag = DAG('your_dag', default_args=default_args)

#start of your tasks

first_task = BashOperator(task_id='print_date',
                          bash_command='python script1_name args',
                          dag=dag)
second_task = BashOperator(task_id='print_date',
                          bash_command='python script2_name args',
                          dag=dag)
third_task = BashOperator(task_id='print_date',
                          bash_command='python script_name args',
                          dag=dag)

#then set the dependencies
second_task.set_upstream(first_task)
third_task.set_upstream(second_task)

然后,当您触发DAG时,所有三个任务都将按顺序运行。如果这些任务彼此依赖,则可以从脚本中删除set_upstream()行。请注意,所有这些任务必须位于同一脚本中才能使用一个命令运行。