Package org.apache.camel.processor
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 theExchange
s using the asynchronous routing engine. Notice: For transacted routes then thisThreadsProcessor
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. TheUnitOfWork
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.
-
-
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.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
-
-
-
-
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 interfaceorg.apache.camel.AsyncProcessor
-
getExecutorService
public ExecutorService getExecutorService()
-
getId
public String getId()
- Specified by:
getId
in interfaceorg.apache.camel.spi.HasId
-
setId
public void setId(String id)
- Specified by:
setId
in interfaceorg.apache.camel.spi.IdAware
-
getRouteId
public String getRouteId()
- Specified by:
getRouteId
in interfaceorg.apache.camel.spi.RouteIdAware
-
setRouteId
public void setRouteId(String routeId)
- Specified by:
setRouteId
in interfaceorg.apache.camel.spi.RouteIdAware
-
getRejectedPolicy
public org.apache.camel.util.concurrent.ThreadPoolRejectedPolicy getRejectedPolicy()
-
doStart
protected void doStart() throws Exception
- Overrides:
doStart
in classorg.apache.camel.support.AsyncProcessorSupport
- Throws:
Exception
-
doStop
protected void doStop() throws Exception
- Overrides:
doStop
in classorg.apache.camel.support.AsyncProcessorSupport
- Throws:
Exception
-
-