używam guava-retrying dla strategii ponownym zadaniem dowolnego wywołania funkcji.
zintegrować go z biblioteką Guavaberry że pisałem i że zawiera kilka strategii oczekujących, które pozwalają w łatwy sposób zbudować solidne wykładniczy backoff połączeniu z przedziału losowej (aka jitter): ExponentialJitterWaitStrategy
na przykład do budowy wykładniczy backoff ograniczona do 15 sekund i jitter 50% wywoływalnym:
Retryer<Boolean> retryer = RetryerBuilder.<Boolean>newBuilder()
.retryIfResult(Predicates.isNull())
.withWaitStrategy(WaitStrategies.exponentialJitterWait(Duration.ofSeconds(15), 0.5D))
.build();
retryer.call(callable);
bibliotekę sprawdzone i udokumentowane i może być łatwo zintegrowany poprzez Maven środkowej.
Mam nadzieję, że to może być pomocne.
Cześć Gaurav, jakie jest twoje ostateczne rozwiązanie? – Jerome