Class RedeliveryPolicy
- java.lang.Object
-
- dk.cloudcreate.essentials.components.foundation.messaging.RedeliveryPolicy
-
public class RedeliveryPolicy extends Object
In case the message delivery, handled by theDurableQueueConsumer, experiences an error/exception, then theRedeliveryPolicydetermines, with the aid of theMessageDeliveryErrorHandlerand the provided delivery settings, IF a Message should be retried (DurableQueues.retryMessage(RetryMessage)or if it's going to be marked as a Poison-Message/Dead-Letter-Message (DurableQueues.markAsDeadLetterMessage(MarkAsDeadLetterMessage))- See Also:
builder(),exponentialBackoff(),linearBackoff(),fixedBackoff()
-
-
Field Summary
Fields Modifier and Type Field Description MessageDeliveryErrorHandlerdeliveryErrorHandlerDurationfollowupRedeliveryDelaydoublefollowupRedeliveryDelayMultiplierDurationinitialRedeliveryDelayDurationmaximumFollowupRedeliveryThresholdintmaximumNumberOfRedeliveries
-
Constructor Summary
Constructors Constructor Description RedeliveryPolicy(Duration initialRedeliveryDelay, Duration followupRedeliveryDelay, double followupRedeliveryDelayMultiplier, Duration maximumFollowupRedeliveryDelayThreshold, int maximumNumberOfRedeliveries, MessageDeliveryErrorHandler deliveryErrorHandler)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static RedeliveryPolicyBuilderbuilder()Create a generic builder for defining aRedeliveryPolicyDurationcalculateNextRedeliveryDelay(int currentNumberOfRedeliveryAttempts)booleanequals(Object o)static ExponentialBackoffBuilderexponentialBackoff()Create a builder for defining aRedeliveryPolicythat allows for defining an Exponential Backoff strategystatic RedeliveryPolicyexponentialBackoff(Duration initialRedeliveryDelay, Duration followupRedeliveryDelay, double followupRedeliveryDelayMultiplier, Duration maximumFollowupRedeliveryDelayThreshold, int maximumNumberOfRedeliveries)static FixedBackoffBuilderfixedBackoff()Create a builder for defining aRedeliveryPolicywith a Fixed Backoff strategystatic RedeliveryPolicyfixedBackoff(Duration redeliveryDelay, int maximumNumberOfRedeliveries)inthashCode()booleanisPermanentError(QueuedMessage queuedMessage, Exception error)static LinearBackoffBuilderlinearBackoff()Create a builder for defining aRedeliveryPolicywith a Linear Backoff strategystatic RedeliveryPolicylinearBackoff(Duration redeliveryDelay, Duration maximumFollowupRedeliveryDelayThreshold, int maximumNumberOfRedeliveries)StringtoString()
-
-
-
Field Detail
-
initialRedeliveryDelay
public final Duration initialRedeliveryDelay
-
followupRedeliveryDelay
public final Duration followupRedeliveryDelay
-
followupRedeliveryDelayMultiplier
public final double followupRedeliveryDelayMultiplier
-
maximumFollowupRedeliveryThreshold
public final Duration maximumFollowupRedeliveryThreshold
-
maximumNumberOfRedeliveries
public final int maximumNumberOfRedeliveries
-
deliveryErrorHandler
public final MessageDeliveryErrorHandler deliveryErrorHandler
-
-
Constructor Detail
-
RedeliveryPolicy
public RedeliveryPolicy(Duration initialRedeliveryDelay, Duration followupRedeliveryDelay, double followupRedeliveryDelayMultiplier, Duration maximumFollowupRedeliveryDelayThreshold, int maximumNumberOfRedeliveries, MessageDeliveryErrorHandler deliveryErrorHandler)
-
-
Method Detail
-
builder
public static RedeliveryPolicyBuilder builder()
Create a generic builder for defining aRedeliveryPolicy- Returns:
- a generic builder for defining a
RedeliveryPolicy
-
exponentialBackoff
public static ExponentialBackoffBuilder exponentialBackoff()
Create a builder for defining aRedeliveryPolicythat allows for defining an Exponential Backoff strategy- Returns:
- a builder for defining a
RedeliveryPolicythat allows for defining an Exponential Backoff strategy
-
linearBackoff
public static LinearBackoffBuilder linearBackoff()
Create a builder for defining aRedeliveryPolicywith a Linear Backoff strategy- Returns:
- a builder for defining a
RedeliveryPolicywith a Linear Backoff strategy
-
fixedBackoff
public static FixedBackoffBuilder fixedBackoff()
Create a builder for defining aRedeliveryPolicywith a Fixed Backoff strategy- Returns:
- a builder for defining a
RedeliveryPolicywith a Fixed Backoff strategy
-
calculateNextRedeliveryDelay
public Duration calculateNextRedeliveryDelay(int currentNumberOfRedeliveryAttempts)
-
fixedBackoff
public static RedeliveryPolicy fixedBackoff(Duration redeliveryDelay, int maximumNumberOfRedeliveries)
-
linearBackoff
public static RedeliveryPolicy linearBackoff(Duration redeliveryDelay, Duration maximumFollowupRedeliveryDelayThreshold, int maximumNumberOfRedeliveries)
-
exponentialBackoff
public static RedeliveryPolicy exponentialBackoff(Duration initialRedeliveryDelay, Duration followupRedeliveryDelay, double followupRedeliveryDelayMultiplier, Duration maximumFollowupRedeliveryDelayThreshold, int maximumNumberOfRedeliveries)
-
isPermanentError
public boolean isPermanentError(QueuedMessage queuedMessage, Exception error)
-
-