2016-11-14 78 views
0

我很新與氣流,我有這個問題:我有一個DAG,處理TXT文件並將其轉換爲CSV,這是配置:氣流:如何清潔舊跑步或避免回填

one_days_ago = datetime.combine(datetime.today() - timedelta(1), 
datetime.min.time()) 

default_args = { 
    'owner': 'airflow', 
    'depends_on_past': False, 
    'start_date': one_days_ago, 
    'email_on_failure': False, 
    'email_on_retry': False, 
    'retries': 1, 
    'retry_delay': timedelta(minutes=1), 
    'max_active_runs':1, 
    # 'queue': 'bash_queue', 
    # 'pool': 'backfill', 
    # 'priority_weight': 10, 
    # 'end_date': datetime(2016, 1, 1), 
} 
dag = DAG('process_file', default_args=default_args, schedule_interval='@daily') 

問題是,當dag運行時,從一天處理文件,但也給出了以前的運行結果,所以我沒有隻有一個csv文件,從今天開始,我有那一個和其他4個或前幾天的5個文件。 我已閱讀回填,但我不知道如何避免它或我做錯了什麼。任何建議?從以前的執行中清除成功的運行結果是可能的嗎?

+2

看起來類似於:http://stackoverflow.com/questions/38751872/how-to-prevent-airflow-from-backfilling-dag-runs –

+0

謝謝Ziggy!我遵循該帖子中的一條建議:_如果你進入樹狀視圖並點擊一個特定的任務(方框),一個對話框按鈕就會出現'標記成功'按鈕。點擊「過去」,然後點擊「標記成功」,將DAG中該任務的所有實例標記爲成功,並且不會運行。 :) – AnaF

+0

可能重複[如何防止回填dag運行的氣流?](https://stackoverflow.com/questions/38751872/how-to-prevent-airflow-from-backfilling-dag-runs) – Guille

回答

0

當DAG的start_date更改時,氣流不喜歡它。事實上,在最新版本(1.8+)中,如果start_date不明確,它將引發異常。如果你保持start_date的固定,我會想象它不會重新運行一切。

+0

事實上 - 至少在1.7.x之後 - 一旦DAG運行一次,start_date就會被忽略。調度程序在此時接管並認爲start_date是最近的dag運行的執行日期。有一個動態的開始日期實際上沒有意義。如果您需要重置它,您可以刪除所有以前的DAG運行或重命名DAG。 在1.8.x中,您可以明確防止提供最佳選項的回填。效果是將開始日期=最大值(開始日期,現在時間間隔),但時間表也會影響該日期。 –