我很新手氣流,我們有一個DAG,有3個任務。目前我們正在使用Celery Executor,因爲我們需要靈活性來運行單個任務。我們不想安排工作流程,現在它將成爲手動觸發。有什麼方法可以使用Airflow UI來執行整個工作流程(與我們在oozie中一樣)?使用Airflow UI執行整個DAG
一次執行一個任務很痛苦。
我很新手氣流,我們有一個DAG,有3個任務。目前我們正在使用Celery Executor,因爲我們需要靈活性來運行單個任務。我們不想安排工作流程,現在它將成爲手動觸發。有什麼方法可以使用Airflow UI來執行整個工作流程(與我們在oozie中一樣)?使用Airflow UI執行整個DAG
一次執行一個任務很痛苦。
我會試一試,希望你可以調整你的代碼來處理這個問題。
default_args = {
'owner': 'airflow',
'depends_on_past': False,
'start_date': datetime(2015, 6, 1),
'email': ['[email protected]'],
'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儀表板運行它。我不想通過命令提示符或使用調度機制來觸發此工作流程。有沒有像點擊按鈕的機制,它會按照提到的順序運行dag。 – user1432155
另外,你可能要導入的幾件事情:從日期時間日期時間進口 ''' 從氣流導入DAG 從airflow.operators.bash_operator進口BashOperator ,timedelta ''' – cantdutchthis
爲了澄清,您是否希望運行第一個任務時運行所有這三項任務? 也請發佈您的相關代碼。 –
如果您設置依賴關係,然後使用'airflow trigger_dag id'從命令行運行dag,問題是什麼? –
是的,你說得對。我們需要在運行第一個任務時運行所有任務。 由於限制,Sry不可能發佈代碼。我們將把DAG交給支持團隊,他們的工作將是手動觸發工作流程。由於他們沒有太多的命令行經驗,我們需要通過UI來執行它。 – user1432155