2017-06-06 94 views
0

我正在嘗試使用Airflow來替換我們現有的cron編排,並且所有內容都看起來很有希望。我已經成功安裝並獲得了一份計劃和執行的數據,但是我注意到他們在我指定的每項任務(至少15分鐘到60分鐘)之間存在顯着的延遲。氣流dag bash任務滯後於遠程執行

我的DAG定義如下

我缺少的東西,使他們在其他以後運行一個吧?

我不使用芹菜 兩個調度器和Web服務器在同一主機 上運行,並且是 - 需要調用一個遠程執行(某種形式的地方,直到然後在工作) ,沒有不能遙控器上安裝氣流服務器 Dag應該在UTC時間的凌晨1點每天運行一次,並遵循我給定的任務的設置路徑。

import airflow 
from builtins import range 
from airflow import DAG 
from airflow.operators.bash_operator import BashOperator 
from airflow.models import DAG 
from datetime import datetime, timedelta 

args = { 
    'owner': 'user1', 
    'depends_on_past': False, 
    'start_date': airflow.utils.dates.days_ago(2), 
    'email': ['[email protected]'], 
    'email_on_failure': True, 
    'email_on_retry': False, 
    'wait_for_downstream': True, 
    'schedule_interval': None, 
    'depends_on_past': True, 
    'retries': 1, 
    'retry_delay': timedelta(minutes=5) 
} 

dag = DAG(
     dag_id='airflow_pt1' 
    , default_args=args 
    , schedule_interval='0 1 * * *' 
    , dagrun_timeout=timedelta(hours=8)) 

task1 = BashOperator(
     task_id='task1' 
    , bash_command='ssh [email protected] /path/to/remote/execution/script_task1.sh' 
    , dag=dag,env=None, output_encoding='utf-8') 

task2 = BashOperator(
     task_id='task2' 
    , bash_command='ssh [email protected] /path/to/remote/execution/script_task2.sh' 
    , dag=dag,env=None, output_encoding='utf-8') 

task3 = BashOperator(
     task_id='task3' 
    , bash_command='ssh [email protected] /path/to/remote/execution/script_task3.sh' 
    , dag=dag,env=None, output_encoding='utf-8') 

task4 = BashOperator(
     task_id='task4' 
    , bash_command='ssh [email protected] /path/to/remote/execution/script_task4.sh' 
    , dag=dag,env=None, output_encoding='utf-8') 

task2.set_upstream(task1) 
task3.set_upstream(task1) 
task4.set_upstream(task2) 

注意我沒有執行氣流回填(是那麼重要嗎?)

+0

我不確定'directed-acyclic-graphs'標籤在這裏是否合適 - 圖論中的主題專業知識不會幫助某人回答這個問題,因此,在其Feed中跟隨該標籤的人可能發現這個問題不是他們感興趣的,除非他們*也跟隨'airflow'。 –

+0

順便說一句,你確定這些任務實際上是在你期望它們完成時退出嗎?你檢查過程表嗎? –

+0

我有任務監視器上捕獲的日誌/標準輸出很好地顯示。我很好奇,如果我需要多個工作人員爲調度程序排隊後續任務 –

回答