Package org.apache.camel.processor
Class SamplingThrottler
- java.lang.Object
-
- org.apache.camel.support.service.BaseService
-
- org.apache.camel.support.service.ServiceSupport
-
- org.apache.camel.support.AsyncProcessorSupport
-
- org.apache.camel.processor.SamplingThrottler
-
- All Implemented Interfaces:
AutoCloseable
,org.apache.camel.AsyncProcessor
,org.apache.camel.Processor
,org.apache.camel.Service
,org.apache.camel.ShutdownableService
,org.apache.camel.spi.HasId
,org.apache.camel.spi.IdAware
,org.apache.camel.spi.RouteIdAware
,org.apache.camel.StatefulService
,org.apache.camel.SuspendableService
,org.apache.camel.Traceable
public class SamplingThrottler extends org.apache.camel.support.AsyncProcessorSupport implements org.apache.camel.Traceable, org.apache.camel.spi.IdAware, org.apache.camel.spi.RouteIdAware
ASamplingThrottler
is a special kind of throttler. It also limits the number of exchanges sent to a downstream endpoint. It differs from a normal throttler in that it will not queue exchanges above the threshold for a given period. Instead these exchanges will be stopped, precluding them from being processed at all by downstream consumers. This kind of throttling can be useful for taking a sample from an exchange stream, rough consolidation of noisy and bursty exchange traffic or where queuing of throttled exchanges is undesirable.
-
-
Constructor Summary
Constructors Constructor Description SamplingThrottler(long messageFrequency)
SamplingThrottler(long samplePeriod, TimeUnit units)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description String
getId()
long
getMessageFrequency()
String
getRouteId()
long
getSamplePeriod()
String
getTraceLabel()
TimeUnit
getUnits()
boolean
process(org.apache.camel.Exchange exchange, org.apache.camel.AsyncCallback callback)
void
setId(String id)
void
setRouteId(String routeId)
String
toString()
-
Methods inherited from class org.apache.camel.support.AsyncProcessorSupport
doStart, doStop, process, processAsync
-
Methods inherited from class org.apache.camel.support.service.BaseService
build, doBuild, doFail, doInit, doLifecycleChange, doResume, doShutdown, doSuspend, fail, getStatus, init, isBuild, isInit, isNew, isRunAllowed, isShutdown, isStarted, isStarting, isStartingOrStarted, isStopped, isStopping, isStoppingOrStopped, isSuspended, isSuspending, isSuspendingOrSuspended, resume, shutdown, start, stop, suspend
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
-
-
-
Constructor Detail
-
SamplingThrottler
public SamplingThrottler(long messageFrequency)
-
SamplingThrottler
public SamplingThrottler(long samplePeriod, TimeUnit units)
-
-
Method Detail
-
getId
public String getId()
- Specified by:
getId
in interfaceorg.apache.camel.spi.HasId
-
setId
public void setId(String id)
- Specified by:
setId
in interfaceorg.apache.camel.spi.IdAware
-
getRouteId
public String getRouteId()
- Specified by:
getRouteId
in interfaceorg.apache.camel.spi.RouteIdAware
-
setRouteId
public void setRouteId(String routeId)
- Specified by:
setRouteId
in interfaceorg.apache.camel.spi.RouteIdAware
-
getTraceLabel
public String getTraceLabel()
- Specified by:
getTraceLabel
in interfaceorg.apache.camel.Traceable
-
getMessageFrequency
public long getMessageFrequency()
-
getSamplePeriod
public long getSamplePeriod()
-
getUnits
public TimeUnit getUnits()
-
process
public boolean process(org.apache.camel.Exchange exchange, org.apache.camel.AsyncCallback callback)
- Specified by:
process
in interfaceorg.apache.camel.AsyncProcessor
-
-