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 (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:
-
Field Summary
Fields inherited from class org.springframework.util.ConcurrencyThrottleSupport
logger, NO_CONCURRENCY, UNBOUNDED_CONCURRENCY
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptioninvoke
(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
-
Constructor Details
-
ConcurrencyThrottleInterceptor
public ConcurrencyThrottleInterceptor()
-
-
Method Details
-
invoke
Description copied from interface:MethodInterceptor
Implement this method to perform extra treatments before and after the invocation. Polite implementations would certainly like to invokeJoinpoint.proceed()
.- Specified by:
invoke
in interfaceMethodInterceptor
- 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
-