クラス TimeoutDeferredResultProcessingInterceptor
java.lang.ObjectSE
org.springframework.web.context.request.async.TimeoutDeferredResultProcessingInterceptor
- 実装されたすべてのインターフェース:
DeferredResultProcessingInterceptor
public class TimeoutDeferredResultProcessingInterceptor
extends ObjectSE
implements DeferredResultProcessingInterceptor
レスポンスがまだコミットされていない場合、タイムアウトの場合に 503(SERVICE_UNAVAILABLE)を送信します。4.2.8 では、これは処理の結果として
AsyncRequestTimeoutException
を返すことによって間接的に行われ、処理の結果は Spring MVC のデフォルトの例外処理によって 503 エラーとして処理されます。最後に、他のすべてのインターセプターの後に登録されるため、他のインターセプターがタイムアウトを処理しない場合にのみ呼び出されます。
RFC 7231 によると、"Retry-After" ヘッダーのない 503 は 500 エラーとして解釈され、クライアントは再試行してはならないことに注意してください。アプリケーションは独自のインターセプターをインストールしてタイムアウトを処理し、必要に応じて 'Retry-After' ヘッダーを追加できます。
- 導入:
- 3.2
- 作成者:
- Rossen Stoyanchev
コンストラクターのサマリー
メソッドのサマリー
修飾子と型メソッド説明<T> boolean
handleTimeout
(NativeWebRequest request, DeferredResult<T> result) DeferredResult
が設定される前に非同期リクエストがタイムアウトしたときにコンテナースレッドから呼び出されます。クラス java.lang.ObjectSE から継承されたメソッド
clone, equalsSE, finalize, getClass, hashCode, notify, notifyAll, toString, wait, waitSE, waitSE
インターフェース 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 ExceptionSE インターフェースからコピーされた説明:DeferredResultProcessingInterceptor
DeferredResult
が設定される前に非同期リクエストがタイムアウトしたときにコンテナースレッドから呼び出されます。実装はsetResult
またはsetErrorResult
を呼び出して処理を再開できます。- 次で指定:
- インターフェース
DeferredResultProcessingInterceptor
のhandleTimeout
- パラメーター:
request
- 現在のリクエストresult
- 現在のリクエストの DeferredResult。DeferredResult
が設定されている場合、並行処理が再開され、後続のインターセプターは呼び出されません- 戻り値:
- 処理を続行する必要がある場合は
true
、他のインターセプターを呼び出さない場合はfalse
- 例外:
ExceptionSE
- エラーの場合