Search in sources :

Example 1 with RequestTimeoutException

use of com.b2international.commons.exceptions.RequestTimeoutException in project snow-owl by b2ihealthcare.

the class TerminologyRepository method waitForHealth.

public void waitForHealth(RepositoryInfo.Health desiredHealth, long seconds) {
    final RetryPolicy<Health> retryPolicy = new RetryPolicy<Health>().handleResult(Health.RED).withMaxAttempts(-1).withMaxDuration(Duration.of(seconds, ChronoUnit.SECONDS)).withBackoff(1, Math.max(2, seconds / 3), ChronoUnit.SECONDS);
    final Health finalHealth = Failsafe.with(retryPolicy).get(() -> status().health());
    if (finalHealth != desiredHealth) {
        throw new RequestTimeoutException("Repository health status couldn't reach '%s' in '%s' seconds.", desiredHealth, seconds);
    }
}
Also used : RequestTimeoutException(com.b2international.commons.exceptions.RequestTimeoutException) Health(com.b2international.snowowl.core.RepositoryInfo.Health) RetryPolicy(net.jodah.failsafe.RetryPolicy)

Aggregations

RequestTimeoutException (com.b2international.commons.exceptions.RequestTimeoutException)1 Health (com.b2international.snowowl.core.RepositoryInfo.Health)1 RetryPolicy (net.jodah.failsafe.RetryPolicy)1