guava-retrying, 재시도 도구 사용

1397 단어 시스템 구조
가장 자주 사용하는 것은 방법이 이상할 때 다시 시도하는 것이다. 예를 들어 네트워크 고장으로 인한 IOException 등이다.자바 이상 시스템은runtime 이상,checked 이상과error로 나뉘는데 그 중에서 ERROR 프로그램은 처리할 수 없고 관리할 필요가 없다.그러나 학습으로서 우리는 error의 상황을 테스트할 수 있다.다음 코드는 세 가지 작업을 정의했습니다. 각각runtime 이상,checked 이상,error를 던집니다.
이전 인스턴스 코드:
 /**
     * guava retry
     *  false   :  300 ms,  3  
     */
    static Retryer retryer = RetryerBuilder.newBuilder()
            .retryIfExceptionOfType(RestClientException.class)
            .retryIfResult(aBoolean -> Objects.equals(aBoolean, false))
            .withWaitStrategy(WaitStrategies.fixedWait(300, TimeUnit.MILLISECONDS))
            .withStopStrategy(StopStrategies.stopAfterAttempt(3))
            .build();
호출:
for (final String mobile : Mobiles) {
            final SmsLog smsLog = new SmsLog(mobile, content);

            Callable sendTask = () -> send(mobile, content);
            try {
                retryer.call(sendTask);
            } catch (ExecutionException | RetryException e) {
                logger.error(" , ");
            }
        }
private Boolean send(String mobile, String content) {
        boolean success = true;
        .....
        return success;
    }

여기에 사용 상세 정보를 추가하십시오.http://blog.csdn.net/aitangyong/article/details/53886293

좋은 웹페이지 즐겨찾기