Class RedeliveryErrorHandler.RedeliveryTask

  • All Implemented Interfaces:
    Runnable
    Enclosing class:
    RedeliveryErrorHandler

    protected class RedeliveryErrorHandler.RedeliveryTask
    extends Object
    implements Runnable
    Task to perform calling the processor and handling redelivery if it fails (more advanced than ProcessTask)
    • Constructor Detail

      • RedeliveryTask

        public RedeliveryTask​(org.apache.camel.Exchange exchange,
                              org.apache.camel.AsyncCallback callback)
    • Method Detail

      • run

        public void run()
        Processing and redelivery logic.
        Specified by:
        run in interface Runnable
      • 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

        public boolean sleep()
                      throws InterruptedException
        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