java.lang.Object | |
↳ | org.springframework.util.ConcurrencyThrottleSupport |
Known Direct Subclasses |
Support class for throttling concurrent access to a specific resource.
Designed for use as a base class, with the subclass invoking
the beforeAccess()
and afterAccess()
methods at
appropriate points of its workflow. Note that afterAccess
should usually be called in a finally block!
The default concurrency limit of this support class is -1 ("unbounded concurrency"). Subclasses may override this default; check the javadoc of the concrete class that you're using.
Constants | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
int | NO_CONCURRENCY | Switch concurrency 'off': that is, don't allow any concurrent invocations. | |||||||||
int | UNBOUNDED_CONCURRENCY | Permit any number of concurrent invocations: that is, don't throttle concurrency. |
Fields | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
logger | Transient to optimize serialization |
Public Constructors | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Public Methods | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Return the maximum number of concurrent access attempts allowed.
| |||||||||||
Return whether this throttle is currently active.
| |||||||||||
Set the maximum number of concurrent access attempts allowed.
|
Protected Methods | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
To be invoked after the main execution logic of concrete subclasses.
| |||||||||||
To be invoked before the main execution logic of concrete subclasses.
|
[Expand]
Inherited Methods | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
From class
java.lang.Object
|
Switch concurrency 'off': that is, don't allow any concurrent invocations.
Permit any number of concurrent invocations: that is, don't throttle concurrency.
Return the maximum number of concurrent access attempts allowed.
Return whether this throttle is currently active.
true
if the concurrency limit for this instance is activeSet the maximum number of concurrent access attempts allowed. -1 indicates unbounded concurrency.
In principle, this limit can be changed at runtime, although it is generally designed as a config time setting.
NOTE: Do not switch between -1 and any concrete limit at runtime, as this will lead to inconsistent concurrency counts: A limit of -1 effectively turns off concurrency counting completely.
To be invoked after the main execution logic of concrete subclasses.
To be invoked before the main execution logic of concrete subclasses.
This implementation applies the concurrency throttle.