|
||||||||||
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 boolean |
allowRedeliveryWhileStopping
|
protected boolean |
asyncDelayedRedelivery
|
protected double |
backOffMultiplier
|
protected double |
collisionAvoidanceFactor
|
protected String |
delayPattern
|
protected boolean |
logContinued
|
protected boolean |
logExhausted
|
protected boolean |
logExhaustedMessageHistory
|
protected boolean |
logHandled
|
protected boolean |
logRetryAttempted
|
protected boolean |
logRetryStackTrace
|
protected boolean |
logStackTrace
|
protected int |
maximumRedeliveries
|
protected long |
maximumRedeliveryDelay
|
protected static Random |
randomNumberGenerator
|
protected long |
redeliveryDelay
|
protected LoggingLevel |
retriesExhaustedLogLevel
|
protected LoggingLevel |
retryAttemptedLogLevel
|
protected boolean |
useCollisionAvoidance
|
protected boolean |
useExponentialBackOff
|
Constructor Summary | |
---|---|
RedeliveryPolicy()
|
Method Summary | |
---|---|
RedeliveryPolicy |
allowRedeliveryWhileStopping(boolean redeliverWhileStopping)
Controls whether to allow redelivery while stopping/shutting down a route that uses error handling. |
RedeliveryPolicy |
asyncDelayedRedelivery()
Allow asynchronous delayed redelivery. |
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 |
long |
calculateRedeliveryDelay(long previousDelay,
int redeliveryCounter)
Calculates the new redelivery delay based on the last one |
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()
|
long |
getCollisionAvoidancePercent()
|
String |
getDelayPattern()
|
int |
getMaximumRedeliveries()
|
long |
getMaximumRedeliveryDelay()
|
protected static Random |
getRandomNumberGenerator()
|
long |
getRedeliverDelay()
Deprecated. will be removed in the near future. Instead use getRedeliveryDelay() |
long |
getRedeliveryDelay()
|
LoggingLevel |
getRetriesExhaustedLogLevel()
|
LoggingLevel |
getRetryAttemptedLogLevel()
|
boolean |
isAllowRedeliveryWhileStopping()
|
boolean |
isAsyncDelayedRedelivery()
|
boolean |
isLogContinued()
|
boolean |
isLogExhausted()
|
boolean |
isLogExhaustedMessageHistory()
|
boolean |
isLogHandled()
|
boolean |
isLogRetryAttempted()
|
boolean |
isLogRetryStackTrace()
|
boolean |
isLogStackTrace()
|
boolean |
isUseCollisionAvoidance()
|
boolean |
isUseExponentialBackOff()
|
RedeliveryPolicy |
logExhausted(boolean logExhausted)
Sets whether to log exhausted errors |
RedeliveryPolicy |
logExhaustedMessageHistory(boolean logExhaustedMessageHistory)
Sets whether to log exhausted errors including message history |
RedeliveryPolicy |
logHandled(boolean logHandled)
Sets whether to log errors even if its handled |
RedeliveryPolicy |
logRetryAttempted(boolean logRetryAttempted)
Sets whether to log retry attempts |
RedeliveryPolicy |
logRetryStackTrace(boolean logRetryStackTrace)
Sets whether to log stacktrace for failed redelivery attempts |
RedeliveryPolicy |
logStackTrace(boolean logStackTrace)
Sets whether to log stacktrace for failed messages. |
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)
Deprecated. will be removed in the near future. Instead use redeliveryDelay(long) instead |
RedeliveryPolicy |
redeliveryDelay(long delay)
Sets the initial redelivery 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 |
setAllowRedeliveryWhileStopping(boolean allowRedeliveryWhileStopping)
Controls whether to allow redelivery while stopping/shutting down a route that uses error handling. |
void |
setAsyncDelayedRedelivery(boolean asyncDelayedRedelivery)
Sets whether asynchronous delayed redelivery is allowed. |
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 instead of fixed delay. |
void |
setLogContinued(boolean logContinued)
Sets whether errors should be logged even if its continued |
void |
setLogExhausted(boolean logExhausted)
Sets whether exhausted exceptions should be logged or not |
void |
setLogExhaustedMessageHistory(boolean logExhaustedMessageHistory)
Sets whether exhausted exceptions should be logged with message history included. |
void |
setLogHandled(boolean logHandled)
Sets whether errors should be logged even if its handled |
void |
setLogRetryAttempted(boolean logRetryAttempted)
Sets whether retry attempts should be logged or not |
void |
setLogRetryStackTrace(boolean logRetryStackTrace)
Sets whether stack traces should be logged or not |
void |
setLogStackTrace(boolean logStackTrace)
Sets whether 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. |
void |
setRedeliverDelay(long redeliveryDelay)
Deprecated. will be removed in the near future. Instead use setRedeliveryDelay(long) |
void |
setRedeliveryDelay(long redeliverDelay)
Sets the initial redelivery 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 retryWhile)
Returns true if the policy decides that the message exchange should be redelivered. |
void |
sleep(long redeliveryDelay)
Sleeps for the given delay |
long |
sleep(long redeliveryDelay,
int redeliveryCounter)
Calculates the new redelivery delay based on the last one and 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 Random randomNumberGenerator
protected long redeliveryDelay
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 boolean logRetryStackTrace
protected boolean logHandled
protected boolean logContinued
protected boolean logExhausted
protected boolean logExhaustedMessageHistory
protected boolean logRetryAttempted
protected String delayPattern
protected boolean asyncDelayedRedelivery
protected boolean allowRedeliveryWhileStopping
Constructor Detail |
---|
public RedeliveryPolicy()
Method Detail |
---|
public String toString()
toString
in class Object
public RedeliveryPolicy copy()
public boolean shouldRedeliver(Exchange exchange, int redeliveryCounter, Predicate retryWhile)
exchange
- the current exchangeredeliveryCounter
- the current retry counterretryWhile
- 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 interrupted likely because of shutdownpublic void sleep(long redeliveryDelay) throws InterruptedException
redeliveryDelay
- the delay
InterruptedException
- is thrown if the sleep is interrupted likely because of shutdownpublic long calculateRedeliveryDelay(long previousDelay, int redeliveryCounter)
previousDelay
- previous redelivery delayredeliveryCounter
- number of previous redelivery attempts
protected static long calculateRedeliverDelayUsingPattern(String delayPattern, int redeliveryCounter)
@Deprecated public RedeliveryPolicy redeliverDelay(long delay)
redeliveryDelay(long)
instead
public RedeliveryPolicy redeliveryDelay(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 logRetryAttempted(boolean logRetryAttempted)
public RedeliveryPolicy logStackTrace(boolean logStackTrace)
public RedeliveryPolicy logRetryStackTrace(boolean logRetryStackTrace)
public RedeliveryPolicy logHandled(boolean logHandled)
public RedeliveryPolicy logExhausted(boolean logExhausted)
public RedeliveryPolicy logExhaustedMessageHistory(boolean logExhaustedMessageHistory)
public RedeliveryPolicy delayPattern(String delayPattern)
public RedeliveryPolicy disableRedelivery()
public RedeliveryPolicy asyncDelayedRedelivery()
setAsyncDelayedRedelivery(boolean)
public RedeliveryPolicy allowRedeliveryWhileStopping(boolean redeliverWhileStopping)
redeliverWhileStopping
- true to allow redelivery, false to reject redeliveries@Deprecated public long getRedeliverDelay()
getRedeliveryDelay()
@Deprecated public void setRedeliverDelay(long redeliveryDelay)
setRedeliveryDelay(long)
public long getRedeliveryDelay()
public void setRedeliveryDelay(long redeliverDelay)
public double getBackOffMultiplier()
public void setBackOffMultiplier(double backOffMultiplier)
setUseExponentialBackOff(boolean)
is enabled
public long 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)
public boolean isLogRetryStackTrace()
public void setLogRetryStackTrace(boolean logRetryStackTrace)
public boolean isLogHandled()
public void setLogHandled(boolean logHandled)
public boolean isLogContinued()
public void setLogContinued(boolean logContinued)
public boolean isLogRetryAttempted()
public void setLogRetryAttempted(boolean logRetryAttempted)
public boolean isLogExhausted()
public void setLogExhausted(boolean logExhausted)
public boolean isLogExhaustedMessageHistory()
public void setLogExhaustedMessageHistory(boolean logExhaustedMessageHistory)
public boolean isAsyncDelayedRedelivery()
public void setAsyncDelayedRedelivery(boolean asyncDelayedRedelivery)
asyncDelayedRedelivery
- whether asynchronous delayed redelivery is allowedpublic boolean isAllowRedeliveryWhileStopping()
public void setAllowRedeliveryWhileStopping(boolean allowRedeliveryWhileStopping)
allowRedeliveryWhileStopping
- true to allow redelivery, false to reject redeliveries
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |