使用Airflow UI执行整个DAG

2024-04-27 03:04:46 发布

您现在位置:Python中文网/ 问答频道 /正文

我是空气流通新手,我们有三个任务。目前我们正在使用芹菜执行器,因为我们需要灵活性来运行单个任务。我们不想安排工作流,现在它将是手动触发。有没有什么方法可以使用Airflow UI来执行整个工作流(与我们在oozie中使用的相同)?

一次执行一个任务是件痛苦的事。


Tags: 方法ui手动执行器芹菜airflow灵活性新手
2条回答

我将尝试一下,希望您可以调整您的代码来处理这个问题。

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()行。请注意,所有这些任务都必须在同一脚本中,才能使用一个命令运行。

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

play button

在较旧版本的Airflow中,可以使用位于以下位置的对话框:

Browse -> Dag Runs -> Create

任何一个都应该从UI启动dag。

相关问题 更多 >