public class DurationRoutePolicy extends RoutePolicySupport implements CamelContextAware
RoutePolicy
which executes for a duration and then triggers an action.
This can be used to stop the route after it has processed a number of messages, or has been running for N seconds.log
shutdown, shuttingdown, started, starting, stopped, stopping, suspended, suspending
Constructor and Description |
---|
DurationRoutePolicy() |
DurationRoutePolicy(CamelContext camelContext,
String routeId) |
Modifier and Type | Method and Description |
---|---|
protected void |
doStop()
Implementations override this method to support customized start/stop.
|
org.apache.camel.impl.DurationRoutePolicy.Action |
getAction() |
CamelContext |
getCamelContext()
Get the
CamelContext |
int |
getMaxMessages() |
int |
getMaxSeconds() |
void |
onExchangeDone(Route route,
Exchange exchange)
|
void |
onInit(Route route)
Callback invoked when the
Route is being initialized |
protected ScheduledFuture |
performMaxDurationAction() |
protected void |
performMaxMessagesAction() |
void |
setAction(org.apache.camel.impl.DurationRoutePolicy.Action action)
What action to perform when maximum is triggered.
|
void |
setCamelContext(CamelContext camelContext)
Injects the
CamelContext |
void |
setMaxMessages(int maxMessages)
Maximum number of messages to process before the action is triggered
|
void |
setMaxSeconds(int maxSeconds)
Maximum seconds Camel is running before the action is triggered
|
doStart, getExceptionHandler, handleException, onExchangeBegin, onRemove, onResume, onStart, onStop, onSuspend, resumeOrStartConsumer, resumeRoute, setExceptionHandler, startConsumer, startRoute, stopConsumer, stopRoute, stopRoute, stopRouteAsync, suspendOrStopConsumer, suspendRoute, suspendRoute
doResume, doShutdown, doSuspend, getStatus, getVersion, isRunAllowed, isStarted, isStarting, isStopped, isStopping, isStoppingOrStopped, isSuspended, isSuspending, isSuspendingOrSuspended, resume, shutdown, start, stop, suspend
public DurationRoutePolicy()
public DurationRoutePolicy(CamelContext camelContext, String routeId)
public CamelContext getCamelContext()
CamelContextAware
CamelContext
getCamelContext
in interface CamelContextAware
public void setCamelContext(CamelContext camelContext)
CamelContextAware
CamelContext
setCamelContext
in interface CamelContextAware
camelContext
- the Camel contextpublic int getMaxMessages()
public void setMaxMessages(int maxMessages)
public int getMaxSeconds()
public void setMaxSeconds(int maxSeconds)
public org.apache.camel.impl.DurationRoutePolicy.Action getAction()
public void setAction(org.apache.camel.impl.DurationRoutePolicy.Action action)
public void onInit(Route route)
RoutePolicy
Route
is being initializedonInit
in interface RoutePolicy
onInit
in class RoutePolicySupport
route
- the route being initializedpublic void onExchangeDone(Route route, Exchange exchange)
RoutePolicy
Exchange
is done being routed, where it started from the given Route
Notice this callback is invoked when the Exchange is done and the Route
is the route where
the Exchange
was started. Most often its also the route where the exchange is done. However its
possible to route an Exchange
to other routes using endpoints such as
direct or seda. Bottom line is that the Route
parameter may not be the endpoint
route and thus why we state its the starting route.onExchangeDone
in interface RoutePolicy
onExchangeDone
in class RoutePolicySupport
route
- the route where the exchange started fromexchange
- the created exchangeprotected void doStop() throws Exception
ServiceSupport
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 RoutePolicySupport
Exception
ServiceSupport.doStart()
protected void performMaxMessagesAction()
protected ScheduledFuture performMaxDurationAction()
Apache Camel