public class SedaConsumer extends ServiceSupport implements Consumer, Runnable, ShutdownAware, Suspendable
In this implementation there is a little slack period when you suspend/stop the consumer, by which the consumer may pickup a newly arrived messages and process it. That period is up till 1 second.
shutdown, shuttingdown, started, starting, stopped, stopping, suspended, suspending
Constructor and Description |
---|
SedaConsumer(SedaEndpoint endpoint,
Processor processor) |
Modifier and Type | Method and Description |
---|---|
boolean |
deferShutdown(ShutdownRunningTask shutdownRunningTask)
To defer shutdown during first phase of shutdown.
|
protected void |
doResume()
Implementations override this method to support customized suspend/resume.
|
protected void |
doRun() |
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.
|
protected void |
doSuspend()
Implementations override this method to support customized suspend/resume.
|
Endpoint |
getEndpoint()
Gets the endpoint associated with an object.
|
ExceptionHandler |
getExceptionHandler() |
int |
getPendingExchangesSize()
Gets the number of pending exchanges.
|
Processor |
getProcessor() |
boolean |
isRunAllowed()
Helper methods so the service knows if it should keep running.
|
protected Exchange |
prepareExchange(Exchange exchange)
Strategy to prepare exchange for being processed by this consumer
|
void |
prepareShutdown(boolean suspendOnly,
boolean forced)
Prepares for stop/shutdown.
|
void |
run() |
protected void |
sendToConsumers(Exchange exchange)
Send the given
Exchange to the consumer(s). |
void |
setExceptionHandler(ExceptionHandler exceptionHandler) |
String |
toString() |
getStatus, getVersion, isStarted, isStarting, isStopped, isStopping, isStoppingOrStopped, isSuspended, isSuspending, isSuspendingOrSuspended, resume, shutdown, start, stop, suspend
public SedaConsumer(SedaEndpoint endpoint, Processor processor)
public Endpoint getEndpoint()
EndpointAware
Producer
or for consuming from for components like Consumer
or Route
getEndpoint
in interface EndpointAware
public ExceptionHandler getExceptionHandler()
public void setExceptionHandler(ExceptionHandler exceptionHandler)
public Processor getProcessor()
public boolean deferShutdown(ShutdownRunningTask shutdownRunningTask)
ShutdownAware
This is needed by SedaConsumer
.
deferShutdown
in interface ShutdownAware
shutdownRunningTask
- the configured option for how to act when shutting down running tasks.public int getPendingExchangesSize()
ShutdownAware
Some consumers has internal queues with Exchange
which are pending.
For example the SedaConsumer
.
Return zero to indicate no pending exchanges and therefore ready to shutdown.
getPendingExchangesSize
in interface ShutdownAware
public void prepareShutdown(boolean suspendOnly, boolean forced)
ShutdownPrepared
The ShutdownStrategy
supports preparing for shutdown using two steps.
First a regular preparation, where the given forced parameter will be false.
And if the shutdown times out, then the ShutdownStrategy
performs a more aggressive
shutdown, calling this method a second time with true for the given forced parameter.
For example by graceful stopping any threads or the likes.
In addition a service can also be suspended (not stopped), and when this happens the parameter suspendOnly has the value true. This can be used to prepare the service for suspension, such as marking a worker thread to skip action.
For forced shutdown, then the service is expected to aggressively shutdown any child services, such as thread pools etc. This is the last chance it has to perform such duties.
prepareShutdown
in interface ShutdownPrepared
suspendOnly
- true if the intention is to only suspend the service, and not stop/shutdown the service.forced
- true is forcing a more aggressive shutdown, false is for preparing to shutdown.public boolean isRunAllowed()
StatefulService
isRunAllowed
in interface StatefulService
isRunAllowed
in class ServiceSupport
protected void doRun()
protected Exchange prepareExchange(Exchange exchange)
exchange
- the exchangeprotected void sendToConsumers(Exchange exchange) throws Exception
Exchange
to the consumer(s).
If multiple consumers then they will each receive a copy of the Exchange. A multicast processor will send the exchange in parallel to the multiple consumers.
If there is only a single consumer then its dispatched directly to it using same thread.
exchange
- the exchangeException
- can be thrown if processing of the exchange failedprotected void doStart() throws Exception
ServiceSupport
Important: See ServiceSupport.doStop()
for more details.
doStart
in class ServiceSupport
Exception
ServiceSupport.doStop()
protected void doSuspend() throws Exception
ServiceSupport
doSuspend
in class ServiceSupport
Exception
protected void doResume() throws Exception
ServiceSupport
doResume
in class ServiceSupport
Exception
protected void doStop() throws Exception
ServiceSupport
Important: Camel will invoke this ServiceSupport.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 ServiceSupport
Exception
ServiceSupport.doStart()
protected void doShutdown() throws Exception
ServiceSupport
doShutdown
in class ServiceSupport
Exception
Copyright © 2007–2016 The Apache Software Foundation. All rights reserved.