/[projects]/miscJava/CircuitBreaker/src/main/java/dk/thoerup/circuitbreaker/OpenState.java
ViewVC logotype

Diff of /miscJava/CircuitBreaker/src/main/java/dk/thoerup/circuitbreaker/OpenState.java

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

CircuitBreaker/src/dk/thoerup/curcuitbreaker/OpenState.java revision 397 by torben, Tue Oct 6 05:22:40 2009 UTC miscJava/CircuitBreaker/src/dk/thoerup/circuitbreaker/OpenState.java revision 2448 by torben, Fri Mar 20 08:52:49 2015 UTC
# Line 1  Line 1 
1  package dk.thoerup.curcuitbreaker;  package dk.thoerup.circuitbreaker;
2    
3  import java.util.concurrent.atomic.AtomicLong;  import java.util.concurrent.atomic.AtomicLong;
4    
5    import dk.thoerup.circuitbreaker.config.BreakerConfig;
6    
 public class OpenState implements CircuitBreakerState {  
7    
8          private AtomicLong tripTime = new AtomicLong(0);  public final class OpenState implements CircuitBreakerState {
9          private AtomicLong timeout = new AtomicLong(0);  
10            final private AtomicLong tripTime = new AtomicLong(0);
11            
12            BreakerConfig config;
13                    
14          public void setTimeout(long timeout) {          public void setTimeout(BreakerConfig config) {
15                  this.timeout.set( timeout );                  this.config = config;
16          }          }
17                    
18      public void preInvoke(CircuitBreaker circuitBreaker) throws Throwable      public void preInvoke(CircuitBreaker circuitBreaker) throws Exception
19      {      {
20          long now = System.currentTimeMillis();          long now = System.currentTimeMillis();
21          long elapsed = now - tripTime.get();          long elapsed = now - tripTime.get();
22                    
23          if(elapsed > timeout.get())          if(elapsed > config.getTimeout())
24          {          {
25              circuitBreaker.attemptReset();              circuitBreaker.attemptReset();
26          }          }
# Line 27  public class OpenState implements Circui Line 30  public class OpenState implements Circui
30          }          }
31      }      }
32    
33      public void postInvoke(CircuitBreaker circuitBreaker) throws Throwable      public void postInvoke(CircuitBreaker circuitBreaker) throws Exception
34      {      {
35          // NO OP          // NO OP
36      }      }
37    
38      public void onError(CircuitBreaker circuitBreaker, Throwable t) throws Throwable      public void onError(CircuitBreaker circuitBreaker, Exception t) throws Exception
39      {      {
40          // NO OP          // NO OP
41      }      }
# Line 48  public class OpenState implements Circui Line 51  public class OpenState implements Circui
51          }          }
52                    
53          public long getTimeout() {          public long getTimeout() {
54                  return timeout.get();                  return config.getTimeout();
55          }          }
56                    
57          public long getElapsed() {          public long getElapsed() {

Legend:
Removed from v.397  
changed lines
  Added in v.2448

  ViewVC Help
Powered by ViewVC 1.1.20