|
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
This class is for internal use only and may be changed or removed without prior notice. 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 |