org.apache.camel.impl
Class ThrottlingInflightRoutePolicy

java.lang.Object
  extended by org.apache.camel.impl.ServiceSupport
      extended by org.apache.camel.impl.RoutePolicySupport
          extended by org.apache.camel.impl.ThrottlingInflightRoutePolicy
All Implemented Interfaces:
Service, ShutdownableService, RoutePolicy

public class ThrottlingInflightRoutePolicy
extends RoutePolicySupport

A throttle based RoutePolicy which is capable of dynamic throttling a route based on number of current inflight exchanges.

Version:

Nested Class Summary
static class ThrottlingInflightRoutePolicy.ThrottlingScope
           
 
Field Summary
 
Fields inherited from class org.apache.camel.impl.RoutePolicySupport
log
 
Constructor Summary
ThrottlingInflightRoutePolicy()
           
 
Method Summary
protected  CamelLogger createLogger()
           
 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 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.
 String toString()
           
 
Methods inherited from class org.apache.camel.impl.RoutePolicySupport
doStart, doStop, getExceptionHandler, handleException, onExchangeBegin, onInit, setExceptionHandler, startConsumer, startRoute, stopConsumer, stopRoute, stopRoute
 
Methods inherited from class org.apache.camel.impl.ServiceSupport
addChildService, doResume, doShutdown, doSuspend, getStatus, getVersion, isRunAllowed, isStarted, isStarting, isStopped, isStopping, isSuspended, isSuspending, removeChildService, resume, shutdown, start, start, stop, suspend
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

ThrottlingInflightRoutePolicy

public ThrottlingInflightRoutePolicy()
Method Detail

toString

public String toString()
Overrides:
toString in class Object

onExchangeDone

public void onExchangeDone(Route route,
                           Exchange exchange)
Description copied from interface: RoutePolicy
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. 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.

Specified by:
onExchangeDone in interface RoutePolicy
Overrides:
onExchangeDone in class RoutePolicySupport
Parameters:
route - the route where the exchange started from
exchange - the created exchange

getMaxInflightExchanges

public int getMaxInflightExchanges()

setMaxInflightExchanges

public void setMaxInflightExchanges(int maxInflightExchanges)
Sets the upper limit of number of concurrent inflight exchanges at which point reached the throttler should suspend the route.

Is default 1000.

Parameters:
maxInflightExchanges - the upper limit of concurrent inflight exchanges

getResumePercentOfMax

public int getResumePercentOfMax()

setResumePercentOfMax

public void setResumePercentOfMax(int resumePercentOfMax)
Sets at which percentage of the max the throttler should start resuming the route.

Will by default use 70%.

Parameters:
resumePercentOfMax - the percentage must be between 0 and 100

getScope

public ThrottlingInflightRoutePolicy.ThrottlingScope getScope()

setScope

public void setScope(ThrottlingInflightRoutePolicy.ThrottlingScope scope)
Sets which scope the throttling should be based upon, either route or total scoped.

Parameters:
scope - the scope

getLoggingLevel

public LoggingLevel getLoggingLevel()

getLogger

public CamelLogger getLogger()

setLogger

public void setLogger(CamelLogger logger)
Sets the logger to use for logging throttling activity.

Parameters:
logger - the logger

setLoggingLevel

public void setLoggingLevel(LoggingLevel loggingLevel)
Sets the logging level to report the throttling activity.

Is default INFO level.

Parameters:
loggingLevel - the logging level

createLogger

protected CamelLogger createLogger()


Apache CAMEL