protected void configureCircuitBreaker(String name, CircuitBreaker circuit, CircuitBreakerConfig config) { long resetMillis = config.getResetMillis(); Long resetMillisOverride = getLongPropertyOverrideValue(name, RESETMILLIS_KEY); if (resetMillisOverride != null) { resetMillis = resetMillisOverride; } FailureInterpreter fi = config.getFailureInterpreter(); circuit.setFailureInterpreter(fi); if (resetMillis > 0) { circuit.setResetMillis(resetMillis); } if (fi instanceof DefaultFailureInterpreter) { configureDefaultFailureInterpreter(name, resetMillis, circuit); } else { logger.info( "Created CircuitBreaker '{}', resetMillis={}", new Object[] { name, resetMillis }); } }
private void configureDefaultFailureInterpreter(String name, long resetMillis, CircuitBreaker circuit) { DefaultFailureInterpreter fi = (DefaultFailureInterpreter) circuit.getFailureInterpreter(); Integer limitOverride = getIntegerPropertyOverrideValue(name, LIMIT_KEY); if (limitOverride != null) { fi.setLimit(limitOverride); } Long windowMillisOverride = getLongPropertyOverrideValue(name, WINDOWMILLIS_KEY); if (windowMillisOverride != null) { fi.setWindowMillis(windowMillisOverride); } logger.info( "Created CircuitBreaker '{}', limit={}, windowMillis={}, resetMillis={}", new Object[] { name, fi.getLimit(), fi.getWindowMillis(), resetMillis }); }