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

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

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

CircuitBreaker/src/dk/thoerup/curcuitbreaker/OpenState.java revision 393 by torben, Mon Oct 5 19:44:40 2009 UTC CircuitBreaker/src/dk/thoerup/circuitbreaker/OpenState.java revision 1306 by torben, Tue Apr 19 15:22:09 2011 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 43  public class OpenState implements Circui Line 46  public class OpenState implements Circui
46          tripTime.set(now);          tripTime.set(now);
47      }      }
48    
49            public String getName() {
50                    return "Open";
51            }
52            
53            public long getTimeout() {
54                    return config.getTimeout();
55            }
56            
57            public long getElapsed() {
58            long now = System.currentTimeMillis();
59            long elapsed = now - tripTime.get();
60            return elapsed;
61            }
62    
63  }  }

Legend:
Removed from v.393  
changed lines
  Added in v.1306

  ViewVC Help
Powered by ViewVC 1.1.20