Package 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 org.springframework.util.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 (for example, 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
Description
`ConcurrencyThrottleInterceptor()`

## Method Summary

Modifier and Type
Method
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, onLimitReached, setConcurrencyLimit`

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

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

## Constructor Details

### ConcurrencyThrottleInterceptor

public ConcurrencyThrottleInterceptor()

## Method Details

### 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