类 TimeoutDeferredResultProcessingInterceptor
- java.lang.Object
- org.springframework.web.context.request.async.TimeoutDeferredResultProcessingInterceptor
- 所有已实现的接口:
DeferredResultProcessingInterceptor
public class TimeoutDeferredResultProcessingInterceptor extends Object implements DeferredResultProcessingInterceptor
Sends a 503 (SERVICE_UNAVAILABLE) in case of a timeout if the response is not already committed. As of 4.2.8 this is done indirectly by returningAsyncRequestTimeoutExceptionas the result of processing which is then handled by Spring MVC's default exception handling as a 503 error.Registered at the end, after all other interceptors and therefore invoked only if no other interceptor handles the timeout.
Note that according to RFC 7231, a 503 without a 'Retry-After' header is interpreted as a 500 error and the client should not retry. Applications can install their own interceptor to handle a timeout and add a 'Retry-After' header if necessary.
- 从以下版本开始:
- 3.2
- 作者:
- Rossen Stoyanchev
构造器概要
构造器 构造器 说明 TimeoutDeferredResultProcessingInterceptor()
方法概要
所有方法 实例方法 具体方法 修饰符和类型 方法 说明 <T> booleanhandleTimeout(NativeWebRequest request, DeferredResult<T> result)Invoked from a container thread when an async request times out before theDeferredResulthas been set.从类继承的方法 java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
从接口继承的方法 org.springframework.web.context.request.async.DeferredResultProcessingInterceptor
afterCompletion, beforeConcurrentHandling, handleError, postProcess, preProcess
构造器详细资料
TimeoutDeferredResultProcessingInterceptor
public TimeoutDeferredResultProcessingInterceptor()
方法详细资料
handleTimeout
public <T> boolean handleTimeout(NativeWebRequest request, DeferredResult<T> result) throws Exception
从接口复制的说明:DeferredResultProcessingInterceptorInvoked from a container thread when an async request times out before theDeferredResulthas been set. Implementations may invokesetResultorsetErrorResultto resume processing.- 指定者:
handleTimeout在接口中DeferredResultProcessingInterceptor- 参数:
request- the current requestresult- the DeferredResult for the current request; if theDeferredResultis set, then concurrent processing is resumed and subsequent interceptors are not invoked- 返回:
trueif processing should continue, orfalseif other interceptors should not be invoked- 抛出:
Exception- in case of errors