Package org.apache.camel.model
Class ThrottleDefinition
java.lang.Object
org.apache.camel.model.OptionalIdentifiedDefinition<ExpressionNode>
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.HasCamelContext
,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
disabled, inheritErrorHandler
-
Constructor Summary
ConstructorDescriptionThrottleDefinition
(org.apache.camel.Expression maximumRequestsPerPeriod) ThrottleDefinition
(org.apache.camel.Expression maximumRequestsPerPeriod, org.apache.camel.Expression correlationExpression) -
Method Summary
Modifier and TypeMethodDescriptionEnables asynchronous delay which means the thread will not block while delaying.asyncDelayed
(boolean asyncDelayed) Enables asynchronous delay which means the thread will not block while delaying.asyncDelayed
(String asyncDelayed) Enables asynchronous delay which means the thread will not block while delaying.callerRunsWhenRejected
(boolean callerRunsWhenRejected) Whether or not the caller should run the task when it was rejected by the thread pool.callerRunsWhenRejected
(String callerRunsWhenRejected) Whether or not the caller should run the task when it was rejected by the thread pool.correlationExpression
(long correlationExpression) To use a correlation expression that can throttle by the given key instead of overall throttlingcorrelationExpression
(org.apache.camel.Expression correlationExpression) To use a correlation expression that can throttle by the given key instead of overall throttlingprotected String
executorService
(String executorService) To use a custom thread pool (ScheduledExecutorService) by the throttler.executorService
(ExecutorService executorService) To use a custom thread pool (ScheduledExecutorService) by the throttler.Gets the executor service for executingGets a reference id to lookup the executor service from the registrygetLabel()
Returns a label to describe this node such as the expression if some kind of expression nodegetMode()
maximumRequests
(long maximumConcurrentRequests) Sets the maximum number of requestsmaximumRequests
(String maximumConcurrentRequests) Sets the maximum number of requestsmaximumRequestsPerPeriod
(long maximumRequestsPerPeriod) Deprecated.maximumRequestsPerPeriod
(String maximumRequestsPerPeriod) Deprecated.Sets the throttling mode to one of the available modes enumerated in ThrottlingModerejectExecution
(boolean rejectExecution) Whether or not throttler throws the ThrottlerRejectedExecutionException when the exchange exceeds the request limitrejectExecution
(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
Sets the throttling mode to one of the available modes enumerated in ThrottlingModevoid
setRejectExecution
(String rejectExecution) void
setTimePeriodMillis
(String timePeriodMillis) timePeriodMillis
(long timePeriodMillis) Sets the time period during which the maximum request count is valid fortimePeriodMillis
(String timePeriodMillis) Sets the time period during which the maximum request count is valid fortoString()
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, convertHeaderTo, convertHeaderTo, convertHeaderTo, convertHeaderTo, convertVariableTo, convertVariableTo, convertVariableTo, convertVariableTo, delay, delay, delay, disabled, disabled, disabled, 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, getDisabled, getIndex, getInterceptStrategies, getParent, getRouteConfiguration, idempotentConsumer, idempotentConsumer, idempotentConsumer, inheritErrorHandler, 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, nodePrefixId, onCompletion, onException, onException, onException, onException, pausable, pausable, pausable, pausable, 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, removeVariable, resequence, resequence, resumable, resumable, resumable, rollback, rollback, routeDescription, routeGroup, routeId, routingSlip, routingSlip, routingSlip, saga, sample, sample, sample, sample, script, script, serviceCall, serviceCall, serviceCall, setBody, setBody, setBody, setDisabled, setExchangePattern, setExchangePattern, setHeader, setHeader, setHeader, setHeaders, setInheritErrorHandler, setParent, setProperty, setProperty, setProperty, setRouteConfiguration, setVariable, setVariable, setVariable, 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, toD, toD, toD, toD, toD, toD, toD, toD, toD, toF, toV, transacted, transacted, transform, transform, transform, transform, unmarshal, unmarshal, unmarshal, unmarshal, unmarshal, unmarshal, unmarshal, validate, validate, validate, wireTap, wireTap, wireTap, wireTap, wireTap
Methods inherited from class org.apache.camel.model.OptionalIdentifiedDefinition
description, getCamelContext, getCustomId, getDescription, getDescriptionText, getId, getLineNumber, getLocation, getNodePrefixId, hasCustomIdAssigned, idOrCreate, setCamelContext, setCustomId, setDescription, setGeneratedId, setId, setLineNumber, setLocation
-
Constructor Details
-
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 Details
-
totalRequestsMode
-
concurrentRequestsMode
-
toString
-
description
-
getShortName
- Specified by:
getShortName
in interfaceorg.apache.camel.NamedNode
-
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
Sets the time period during which the maximum request count is valid for- Parameters:
timePeriodMillis
- period in millis- Returns:
- the builder
-
timePeriodMillis
Sets the time period during which the maximum request count is valid for- Parameters:
timePeriodMillis
- period in millis- Returns:
- the builder
-
maximumRequests
Sets the maximum number of requests- Parameters:
maximumConcurrentRequests
- the maximum number of requests (according to the mode in use - either concurrent or by time period)- Returns:
- the builder
-
maximumRequests
Sets the maximum number of requests- Parameters:
maximumConcurrentRequests
- the maximum number of requests (according to the mode in use - either concurrent or by time period)- Returns:
- the builder
-
maximumRequestsPerPeriod
@Deprecated(since="4.4.0") public ThrottleDefinition maximumRequestsPerPeriod(long maximumRequestsPerPeriod) Deprecated.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
@Deprecated(since="4.4.0") public ThrottleDefinition maximumRequestsPerPeriod(String maximumRequestsPerPeriod) Deprecated.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
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
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
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
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
Enables asynchronous delay which means the thread will not block while delaying.- Returns:
- the builder
-
asyncDelayed
Enables asynchronous delay which means the thread will not block while delaying.- Returns:
- the builder
-
asyncDelayed
Enables asynchronous delay which means the thread will not block while delaying.- Returns:
- the builder
-
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
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
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
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
-
mode
Sets the throttling mode to one of the available modes enumerated in ThrottlingMode- Parameters:
mode
- The throttling mode as a string parameter. It currently accepts one of 'TotalRequests' or `ConcurrentRequests`- Returns:
- the builder
- See Also:
-
getExecutorServiceBean
Description copied from interface:ExecutorServiceAwareDefinition
Gets the executor service for executing- Specified by:
getExecutorServiceBean
in interfaceExecutorServiceAwareDefinition<ThrottleDefinition>
-
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
Expression to configure the maximum number of messages to throttle per request- Overrides:
setExpression
in classExpressionNode
-
getTimePeriodMillis
-
setTimePeriodMillis
-
getAsyncDelayed
-
setAsyncDelayed
-
getCallerRunsWhenRejected
-
setCallerRunsWhenRejected
-
getRejectExecution
-
setRejectExecution
-
setCorrelationExpression
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
-
getExecutorService
-
setExecutorService
-
getMode
-
setMode
Sets the throttling mode to one of the available modes enumerated in ThrottlingMode- Parameters:
mode
- The throttling mode as a string parameter. It currently accepts one of 'TotalRequests' or `ConcurrentRequests`- See Also:
-
maximumRequests(long)