guava-retrying, 재시도 도구 사용
1397 단어 시스템 구조
이전 인스턴스 코드:
/**
* 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