@Override public RetryAction shouldRetry(Exception e, int curRetry, int failovers, boolean isIdempotentOrAtMostOnce) throws Exception { final Pair p = searchPair(curRetry); if (p == null) { //no more retries. return new RetryAction(RetryAction.RetryDecision.FAIL, 0 , "Retry " + "all pairs in MultipleLinearRandomRetry: " + pairs); } //calculate sleep time and return. // ensure 0.5 <= ratio <=1.5 final double ratio = ThreadLocalRandom.current().nextDouble() + 0.5; final long sleepTime = Math.round(p.sleepMillis * ratio); return new RetryAction(RetryAction.RetryDecision.RETRY, sleepTime); }
@Override public RetryAction shouldRetry(Exception e, int curRetry, int failovers, boolean isIdempotentOrAtMostOnce) throws Exception { final Pair p = searchPair(curRetry); if (p == null) { //no more retries. return RetryAction.FAIL; } //calculate sleep time and return. final double ratio = RANDOM.get().nextDouble() + 0.5;//0.5 <= ratio <=1.5 final long sleepTime = Math.round(p.sleepMillis * ratio); return new RetryAction(RetryAction.RetryDecision.RETRY, sleepTime); }
@Override public RetryAction shouldRetry(Exception e, int curRetry, int failovers, boolean isIdempotentOrAtMostOnce) throws Exception { final Pair p = searchPair(curRetry); if (p == null) { //no more retries. return RetryAction.FAIL; } //calculate sleep time and return. final double ratio = RANDOM.get().nextDouble() + 0.5;//0.5 <= ratio <=1.5 final long sleepTime = Math.round(p.sleepMillis * ratio); return new RetryAction(RetryAction.RetryDecision.RETRY, sleepTime); }
@Override public RetryAction shouldRetry(Exception e, int curRetry, int failovers, boolean isIdempotentOrAtMostOnce) throws Exception { final Pair p = searchPair(curRetry); if (p == null) { //no more retries. return new RetryAction(RetryAction.RetryDecision.FAIL, 0 , "Retry " + "all pairs in MultipleLinearRandomRetry: " + pairs); } //calculate sleep time and return. // ensure 0.5 <= ratio <=1.5 final double ratio = ThreadLocalRandom.current().nextDouble() + 0.5; final long sleepTime = Math.round(p.sleepMillis * ratio); return new RetryAction(RetryAction.RetryDecision.RETRY, sleepTime); }
@Override public RetryAction shouldRetry(Exception e, int curRetry, int failovers, boolean isIdempotentOrAtMostOnce) throws Exception { final Pair p = searchPair(curRetry); if (p == null) { //no more retries. return RetryAction.FAIL; } //calculate sleep time and return. final double ratio = RANDOM.get().nextDouble() + 0.5;//0.5 <= ratio <=1.5 final long sleepTime = Math.round(p.sleepMillis * ratio); return new RetryAction(RetryAction.RetryDecision.RETRY, sleepTime); }