Class ThreadsProcessor

java.lang.Object
org.apache.camel.support.service.BaseService
org.apache.camel.support.service.ServiceSupport
org.apache.camel.support.AsyncProcessorSupport
org.apache.camel.processor.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.
  • 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

    BUILT, FAILED, INITIALIZED, INITIALIZING, lock, NEW, SHUTDOWN, SHUTTING_DOWN, 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

    Modifier and Type
    Method
    Description
    protected void
     
    protected void
     
    protected void
     
     
     
    org.apache.camel.util.concurrent.ThreadPoolRejectedPolicy
     
     
    boolean
    process(org.apache.camel.Exchange exchange, org.apache.camel.AsyncCallback callback)
     
    void
     
    void
    setRouteId(String routeId)
     
     

    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 class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait

    Methods inherited from interface org.apache.camel.spi.IdAware

    setGeneratedId

    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 Details

    • ThreadsProcessor

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

    • process

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

      public ExecutorService getExecutorService()
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • 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.service.BaseService
      Throws:
      Exception
    • doStop

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

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