org.springframework.aop.interceptor

## Class ConcurrencyThrottleInterceptor

- java.lang.Object
- - org.springframework.util.ConcurrencyThrottleSupport
  - - org.springframework.aop.interceptor.ConcurrencyThrottleInterceptor

- All Implemented Interfaces:
    Serializable, Advice, Interceptor, MethodInterceptor

      public class ConcurrencyThrottleInterceptor
      extends ConcurrencyThrottleSupport
      implements MethodInterceptor, Serializable

  Interceptor that throttles concurrent access, blocking invocations if a specified concurrency limit is reached.

  Can be applied to methods of local services that involve heavy use of system resources, in a scenario where it is more efficient to throttle concurrency for a specific service rather than restricting the entire thread pool (e.g. the web container's thread pool).

  The default concurrency limit of this interceptor is 1. Specify the "concurrencyLimit" bean property to change this value.

  Since:
    11.02.2004
  Author:
    Juergen Hoeller
  See Also:
    `ConcurrencyThrottleSupport.setConcurrencyLimit(int)`, Serialized Form

- - ### Field Summary

    - ### Fields inherited from class org.springframework.util.ConcurrencyThrottleSupport

      `logger, NO_CONCURRENCY, UNBOUNDED_CONCURRENCY`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `ConcurrencyThrottleInterceptor()`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `Object` | `invoke(MethodInvocation methodInvocation)` Implement this method to perform extra treatments before and after the invocation.

    - ### Methods inherited from class org.springframework.util.ConcurrencyThrottleSupport

      `afterAccess, beforeAccess, getConcurrencyLimit, isThrottleActive, setConcurrencyLimit`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### ConcurrencyThrottleInterceptor

          public ConcurrencyThrottleInterceptor()

  - ### Method Detail

    - #### invoke

          @Nullable
          public Object invoke(MethodInvocation methodInvocation)
                                  throws Throwable

      Description copied from interface: `MethodInterceptor`
      Implement this method to perform extra treatments before and after the invocation. Polite implementations would certainly like to invoke `Joinpoint.proceed()`.
      Specified by:
        `invoke` in interface `MethodInterceptor`
      Parameters:
        `methodInvocation` - the method invocation joinpoint
      Returns:
        the result of the call to `Joinpoint.proceed()`; might be intercepted by the interceptor
      Throws:
        `Throwable` - if the interceptors or the target object throws an exception