Class ThreadsProcessor

  • All Implemented Interfaces:
    AutoCloseable, org.apache.camel.AsyncProcessor, org.apache.camel.Processor, org.apache.camel.Service, org.apache.camel.ShutdownableService, org.apache.camel.spi.HasId, org.apache.camel.spi.IdAware, org.apache.camel.spi.RouteIdAware, org.apache.camel.StatefulService, org.apache.camel.SuspendableService

    public class ThreadsProcessor
    extends org.apache.camel.support.AsyncProcessorSupport
    implements org.apache.camel.spi.IdAware, org.apache.camel.spi.RouteIdAware
    Threads processor that leverage a thread pool for continue processing the Exchanges using the asynchronous routing engine.

    Notice: For transacted routes then this ThreadsProcessor is not in use, as we want to process messages using the same thread to support all work done in the same transaction. The reason is that the transaction manager that orchestrate the transaction, requires all the work to be done on the same thread.

    Pay attention to how this processor handles rejected tasks.

    • Abort - The current exchange will be set with a RejectedExecutionException exception, and marked to stop continue routing. The UnitOfWork will be regarded as failed, due the exception.
    • Discard - The current exchange will be marked to stop continue routing (notice no exception is set). The UnitOfWork will be regarded as successful, due no exception being set.
    • DiscardOldest - The oldest exchange will be marked to stop continue routing (notice no exception is set). The UnitOfWork will be regarded as successful, due no exception being set. And the current exchange will be added to the task queue.
    • CallerRuns - The current exchange will be processed by the current thread. Which mean the current thread will not be free to process a new exchange, as its processing the current exchange.
    • Field Summary

      • Fields inherited from class org.apache.camel.support.service.BaseService

        BUILDED, FAILED, INITIALIZED, INITIALIZING, lock, NEW, SHUTDOWN, SHUTTINGDOWN, STARTED, STARTING, status, STOPPED, STOPPING, SUSPENDED, SUSPENDING
    • Constructor Summary

      Constructors 
      Constructor Description
      ThreadsProcessor​(org.apache.camel.CamelContext camelContext, ExecutorService executorService, boolean shutdownExecutorService, org.apache.camel.util.concurrent.ThreadPoolRejectedPolicy rejectedPolicy)  
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      protected void doShutdown()  
      protected void doStart()  
      protected void doStop()  
      ExecutorService getExecutorService()  
      String getId()  
      org.apache.camel.util.concurrent.ThreadPoolRejectedPolicy getRejectedPolicy()  
      String getRouteId()  
      boolean process​(org.apache.camel.Exchange exchange, org.apache.camel.AsyncCallback callback)  
      void setId​(String id)  
      void setRouteId​(String routeId)  
      String toString()  
      • Methods inherited from class org.apache.camel.support.AsyncProcessorSupport

        process, processAsync
      • Methods inherited from class org.apache.camel.support.service.BaseService

        build, doBuild, doFail, doInit, doLifecycleChange, doResume, doSuspend, fail, getStatus, init, isBuild, isInit, isNew, isRunAllowed, isShutdown, isStarted, isStarting, isStartingOrStarted, isStopped, isStopping, isStoppingOrStopped, isSuspended, isSuspending, isSuspendingOrSuspended, resume, shutdown, start, stop, suspend
      • Methods inherited from interface org.apache.camel.Service

        build, close, init, start, stop
      • Methods inherited from interface org.apache.camel.ShutdownableService

        shutdown
      • Methods inherited from interface org.apache.camel.StatefulService

        getStatus, isRunAllowed, isStarted, isStarting, isStopped, isStopping, isSuspending
      • Methods inherited from interface org.apache.camel.SuspendableService

        isSuspended, resume, suspend
    • Constructor Detail

      • ThreadsProcessor

        public ThreadsProcessor​(org.apache.camel.CamelContext camelContext,
                                ExecutorService executorService,
                                boolean shutdownExecutorService,
                                org.apache.camel.util.concurrent.ThreadPoolRejectedPolicy rejectedPolicy)
    • Method Detail

      • process

        public boolean process​(org.apache.camel.Exchange exchange,
                               org.apache.camel.AsyncCallback callback)
        Specified by:
        process in interface org.apache.camel.AsyncProcessor
      • getId

        public String getId()
        Specified by:
        getId in interface org.apache.camel.spi.HasId
      • setId

        public void setId​(String id)
        Specified by:
        setId in interface org.apache.camel.spi.IdAware
      • getRouteId

        public String getRouteId()
        Specified by:
        getRouteId in interface org.apache.camel.spi.RouteIdAware
      • setRouteId

        public void setRouteId​(String routeId)
        Specified by:
        setRouteId in interface org.apache.camel.spi.RouteIdAware
      • getRejectedPolicy

        public org.apache.camel.util.concurrent.ThreadPoolRejectedPolicy getRejectedPolicy()
      • doStart

        protected void doStart()
                        throws Exception
        Overrides:
        doStart in class org.apache.camel.support.AsyncProcessorSupport
        Throws:
        Exception
      • doStop

        protected void doStop()
                       throws Exception
        Overrides:
        doStop in class org.apache.camel.support.AsyncProcessorSupport
        Throws:
        Exception
      • doShutdown

        protected void doShutdown()
                           throws Exception
        Overrides:
        doShutdown in class org.apache.camel.support.service.BaseService
        Throws:
        Exception