我是气流的新手,我们有一个有 3 个任务的 DAG。目前我们正在使用 Celery Executor,因为我们需要灵活地运行单个任务。我们不想安排工作流程,现在它将是手动触发。有什么方法可以使用 Airflow UI 执行整个工作流程(与我们在 oozie 中的相同)?
一次执行一项任务很痛苦。
我会尝试一下,希望你可以调整你的代码来处理它。
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()
从脚本中删除这些行。请注意,所有这些任务必须在同一个脚本中才能使用一个命令运行。