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.RouteIdAwareThreads processor that leverage a thread pool for continue processing theExchanges using the asynchronous routing engine. Notice: For transacted routes then thisThreadsProcessoris 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
RejectedExecutionExceptionexception, and marked to stop continue routing. TheUnitOfWorkwill be regarded as failed, due the exception. - Discard - The current exchange will be marked to stop continue routing (notice no exception is set).
The
UnitOfWorkwill 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
UnitOfWorkwill 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 voiddoShutdown()protected voiddoStart()protected voiddoStop()ExecutorServicegetExecutorService()StringgetId()org.apache.camel.util.concurrent.ThreadPoolRejectedPolicygetRejectedPolicy()StringgetRouteId()booleanprocess(org.apache.camel.Exchange exchange, org.apache.camel.AsyncCallback callback)voidsetId(String id)voidsetRouteId(String routeId)StringtoString()-
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:
processin interfaceorg.apache.camel.AsyncProcessor
-
getExecutorService
public ExecutorService getExecutorService()
-
getId
public String getId()
- Specified by:
getIdin interfaceorg.apache.camel.spi.HasId
-
setId
public void setId(String id)
- Specified by:
setIdin interfaceorg.apache.camel.spi.IdAware
-
getRouteId
public String getRouteId()
- Specified by:
getRouteIdin interfaceorg.apache.camel.spi.RouteIdAware
-
setRouteId
public void setRouteId(String routeId)
- Specified by:
setRouteIdin interfaceorg.apache.camel.spi.RouteIdAware
-
getRejectedPolicy
public org.apache.camel.util.concurrent.ThreadPoolRejectedPolicy getRejectedPolicy()
-
doStart
protected void doStart() throws Exception- Overrides:
doStartin classorg.apache.camel.support.AsyncProcessorSupport- Throws:
Exception
-
doStop
protected void doStop() throws Exception- Overrides:
doStopin classorg.apache.camel.support.AsyncProcessorSupport- Throws:
Exception
-
-