public class ThreadsProcessor extends ServiceSupport implements AsyncProcessor, IdAware
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.
RejectedExecutionException exception,
and marked to stop continue routing.
The UnitOfWork will be regarded as failed, due the exception.UnitOfWork will be regarded as successful, due no exception being set.UnitOfWork will be regarded as successful, due no exception being set.
And the current exchange will be added to the task queue.shuttingdown, started, starting, stopped, stopping, suspended, suspending| Constructor and Description |
|---|
ThreadsProcessor(CamelContext camelContext,
ExecutorService executorService,
boolean shutdownExecutorService,
ThreadPoolRejectedPolicy rejectedPolicy) |
| Modifier and Type | Method and Description |
|---|---|
protected void |
doShutdown()
Implementations override this method to perform customized shutdown.
|
protected void |
doStart()
Implementations override this method to support customized start/stop.
|
protected void |
doStop()
Implementations override this method to support customized start/stop.
|
ExecutorService |
getExecutorService() |
String |
getId()
Returns the id
|
ThreadPoolRejectedPolicy |
getRejectedPolicy() |
void |
process(Exchange exchange)
Processes the message exchange
|
boolean |
process(Exchange exchange,
AsyncCallback callback)
Processes the message exchange.
|
void |
setId(String id)
Sets the id
|
String |
toString() |
doResume, doSuspend, getStatus, getVersion, isRunAllowed, isStarted, isStarting, isStopped, isStopping, isStoppingOrStopped, isSuspended, isSuspending, isSuspendingOrSuspended, resume, shutdown, start, stop, suspendpublic ThreadsProcessor(CamelContext camelContext, ExecutorService executorService, boolean shutdownExecutorService, ThreadPoolRejectedPolicy rejectedPolicy)
public void process(Exchange exchange) throws Exception
Processorpublic boolean process(Exchange exchange, AsyncCallback callback)
AsyncProcessorProcessor.process(org.apache.camel.Exchange), but the caller supports having the exchange asynchronously processed.
If there was a failure processing then the caused Exception would be set on the Exchange.process in interface AsyncProcessorexchange - the message exchangecallback - the AsyncCallback will be invoked when the processing of the exchange is completed.
If the exchange is completed synchronously, then the callback is also invoked synchronously.
The callback should therefore be careful of starting recursive loop.public ExecutorService getExecutorService()
public ThreadPoolRejectedPolicy getRejectedPolicy()
protected void doStart() throws Exception
ServiceSupportServiceSupport.doStop() for more details.doStart in class ServiceSupportExceptionServiceSupport.doStop()protected void doStop() throws Exception
ServiceSupportServiceSupport.doStop() method when
the service is being stopped. This method will also be invoked
if the service is still in uninitialized state (eg has not
been started). The method is always called to allow the service
to do custom logic when the service is being stopped, such as when
CamelContext is shutting down.doStop in class ServiceSupportExceptionServiceSupport.doStart()protected void doShutdown() throws Exception
ServiceSupportdoShutdown in class ServiceSupportExceptionApache Camel