org.springframework.aop.interceptor
Class ConcurrencyThrottleInterceptor

java.lang.Object
  extended by org.springframework.util.ConcurrencyThrottleSupport
      extended by 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
ConcurrencyThrottleInterceptor()
           
 
Method Summary
 Object invoke(MethodInvocation methodInvocation)
           
 
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

public Object invoke(MethodInvocation methodInvocation)
              throws Throwable
Specified by:
invoke in interface MethodInterceptor
Throws:
Throwable