Package org.apache.camel.model
Class ThrottleDefinition
- java.lang.Object
-
- org.apache.camel.model.OptionalIdentifiedDefinition<Type>
-
- org.apache.camel.model.ProcessorDefinition<ExpressionNode>
-
- org.apache.camel.model.ExpressionNode
-
- org.apache.camel.model.ThrottleDefinition
-
- All Implemented Interfaces:
org.apache.camel.CamelContextAware
,org.apache.camel.LineNumberAware
,Block
,ExecutorServiceAwareDefinition<ThrottleDefinition>
,HasExpressionType
,org.apache.camel.NamedNode
,org.apache.camel.spi.HasId
,org.apache.camel.spi.IdAware
@Metadata(label="eip,routing") public class ThrottleDefinition extends ExpressionNode implements ExecutorServiceAwareDefinition<ThrottleDefinition>
Controls the rate at which messages are passed to the next node in the route
-
-
Field Summary
-
Fields inherited from class org.apache.camel.model.ProcessorDefinition
inheritErrorHandler
-
-
Constructor Summary
Constructors Constructor Description ThrottleDefinition()
ThrottleDefinition(org.apache.camel.Expression maximumRequestsPerPeriod)
ThrottleDefinition(org.apache.camel.Expression maximumRequestsPerPeriod, org.apache.camel.Expression correlationExpression)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description ThrottleDefinition
asyncDelayed()
Enables asynchronous delay which means the thread will not block while delaying.ThrottleDefinition
asyncDelayed(boolean asyncDelayed)
Enables asynchronous delay which means the thread will not block while delaying.ThrottleDefinition
asyncDelayed(String asyncDelayed)
Enables asynchronous delay which means the thread will not block while delaying.ThrottleDefinition
callerRunsWhenRejected(boolean callerRunsWhenRejected)
Whether or not the caller should run the task when it was rejected by the thread pool.ThrottleDefinition
callerRunsWhenRejected(String callerRunsWhenRejected)
Whether or not the caller should run the task when it was rejected by the thread pool.ThrottleDefinition
correlationExpression(long correlationExpression)
To use a correlation expression that can throttle by the given key instead of overall throttlingThrottleDefinition
correlationExpression(org.apache.camel.Expression correlationExpression)
To use a correlation expression that can throttle by the given key instead of overall throttlingprotected String
description()
ThrottleDefinition
executorService(String executorService)
To use a custom thread pool (ScheduledExecutorService) by the throttler.ThrottleDefinition
executorService(ExecutorService executorService)
To use a custom thread pool (ScheduledExecutorService) by the throttler.String
getAsyncDelayed()
String
getCallerRunsWhenRejected()
ExpressionSubElementDefinition
getCorrelationExpression()
String
getExecutorService()
ExecutorService
getExecutorServiceBean()
Gets the executor service for executingString
getExecutorServiceRef()
Gets a reference id to lookup the executor service from the registryString
getLabel()
Returns a label to describe this node such as the expression if some kind of expression nodeString
getRejectExecution()
String
getShortName()
String
getTimePeriodMillis()
ThrottleDefinition
maximumRequestsPerPeriod(long maximumRequestsPerPeriod)
Sets the time period during which the maximum request count per periodThrottleDefinition
maximumRequestsPerPeriod(String maximumRequestsPerPeriod)
Sets the time period during which the maximum request count per periodThrottleDefinition
rejectExecution(boolean rejectExecution)
Whether or not throttler throws the ThrottlerRejectedExecutionException when the exchange exceeds the request limitThrottleDefinition
rejectExecution(String rejectExecution)
Whether or not throttler throws the ThrottlerRejectedExecutionException when the exchange exceeds the request limitvoid
setAsyncDelayed(String asyncDelayed)
void
setCallerRunsWhenRejected(String callerRunsWhenRejected)
void
setCorrelationExpression(ExpressionSubElementDefinition correlationExpression)
The expression used to calculate the correlation key to use for throttle grouping.void
setExecutorService(String executorService)
void
setExpression(ExpressionDefinition expression)
Expression to configure the maximum number of messages to throttle per requestvoid
setRejectExecution(String rejectExecution)
void
setTimePeriodMillis(String timePeriodMillis)
ThrottleDefinition
timePeriodMillis(long timePeriodMillis)
Sets the time period during which the maximum request count is valid forThrottleDefinition
timePeriodMillis(String timePeriodMillis)
Sets the time period during which the maximum request count is valid forString
toString()
-
Methods inherited from class org.apache.camel.model.ExpressionNode
configureChild, getExpression, getExpressionType, getOutputs, id, preCreateProcessor, setExpression, setExpressionType
-
Methods inherited from class org.apache.camel.model.ProcessorDefinition
addInterceptStrategy, addOutput, aggregate, aggregate, aggregate, aggregate, bean, bean, bean, bean, bean, bean, bean, bean, bean, bean, bean, choice, circuitBreaker, claimCheck, claimCheck, claimCheck, claimCheck, clearOutput, convertBodyTo, convertBodyTo, convertBodyTo, delay, delay, delay, doTry, dynamicRouter, dynamicRouter, end, endChoice, endCircuitBreaker, endDoCatch, endDoTry, endParent, enrich, enrich, enrich, enrich, enrich, enrich, enrich, enrich, enrich, enrichWith, enrichWith, enrichWith, enrichWith, enrichWith, enrichWith, filter, filter, filter, filter, getIndex, getInterceptStrategies, getParent, getRouteConfiguration, idempotentConsumer, idempotentConsumer, idempotentConsumer, inheritErrorHandler, inOnly, inOnly, inOnly, inOnly, inOnly, inOut, inOut, inOut, inOut, inOut, isAbstract, isInheritErrorHandler, isTopLevelOnly, isWrappingEntireOutput, kamelet, loadBalance, loadBalance, log, log, log, log, log, log, loop, loop, loop, loopDoWhile, loopDoWhile, markRollbackOnly, markRollbackOnlyLast, marshal, marshal, marshal, marshal, multicast, multicast, multicast, onCompletion, onException, onException, pausable, pausable, pausable, pausable, pipeline, pipeline, pipeline, pipeline, policy, policy, pollEnrich, pollEnrich, pollEnrich, pollEnrich, pollEnrich, pollEnrich, pollEnrich, pollEnrich, pollEnrich, pollEnrich, pollEnrich, pollEnrich, pollEnrich, pollEnrich, pollEnrich, pollEnrich, pollEnrich, pollEnrichWith, pollEnrichWith, pollEnrichWith, pollEnrichWith, pollEnrichWith, pollEnrichWith, process, process, process, recipientList, recipientList, recipientList, recipientList, removeHeader, removeHeaders, removeHeaders, removeProperties, removeProperties, removeProperty, resequence, resequence, resumable, resumable, resumable, rollback, rollback, routeDescription, routeGroup, routeId, routingSlip, routingSlip, routingSlip, saga, sample, sample, sample, sample, sample, script, script, serviceCall, serviceCall, serviceCall, setBody, setBody, setBody, setExchangePattern, setExchangePattern, setHeader, setHeader, setHeader, setInheritErrorHandler, setParent, setProperty, setProperty, setProperty, setRouteConfiguration, sort, sort, sort, split, split, split, split, startupOrder, step, step, stop, threads, threads, threads, threads, throttle, throttle, throttle, throttle, throttle, throwException, throwException, to, to, to, to, to, to, to, to, to, to, to, to, to, to, toD, toD, toD, toD, toD, toD, toD, toF, transacted, transacted, transform, transform, unmarshal, unmarshal, unmarshal, unmarshal, unmarshal, unmarshal, unmarshal, validate, validate, validate, wireTap, wireTap, wireTap
-
Methods inherited from class org.apache.camel.model.OptionalIdentifiedDefinition
description, description, getCamelContext, getCustomId, getDescription, getDescriptionText, getId, getLineNumber, getLocation, hasCustomIdAssigned, idOrCreate, setCamelContext, setCustomId, setDescription, setGeneratedId, setId, setLineNumber, setLocation
-
-
-
-
Constructor Detail
-
ThrottleDefinition
public ThrottleDefinition()
-
ThrottleDefinition
public ThrottleDefinition(org.apache.camel.Expression maximumRequestsPerPeriod)
-
ThrottleDefinition
public ThrottleDefinition(org.apache.camel.Expression maximumRequestsPerPeriod, org.apache.camel.Expression correlationExpression)
-
-
Method Detail
-
description
protected String description()
-
getShortName
public String getShortName()
- Specified by:
getShortName
in interfaceorg.apache.camel.NamedNode
-
getLabel
public String getLabel()
Description copied from class:ProcessorDefinition
Returns a label to describe this node such as the expression if some kind of expression node- Specified by:
getLabel
in interfaceorg.apache.camel.NamedNode
- Overrides:
getLabel
in classExpressionNode
-
timePeriodMillis
public ThrottleDefinition timePeriodMillis(long timePeriodMillis)
Sets the time period during which the maximum request count is valid for- Parameters:
timePeriodMillis
- period in millis- Returns:
- the builder
-
timePeriodMillis
public ThrottleDefinition timePeriodMillis(String timePeriodMillis)
Sets the time period during which the maximum request count is valid for- Parameters:
timePeriodMillis
- period in millis- Returns:
- the builder
-
maximumRequestsPerPeriod
public ThrottleDefinition maximumRequestsPerPeriod(long maximumRequestsPerPeriod)
Sets the time period during which the maximum request count per period- Parameters:
maximumRequestsPerPeriod
- the maximum request count number per time period- Returns:
- the builder
-
maximumRequestsPerPeriod
public ThrottleDefinition maximumRequestsPerPeriod(String maximumRequestsPerPeriod)
Sets the time period during which the maximum request count per period- Parameters:
maximumRequestsPerPeriod
- the maximum request count number per time period- Returns:
- the builder
-
correlationExpression
public ThrottleDefinition correlationExpression(long correlationExpression)
To use a correlation expression that can throttle by the given key instead of overall throttling- Parameters:
correlationExpression
- is a correlation key as a long number that can throttle by the given key instead of overall throttling- Returns:
- the builder
-
correlationExpression
public ThrottleDefinition correlationExpression(org.apache.camel.Expression correlationExpression)
To use a correlation expression that can throttle by the given key instead of overall throttling- Parameters:
correlationExpression
- is a correlation key as an expression that can throttle by the given key instead of overall throttling- Returns:
- the builder
-
callerRunsWhenRejected
public ThrottleDefinition callerRunsWhenRejected(boolean callerRunsWhenRejected)
Whether or not the caller should run the task when it was rejected by the thread pool. Is by default true- Parameters:
callerRunsWhenRejected
- whether or not the caller should run- Returns:
- the builder
-
callerRunsWhenRejected
public ThrottleDefinition callerRunsWhenRejected(String callerRunsWhenRejected)
Whether or not the caller should run the task when it was rejected by the thread pool. Is by default true- Parameters:
callerRunsWhenRejected
- whether or not the caller should run- Returns:
- the builder
-
asyncDelayed
public ThrottleDefinition asyncDelayed()
Enables asynchronous delay which means the thread will not block while delaying.- Returns:
- the builder
-
asyncDelayed
public ThrottleDefinition asyncDelayed(boolean asyncDelayed)
Enables asynchronous delay which means the thread will not block while delaying.- Returns:
- the builder
-
asyncDelayed
public ThrottleDefinition asyncDelayed(String asyncDelayed)
Enables asynchronous delay which means the thread will not block while delaying.- Returns:
- the builder
-
rejectExecution
public ThrottleDefinition rejectExecution(boolean rejectExecution)
Whether or not throttler throws the ThrottlerRejectedExecutionException when the exchange exceeds the request limit Is by default false- Parameters:
rejectExecution
- throw the RejectExecutionException if the exchange exceeds the request limit- Returns:
- the builder
-
rejectExecution
public ThrottleDefinition rejectExecution(String rejectExecution)
Whether or not throttler throws the ThrottlerRejectedExecutionException when the exchange exceeds the request limit Is by default false- Parameters:
rejectExecution
- throw the RejectExecutionException if the exchange exceeds the request limit- Returns:
- the builder
-
executorService
public ThrottleDefinition executorService(ExecutorService executorService)
To use a custom thread pool (ScheduledExecutorService) by the throttler.- Specified by:
executorService
in interfaceExecutorServiceAwareDefinition<ThrottleDefinition>
- Parameters:
executorService
- the custom thread pool (must be scheduled)- Returns:
- the builder
-
executorService
public ThrottleDefinition executorService(String executorService)
To use a custom thread pool (ScheduledExecutorService) by the throttler.- Specified by:
executorService
in interfaceExecutorServiceAwareDefinition<ThrottleDefinition>
- Parameters:
executorService
- the reference id of the thread pool (must be scheduled)- Returns:
- the builder
-
getExecutorServiceBean
public ExecutorService getExecutorServiceBean()
Description copied from interface:ExecutorServiceAwareDefinition
Gets the executor service for executing- Specified by:
getExecutorServiceBean
in interfaceExecutorServiceAwareDefinition<ThrottleDefinition>
-
getExecutorServiceRef
public String getExecutorServiceRef()
Description copied from interface:ExecutorServiceAwareDefinition
Gets a reference id to lookup the executor service from the registry- Specified by:
getExecutorServiceRef
in interfaceExecutorServiceAwareDefinition<ThrottleDefinition>
-
setExpression
public void setExpression(ExpressionDefinition expression)
Expression to configure the maximum number of messages to throttle per request- Overrides:
setExpression
in classExpressionNode
-
getTimePeriodMillis
public String getTimePeriodMillis()
-
setTimePeriodMillis
public void setTimePeriodMillis(String timePeriodMillis)
-
getAsyncDelayed
public String getAsyncDelayed()
-
setAsyncDelayed
public void setAsyncDelayed(String asyncDelayed)
-
getCallerRunsWhenRejected
public String getCallerRunsWhenRejected()
-
setCallerRunsWhenRejected
public void setCallerRunsWhenRejected(String callerRunsWhenRejected)
-
getRejectExecution
public String getRejectExecution()
-
setRejectExecution
public void setRejectExecution(String rejectExecution)
-
setCorrelationExpression
public void setCorrelationExpression(ExpressionSubElementDefinition correlationExpression)
The expression used to calculate the correlation key to use for throttle grouping. The Exchange which has the same correlation key is throttled together.
-
getCorrelationExpression
public ExpressionSubElementDefinition getCorrelationExpression()
-
getExecutorService
public String getExecutorService()
-
setExecutorService
public void setExecutorService(String executorService)
-
-