6

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

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

4

2 回答 2

7

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

播放按钮

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

Browse -> Dag Runs -> Create

任何一个都应该从 UI 开始。

于 2017-04-12T16:58:48.497 回答
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()从脚本中删除这些行。请注意,所有这些任务必须在同一个脚本中才能使用一个命令运行。

于 2016-09-28T08:39:13.140 回答