|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectorg.apache.camel.support.ServiceSupport
org.apache.camel.impl.RoutePolicySupport
org.apache.camel.impl.ThrottlingInflightRoutePolicy
public class ThrottlingInflightRoutePolicy
A throttle based RoutePolicy which is capable of dynamic
throttling a route based on number of current inflight exchanges.
ThrottlingInflightRoutePolicy.ThrottlingScope.Context and ThrottlingInflightRoutePolicy.ThrottlingScope.Route (is default).
If context scope is selected then this implementation will use a EventNotifier to listen
for events when Exchanges is done, and trigger the throttle(org.apache.camel.Route, org.apache.camel.Exchange)
method. If the route scope is selected then no EventNotifier is in use, as there is already
a Synchronization callback on the current Exchange which triggers the
throttle(org.apache.camel.Route, org.apache.camel.Exchange) when the current Exchange is done.
| Nested Class Summary | |
|---|---|
static class |
ThrottlingInflightRoutePolicy.ThrottlingScope
|
| Field Summary |
|---|
| Fields inherited from class org.apache.camel.impl.RoutePolicySupport |
|---|
log |
| Fields inherited from class org.apache.camel.support.ServiceSupport |
|---|
shutdown, shuttingdown, started, starting, stopped, stopping, suspended, suspending |
| Constructor Summary | |
|---|---|
ThrottlingInflightRoutePolicy()
|
|
| Method Summary | |
|---|---|
protected CamelLogger |
createLogger()
|
protected void |
doStart()
Implementations override this method to support customized start/stop. |
protected void |
doStop()
Implementations override this method to support customized start/stop. |
CamelContext |
getCamelContext()
Get the CamelContext |
CamelLogger |
getLogger()
|
LoggingLevel |
getLoggingLevel()
|
int |
getMaxInflightExchanges()
|
int |
getResumePercentOfMax()
|
ThrottlingInflightRoutePolicy.ThrottlingScope |
getScope()
|
void |
onExchangeDone(Route route,
Exchange exchange)
Callback invoked when an 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. |
void |
onInit(Route route)
Callback invoked when the Route is being initialized |
void |
setCamelContext(CamelContext camelContext)
Injects the CamelContext |
void |
setLogger(CamelLogger logger)
Sets the logger to use for logging throttling activity. |
void |
setLoggingLevel(LoggingLevel loggingLevel)
Sets the logging level to report the throttling activity. |
void |
setMaxInflightExchanges(int maxInflightExchanges)
Sets the upper limit of number of concurrent inflight exchanges at which point reached the throttler should suspend the route. |
void |
setResumePercentOfMax(int resumePercentOfMax)
Sets at which percentage of the max the throttler should start resuming the route. |
void |
setScope(ThrottlingInflightRoutePolicy.ThrottlingScope scope)
Sets which scope the throttling should be based upon, either route or total scoped. |
protected void |
throttle(Route route,
Exchange exchange)
Throttles the route when Exchanges is done. |
String |
toString()
|
| Methods inherited from class org.apache.camel.impl.RoutePolicySupport |
|---|
getExceptionHandler, handleException, onExchangeBegin, onRemove, onResume, onStart, onStop, onSuspend, resumeRoute, setExceptionHandler, startConsumer, startRoute, stopConsumer, stopRoute, stopRoute, suspendRoute, suspendRoute |
| Methods inherited from class org.apache.camel.support.ServiceSupport |
|---|
doResume, doShutdown, doSuspend, getStatus, getVersion, isRunAllowed, isStarted, isStarting, isStopped, isStopping, isStoppingOrStopped, isSuspended, isSuspending, resume, shutdown, start, stop, suspend |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
| Constructor Detail |
|---|
public ThrottlingInflightRoutePolicy()
| Method Detail |
|---|
public String toString()
toString in class Objectpublic CamelContext getCamelContext()
CamelContextAwareCamelContext
getCamelContext in interface CamelContextAwarepublic void setCamelContext(CamelContext camelContext)
CamelContextAwareCamelContext
setCamelContext in interface CamelContextAwarecamelContext - the Camel contextpublic void onInit(Route route)
RoutePolicyRoute is being initialized
onInit in interface RoutePolicyonInit in class RoutePolicySupportroute - the route being initialized
public void onExchangeDone(Route route,
Exchange exchange)
RoutePolicyExchange 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 RoutePolicyonExchangeDone in class RoutePolicySupportroute - the route where the exchange started fromexchange - the created exchange
protected void throttle(Route route,
Exchange exchange)
Exchanges is done.
route - the routeexchange - the exchangepublic int getMaxInflightExchanges()
public void setMaxInflightExchanges(int maxInflightExchanges)
maxInflightExchanges - the upper limit of concurrent inflight exchangespublic int getResumePercentOfMax()
public void setResumePercentOfMax(int resumePercentOfMax)
resumePercentOfMax - the percentage must be between 0 and 100public ThrottlingInflightRoutePolicy.ThrottlingScope getScope()
public void setScope(ThrottlingInflightRoutePolicy.ThrottlingScope scope)
scope - the scopepublic LoggingLevel getLoggingLevel()
public CamelLogger getLogger()
public void setLogger(CamelLogger logger)
logger - the loggerpublic void setLoggingLevel(LoggingLevel loggingLevel)
loggingLevel - the logging levelprotected CamelLogger createLogger()
protected void doStart()
throws Exception
ServiceSupportServiceSupport.doStop() for more details.
doStart in class RoutePolicySupportExceptionServiceSupport.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 RoutePolicySupportExceptionServiceSupport.doStart()
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||