SpringBatch от входа отказаться от повтора надежной конфигурации 005

Иногда из-за кратковременного сбоя, в результате отказа выполнения Batch, таких как сети джиттера и т.д., для того, чтобы Batch робастности, на этот раз о необходимости повторить несколько раз, чтобы исключить статус Batch, как временные факторы вызвали сбой.

Следует отметить, что из более поздних версий 2.2.0 Spring Batch, Retry, были независимо друг от друга в одном Jar.

Настройки пакетного повтора:

повторная попытка ()
источник следующим образом :

public FaultTolerantStepBuilder<I, O> retry(Class<? extends Throwable> type) {
        retryableExceptionClasses.put(type, true);
        return this;
    }

Определение должно быть повторено захвачено исключением, можно назвать несколько раз, каждый вызов будет исключением из списка внутри.

() NORETRY
источник следующим образом :

    public FaultTolerantStepBuilder<I, O> noRetry(Class<? extends Throwable> type) {
        retryableExceptionClasses.put(type, false);
        return this;
    }

Каждый вызов нужно будет исключить параметры, добавленные в список исключений внутри.

() RetryLimit
источник следующим образом :

    public FaultTolerantStepBuilder<I, O> retryLimit(int retryLimit) {
        this.retryLimit = retryLimit;
        return this;
    }

Максимальное число повторных попыток. Отказ будет напрямую говорить об этом числе.

() RetryContextCache
источник следующим образом :

    public FaultTolerantStepBuilder<I, O> retryContextCache(RetryContextCache retryContextCache) {
        this.retryContextCache = retryContextCache;
        return this;
    }

RetryContext используется для хранения кэша.

() RetryPolicy
источник следующим образом :

    public FaultTolerantStepBuilder<I, O> retryPolicy(RetryPolicy retryPolicy) {
        this.retryPolicy = retryPolicy;
        return this;
    }

Некоторые простые повторные попытки, повторные попытки могут быть достигнуты за счетом повторных попыток (), noRetry () и конфигурацией RetryLimit (). Spring Batch поддерживает повторные попытки реализовать сложную логику, установив RetryPolicy. Интерфейс (стратегия повторных попыток) RetryPolicy определяется следующим образом:

canRetry () Как определить, нужно ли повторять, открытую () выполняется, когда начало повторных попыток закрыть () выполняются в конце повторных попыток, каждый раз повторить попытку с именем registerThrowable () для инициализации контекста.

Система предоставляет несколько класса реализации по умолчанию:

Конкретные действия класса реализации, в следующей таблице:

класс реализации эффект
NeverRetryPolicy RetryCallback разрешается только звонить один раз, повторять попытки не допускается
AlwaysRetryPolicy Разрешить неограниченное число повторных попыток, пока это не удается, таким образом, логика неправильно может вызвать бесконечный цикл
SimpleRetryPolicy 固定次数重试策略,默认重试最大次数为3次,RetryTemplate默认使用的策略
TimeoutRetryPolicy 超时时间重试策略,默认超时时间为1秒,在指定的超时时间内允许重试
CircuitBreakerRetryPolicy 有熔断功能的重试策略,需设置3个参数openTimeout、resetTimeout和delegate,
CompositeRetryPolicy 组合重试策略,有两种组合方式,乐观组合重试策略是指只要有一个策略允许重试即可以,悲观组合重试策略是指只要有一个策略不允许重试即可以,但不管哪种组合方式,组合中的每一个策略都会执行
ExceptionClassifierRetryPolicy 为不同的异常指定不同的重试策略

рекомендация

отwww.cnblogs.com/ckp-henu/p/springbatch-cong-ru-men-dao-fang-qi0052.html