title: Increase Hystrix Circuit Breaker Timeout?
body: <p>I have an implementation of Hystrix Circuit Breaker and when testing I'm getting a Hystrix Runtime Exception with the error that The CircuitBreker timed-out and fallback failed. Do I need to increase a timeout on the CircutBreaker? Should it just trip the circuit breaker if the code times out?</p>
  
  <p>My junit test is as follows:</p>
  
  <pre><code>@Test
  public void test4(){
      client = new DefaultHttpClient();
      httpget = new HttpGet("http://www.google.com:81");
      resp = new CircuitBreaker(client, "test4", httpget).execute();
      //assertEquals(HttpStatus.SC_GATEWAY_TIMEOUT, resp.getStatusLine().getStatusCode());
      System.out.println(resp.getStatusLine().getStatusCode());
  }
  </code></pre>
  
  <p>My Class is just to run web gets/puts/etc using the CircuitBreaker in case of failure somehow. My class is as follows:</p>
  
  <pre><code>public class CircuitBreaker extends HystrixCommand&lt;HttpResponse&gt; {
   private HttpClient client;
   private HttpRequestBase req;
   protected String key;
  //Set up logger
   private static final Logger logger = (Logger)LoggerFactory.getLogger(CircuitBreaker.class);
  
    /*
    * This method is a constructor and sets http client based on provides args.
    * This version accepts user input Hystrix key.
    */
    public CircuitBreaker (HttpClient client, String key, HttpRequestBase req, int threshold) {
        super(HystrixCommandGroupKey.Factory.asKey(key));
        this.client = client;
        this.key = key;
        this.req = req;
        logger.info("Hystrix Circut Breaker with Hystrix key:" + key);
        logger.setLevel(Level.DEBUG);
        HystrixCommandProperties.Setter().withCircuitBreakerEnabled(true);
        HystrixCommandProperties.Setter().withCircuitBreakerErrorThresholdPercentage(threshold);
        //HystrixCommandProperties.Setter().withCircuitBreakerRequestVolumeThreshold(50);
    }
    /*
     * This method is a constructor and sets http client based on provides args.
     * This version uses the default threshold of 50% failures if one isn't provided.
     */
    public CircuitBreaker (HttpClient client,String key, HttpRequestBase req){
        this(client, key, req, 50);
    }
    /*
    * This method runs the command and returns the response.
    */
  @Override
  protected HttpResponse run() throws Exception {
      HttpResponse resp = null;
      resp = client.execute(req);
      if (resp != null)
          logger.info("Request to " + req.getURI() + " succeeded!");
      return resp;
  }
  /*
   * Fallback method in in the event the circuit breaker is tripped.
   * Overriding the default fallback implemented by Hystrix that just throws an exception.
   * @see com.netflix.hystrix.HystrixCommand#getFallback()
   */
  @Override
  protected HttpResponse getFallback() {
      //For later expansion as needed.
      logger.error("Circuit Breaker has " + getExecutionEvents() + ". Reason: "+ getFailedExecutionException().getMessage());
      return null;
  }
  }
  </code></pre>