Class RedeliveryErrorHandler.RedeliveryTask
java.lang.Object
org.apache.camel.processor.errorhandler.RedeliveryErrorHandler.RedeliveryTask
- All Implemented Interfaces:
Runnable
,PooledExchangeTask
- Enclosing class:
RedeliveryErrorHandler
protected class RedeliveryErrorHandler.RedeliveryTask
extends Object
implements PooledExchangeTask, Runnable
Task to perform calling the processor and handling redelivery if it fails (more advanced than ProcessTask)
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionprotected void
deliverToFailureProcessor
(org.apache.camel.Processor processor, boolean isDeadLetterChannel, org.apache.camel.Exchange exchange) All redelivery attempts failed so move the exchange to the dead letter queueprotected void
Gives an optional configured redelivery processor a chance to process before the Exchange will be redelivered.protected void
protected boolean
protected boolean
protected void
Gives an optional configured OnExceptionOccurred processor a chance to process just after an exception was thrown while processing the Exchange.void
prepare
(org.apache.camel.Exchange exchange, org.apache.camel.AsyncCallback callback) Prepares the task for the given exchange and its callbackprotected void
prepareExchangeAfterFailure
(org.apache.camel.Exchange exchange, boolean isDeadLetterChannel, boolean shouldHandle, boolean shouldContinue) protected void
prepareExchangeForContinue
(org.apache.camel.Exchange exchange, boolean isDeadLetterChannel) protected void
protected void
void
reset()
Resets the task after its done and can be reused for another exchange.void
run()
Processing and redelivery logic.boolean
sleep()
Method for sleeping during redelivery attempts.toString()
-
Constructor Details
-
RedeliveryTask
public RedeliveryTask()
-
-
Method Details
-
toString
-
prepare
public void prepare(org.apache.camel.Exchange exchange, org.apache.camel.AsyncCallback callback) Description copied from interface:PooledExchangeTask
Prepares the task for the given exchange and its callback- Specified by:
prepare
in interfacePooledExchangeTask
- Parameters:
exchange
- the exchangecallback
- the callback
-
reset
public void reset()Description copied from interface:PooledExchangeTask
Resets the task after its done and can be reused for another exchange.- Specified by:
reset
in interfacePooledExchangeTask
-
run
public void run()Processing and redelivery logic. -
isRunAllowed
protected boolean isRunAllowed() -
isRedeliveryAllowed
protected boolean isRedeliveryAllowed() -
redeliver
protected void redeliver() -
prepareExchangeForContinue
protected void prepareExchangeForContinue(org.apache.camel.Exchange exchange, boolean isDeadLetterChannel) -
prepareExchangeForRedelivery
protected void prepareExchangeForRedelivery() -
handleException
protected void handleException() -
onExceptionOccurred
protected void onExceptionOccurred()Gives an optional configured OnExceptionOccurred processor a chance to process just after an exception was thrown while processing the Exchange. This allows to execute the processor at the same time the exception was thrown. -
deliverToOnRedeliveryProcessor
protected void deliverToOnRedeliveryProcessor()Gives an optional configured redelivery processor a chance to process before the Exchange will be redelivered. This can be used to alter the Exchange. -
deliverToFailureProcessor
protected void deliverToFailureProcessor(org.apache.camel.Processor processor, boolean isDeadLetterChannel, org.apache.camel.Exchange exchange) All redelivery attempts failed so move the exchange to the dead letter queue -
prepareExchangeAfterFailure
protected void prepareExchangeAfterFailure(org.apache.camel.Exchange exchange, boolean isDeadLetterChannel, boolean shouldHandle, boolean shouldContinue) -
sleep
Method for sleeping during redelivery attempts. This task is for the synchronous blocking. If using async delayed then a scheduled thread pool is used for sleeping and trigger redeliveries.- Throws:
InterruptedException
-