如何确保只重试一个bashoperator而不是其他气流

时间:2017-05-15 16:14:19

标签: airflow apache-airflow airflow-scheduler

我有dag文件如下。在这里,我没有重试。但是,我想确保特定文件(bash1,bash2)应该重试1.而不是其他文件。

以下是默认参数。

default_args = {
    'owner': 'airflow',
    'depends_on_past': False,
    'start_date': datetime(2017, 3, 24, 19, 00),
    'email': ['myemail@email.com'],
    'email_on_failure': True,
    'email_on_retry': True,
    'retries': 0,
    'retry_delay': timedelta(minutes=5),
    'backfill': False,
}

我将dag定义如下:     dag = DAG(' x&#39 ;, default_args = default_args,schedule_interval =" 15 0,1,2,3,13,14,15,16,17,18,19,20,21, 22,23 * * *")

我的第一个运营商定义如下:

bash1 = BashOperator(
        task_id= 'bash1',
        bash_command="cd /home/ubuntu/run_scripts/Test/inst/scripts && /usr/bin/Rscript bash1.R ",
        dag=dag
    )

我的第二个操作员定义如下:

bash2 = BashOperator(
        task_id= 'bash2',
        bash_command="cd /home/ubuntu/run_scripts/Test/inst/scripts && /usr/bin/Rscript bash2.R ",
        dag=dag
    )

我的最终运营商定义如下:

Test_join = BashOperator(
        task_id= 'Test_join',
        bash_command="cd /home/ubuntu/run_scripts/Test/inst/scripts && /usr/bin/Rscript Test_join.R ",
        dag=dag
    )

Test_join取决于bash1和bash 2.

Test_join.set_upstream(bash1)
Test_join.set_upstream(bash2)

我需要做些什么才能确保bash1和bash2已退役2但不是Test_join。

1 个答案:

答案 0 :(得分:0)

您可以使用参数' retries'在宣布任务时。