Package org.apache.solr.search
Class CpuAllowedLimit
java.lang.Object
org.apache.solr.search.CpuAllowedLimit
- All Implemented Interfaces:
org.apache.lucene.index.QueryTimeout,QueryLimit
Enforces a CPU-time based timeout on a given SolrQueryRequest, as specified by the
cpuAllowed query parameter.
Since this class uses ThreadCpuTimer it is irrevocably lock-hostile and can never be
exposed to multiple threads, even if guarded by synchronization. Normally this is attached to
objects ultimately held by a ThreadLocal in SolrRequestInfo to provide safe usage on the
assumption that such objects are not shared to other threads.
- See Also:
-
Field Summary
Fields -
Constructor Summary
ConstructorsConstructorDescriptionCreate an object to represent a CPU time limit for the current request. -
Method Summary
Modifier and TypeMethodDescriptionA value representing the portion of the specified limit that has been consumed.booleanReturn true if usage has exceeded the limit.
-
Field Details
-
TIMING_CONTEXT
-
-
Constructor Details
-
CpuAllowedLimit
Create an object to represent a CPU time limit for the current request. NOTE: this implementation will attempt to obtain an existing thread CPU time monitor, created whenQueryLimits(SolrQueryRequest, SolrQueryResponse)is called.- Parameters:
req- solr request with acpuAllowedparameter
-
-
Method Details
-
shouldExit
public boolean shouldExit()Return true if usage has exceeded the limit.- Specified by:
shouldExitin interfaceorg.apache.lucene.index.QueryTimeout
-
currentValue
Description copied from interface:QueryLimitA value representing the portion of the specified limit that has been consumed. Reading this value should never affect the outcome (other than the time it takes to do it).- Specified by:
currentValuein interfaceQueryLimit- Returns:
- an expression of the amount of the limit used so far, numeric if possible, if non-numeric it should have toString() suitable for logging or similar expression to the user.
-