2016-11-14 79 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中,您可以明确防止提供最佳选项的回填。效果是将开始日期=最大值(开始日期,现在时间间隔),但时间表也会影响该日期。 –