|
Did this page help you?Yes No Tell us about it... |
||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectcom.amazonaws.services.simpleworkflow.flow.worker.BackoffThrottler
public class BackoffThrottler
Used to throttle code execution in presence of failures using exponential backoff logic. The formula used to calculate the next sleep interval is:
min(pow(backoffCoefficient, failureCount - 1) * initialSleep, maxSleep);
Example usage:
BackoffThrottler throttler = new BackoffThrottler(1000, 60000, 2); while(!stopped) { try { throttler.throttle(); // some code that can fail and should be throttled ... throttler.success(); } catch (Exception e) { throttler.failure(); } }
Constructor Summary | |
---|---|
BackoffThrottler(long initialSleep,
long maxSleep,
double backoffCoefficient)
Construct an instance of the throttler. |
Method Summary | |
---|---|
void |
failure()
Increment failure count. |
void |
success()
Resent failure count to 0. |
void |
throttle()
Sleep if there were failures since the last success call. |
Methods inherited from class java.lang.Object |
---|
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
---|
public BackoffThrottler(long initialSleep, long maxSleep, double backoffCoefficient)
initialSleep
- time to sleep on the first failuremaxSleep
- maximum time to sleep independently of number of failuresbackoffCoefficient
- coefficient used to calculate the next time to sleep.Method Detail |
---|
public void throttle() throws InterruptedException
InterruptedException
public void success()
public void failure()
|
|||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |