|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object org.apache.camel.processor.RedeliveryPolicy
public class RedeliveryPolicy
The policy used to decide how many times to redeliver and the time between the redeliveries before being sent to a Dead Letter Channel
The default values are:
Field Summary | |
---|---|
protected double |
backOffMultiplier
|
protected double |
collisionAvoidanceFactor
|
protected String |
delayPattern
|
protected boolean |
logStackTrace
|
protected int |
maximumRedeliveries
|
protected long |
maximumRedeliveryDelay
|
protected static Random |
randomNumberGenerator
|
protected long |
redeliverDelay
|
protected LoggingLevel |
retriesExhaustedLogLevel
|
protected LoggingLevel |
retryAttemptedLogLevel
|
protected boolean |
useCollisionAvoidance
|
protected boolean |
useExponentialBackOff
|
Constructor Summary | |
---|---|
RedeliveryPolicy()
|
Method Summary | |
---|---|
RedeliveryPolicy |
backOffMultiplier(double multiplier)
Enables exponential backoff and sets the multiplier used to increase the delay between redeliveries |
protected static long |
calculateRedeliverDelayUsingPattern(String delayPattern,
int redeliveryCounter)
Calculates the delay using the delay pattern |
protected long |
calculateRedeliveryDelay(long previousDelay,
int redeliveryCounter)
|
RedeliveryPolicy |
collisionAvoidancePercent(double collisionAvoidancePercent)
Enables collision avoidance and sets the percentage used |
RedeliveryPolicy |
copy()
|
RedeliveryPolicy |
delayPattern(String delayPattern)
Sets the delay pattern with delay intervals. |
RedeliveryPolicy |
disableRedelivery()
Disables redelivery by setting maximum redeliveries to 0. |
double |
getBackOffMultiplier()
|
double |
getCollisionAvoidanceFactor()
|
short |
getCollisionAvoidancePercent()
|
String |
getDelayPattern()
|
int |
getMaximumRedeliveries()
|
long |
getMaximumRedeliveryDelay()
|
protected static Random |
getRandomNumberGenerator()
|
long |
getRedeliverDelay()
|
LoggingLevel |
getRetriesExhaustedLogLevel()
|
LoggingLevel |
getRetryAttemptedLogLevel()
|
boolean |
isLogStackTrace()
|
boolean |
isUseCollisionAvoidance()
|
boolean |
isUseExponentialBackOff()
|
RedeliveryPolicy |
logStackTrace(boolean logStackTrace)
Sets the logging level to use for log messages when retries are attempted. |
RedeliveryPolicy |
maximumRedeliveries(int maximumRedeliveries)
Sets the maximum number of times a message exchange will be redelivered |
RedeliveryPolicy |
maximumRedeliveryDelay(long maximumRedeliveryDelay)
Sets the maximum redelivery delay if using exponential back off. |
RedeliveryPolicy |
redeliverDelay(long delay)
Sets the delay in milliseconds |
RedeliveryPolicy |
retriesExhaustedLogLevel(LoggingLevel retriesExhaustedLogLevel)
Sets the logging level to use for log messages when retries have been exhausted. |
RedeliveryPolicy |
retryAttemptedLogLevel(LoggingLevel retryAttemptedLogLevel)
Sets the logging level to use for log messages when retries are attempted. |
void |
setBackOffMultiplier(double backOffMultiplier)
Sets the multiplier used to increase the delay between redeliveries if setUseExponentialBackOff(boolean) is enabled |
void |
setCollisionAvoidanceFactor(double collisionAvoidanceFactor)
Sets the factor used for collision avoidance if enabled via setUseCollisionAvoidance(boolean) |
void |
setCollisionAvoidancePercent(double collisionAvoidancePercent)
Sets the percentage used for collision avoidance if enabled via setUseCollisionAvoidance(boolean) |
void |
setDelayPattern(String delayPattern)
Sets an optional delay pattern to use insted of fixed delay. |
void |
setLogStackTrace(boolean logStackTrace)
Sets wheter stack traces should be logged or not |
void |
setMaximumRedeliveries(int maximumRedeliveries)
Sets the maximum number of times a message exchange will be redelivered. |
void |
setMaximumRedeliveryDelay(long maximumRedeliveryDelay)
Sets the maximum redelivery delay if using exponential back off. |
void |
setRedeliverDelay(long redeliverDelay)
Sets the delay in milliseconds |
void |
setRetriesExhaustedLogLevel(LoggingLevel retriesExhaustedLogLevel)
Sets the logging level to use for log messages when retries have been exhausted. |
void |
setRetryAttemptedLogLevel(LoggingLevel retryAttemptedLogLevel)
Sets the logging level to use for log messages when retries are attempted. |
void |
setUseCollisionAvoidance(boolean useCollisionAvoidance)
Enables/disables collision avoidance which adds some randomization to the backoff timings to reduce contention probability |
void |
setUseExponentialBackOff(boolean useExponentialBackOff)
Enables/disables exponential backoff using the getBackOffMultiplier() to increase the time between retries |
boolean |
shouldRedeliver(Exchange exchange,
int redeliveryCounter,
Predicate retryUntil)
Returns true if the policy decides that the message exchange should be redelivered. |
long |
sleep(long redeliveryDelay,
int redeliveryCounter)
Calculates the new redelivery delay based on the last one then sleeps for the necessary amount of time |
String |
toString()
|
RedeliveryPolicy |
useCollisionAvoidance()
Enables collision avoidance which adds some randomization to the backoff timings to reduce contention probability |
RedeliveryPolicy |
useExponentialBackOff()
Enables exponential backoff using the getBackOffMultiplier() to
increase the time between retries |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Field Detail |
---|
protected static transient Random randomNumberGenerator
protected long redeliverDelay
protected int maximumRedeliveries
protected long maximumRedeliveryDelay
protected double backOffMultiplier
protected boolean useExponentialBackOff
protected double collisionAvoidanceFactor
protected boolean useCollisionAvoidance
protected LoggingLevel retriesExhaustedLogLevel
protected LoggingLevel retryAttemptedLogLevel
protected boolean logStackTrace
protected String delayPattern
Constructor Detail |
---|
public RedeliveryPolicy()
Method Detail |
---|
public String toString()
toString
in class Object
public RedeliveryPolicy copy()
public boolean shouldRedeliver(Exchange exchange, int redeliveryCounter, Predicate retryUntil)
exchange
- the current exchangeredeliveryCounter
- the current retry counterretryUntil
- an optional predicate to determine if we should redeliver or not
public long sleep(long redeliveryDelay, int redeliveryCounter) throws InterruptedException
redeliveryDelay
- previous redelivery delayredeliveryCounter
- number of previous redelivery attempts
InterruptedException
- is thrown if the sleep is interruped likely because of shutdownprotected long calculateRedeliveryDelay(long previousDelay, int redeliveryCounter)
protected static long calculateRedeliverDelayUsingPattern(String delayPattern, int redeliveryCounter)
public RedeliveryPolicy redeliverDelay(long delay)
public RedeliveryPolicy maximumRedeliveries(int maximumRedeliveries)
public RedeliveryPolicy useCollisionAvoidance()
public RedeliveryPolicy useExponentialBackOff()
getBackOffMultiplier()
to
increase the time between retries
public RedeliveryPolicy backOffMultiplier(double multiplier)
public RedeliveryPolicy collisionAvoidancePercent(double collisionAvoidancePercent)
public RedeliveryPolicy maximumRedeliveryDelay(long maximumRedeliveryDelay)
public RedeliveryPolicy retriesExhaustedLogLevel(LoggingLevel retriesExhaustedLogLevel)
public RedeliveryPolicy retryAttemptedLogLevel(LoggingLevel retryAttemptedLogLevel)
public RedeliveryPolicy logStackTrace(boolean logStackTrace)
public RedeliveryPolicy delayPattern(String delayPattern)
public RedeliveryPolicy disableRedelivery()
public long getRedeliverDelay()
public void setRedeliverDelay(long redeliverDelay)
public double getBackOffMultiplier()
public void setBackOffMultiplier(double backOffMultiplier)
setUseExponentialBackOff(boolean)
is enabled
public short getCollisionAvoidancePercent()
public void setCollisionAvoidancePercent(double collisionAvoidancePercent)
setUseCollisionAvoidance(boolean)
public double getCollisionAvoidanceFactor()
public void setCollisionAvoidanceFactor(double collisionAvoidanceFactor)
setUseCollisionAvoidance(boolean)
public int getMaximumRedeliveries()
public void setMaximumRedeliveries(int maximumRedeliveries)
public long getMaximumRedeliveryDelay()
public void setMaximumRedeliveryDelay(long maximumRedeliveryDelay)
public boolean isUseCollisionAvoidance()
public void setUseCollisionAvoidance(boolean useCollisionAvoidance)
public boolean isUseExponentialBackOff()
public void setUseExponentialBackOff(boolean useExponentialBackOff)
getBackOffMultiplier()
to increase the time between retries
protected static Random getRandomNumberGenerator()
public void setRetriesExhaustedLogLevel(LoggingLevel retriesExhaustedLogLevel)
public LoggingLevel getRetriesExhaustedLogLevel()
public void setRetryAttemptedLogLevel(LoggingLevel retryAttemptedLogLevel)
public LoggingLevel getRetryAttemptedLogLevel()
public String getDelayPattern()
public void setDelayPattern(String delayPattern)
public boolean isLogStackTrace()
public void setLogStackTrace(boolean logStackTrace)
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |