Class ThrottleDefinition

    • 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 interface org.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 interface org.apache.camel.NamedNode
        Overrides:
        getLabel in class ExpressionNode
      • 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
      • 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)
      • getExecutorService

        public ExecutorService getExecutorService()
        Specified by:
        getExecutorService in interface org.apache.camel.ExecutorServiceAware
      • setExecutorService

        public void setExecutorService​(ExecutorService executorService)
        Specified by:
        setExecutorService in interface org.apache.camel.ExecutorServiceAware
      • getExecutorServiceRef

        public String getExecutorServiceRef()
        Specified by:
        getExecutorServiceRef in interface org.apache.camel.ExecutorServiceAware
      • setExecutorServiceRef

        public void setExecutorServiceRef​(String executorServiceRef)
        Specified by:
        setExecutorServiceRef in interface org.apache.camel.ExecutorServiceAware
      • 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.