|
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
InterruptedExceptionpublic void success()
public void failure()
|
|||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||