クラス DeferredResult<T>
- 型パラメーター:
T
- 結果の型
DeferredResult
は、非同期リクエスト処理に Callable
SE を使用する代替手段を提供します。Callable
はアプリケーションに代わって同時に実行されますが、DeferredResult
を使用すると、アプリケーションは選択したスレッドから結果を生成できます。 サブクラスはこのクラスを継承して、追加のデータまたは動作を DeferredResult
に簡単に関連付けることができます。例: DeferredResult
の作成に使用されるユーザーを、クラスを継承し、ユーザーの追加のプロパティを追加することで関連付けることができます。このようにして、マッピングを行うためにデータ構造を使用する必要なく、ユーザーは後で簡単にアクセスできます。
追加の動作をこのクラスに関連付ける例は、クラスを継承して追加のインターフェースを実装することで実現できます。例: DeferredResult
が PriorityQueue
SE に追加されたときに正しい順序で処理されるように、Comparable
SE を実装したい場合があります。
- 導入:
- 3.2
- 作成者:
- Rossen Stoyanchev, Juergen Hoeller, Rob Winch, Sam Brannen
ネストされたクラスのサマリー
修飾子と型クラス説明static interface
設定されている場合、DeferredResult 値を処理します。コンストラクターのサマリー
コンストラクター説明DeferredResult を作成します。DeferredResult
(LongSE timeoutValue) カスタムタイムアウト値を使用して DeferredResult を作成します。DeferredResult
(LongSE timeoutValue, ObjectSE timeoutResult) タイムアウト値とタイムアウトの場合に使用するデフォルトの結果で DeferredResult を作成します。DeferredResult
(LongSE timeoutValue, SupplierSE<?> timeoutResult) Supplier
SE に基づく動的フォールバック値を受け入れるDeferredResult(Long, Object)
のバリアント。メソッドのサマリー
修飾子と型メソッド説明結果を返します。結果が設定されていない場合はnull
を返します。boolean
DeferredResult が設定されている場合はtrue
を返します。final boolean
この DeferredResult が以前に設定されたか、基になるリクエストが期限切れになったために使用できなくなった場合は、true
を返します。void
onCompletion
(RunnableSE callback) 非同期リクエストが完了したときに呼び出すコードを登録します。void
onError
(ConsumerSE<ThrowableSE> callback) 非同期リクエスト中にエラーが発生したときに呼び出すコードを登録します。void
onTimeout
(RunnableSE callback) 非同期リクエストがタイムアウトしたときに呼び出すコードを登録します。boolean
setErrorResult
(ObjectSE result) DeferredResult
のエラー値を設定して処理します。boolean
DeferredResult の値を設定して処理します。final void
setResultHandler
(DeferredResult.DeferredResultHandler resultHandler) 結果値を処理するために使用するハンドラーを提供します。
コンストラクターの詳細
DeferredResult
public DeferredResult()DeferredResult を作成します。DeferredResult
カスタムタイムアウト値を使用して DeferredResult を作成します。デフォルトでは設定されていません。この場合、MVC Java Config または MVC 名前空間で設定されたデフォルトが使用されます。または、設定されていない場合、タイムアウトは基盤となるサーバーのデフォルトによって異なります。
- パラメーター:
timeoutValue
- ミリ秒単位のタイムアウト値
DeferredResult
タイムアウト値とタイムアウトの場合に使用するデフォルトの結果で DeferredResult を作成します。- パラメーター:
timeoutValue
- ミリ秒単位のタイムアウト値 (null
の場合は無視されます)timeoutResult
- 使用する結果
DeferredResult
Supplier
SE に基づく動的フォールバック値を受け入れるDeferredResult(Long, Object)
のバリアント。- パラメーター:
timeoutValue
- ミリ秒単位のタイムアウト値 (null
の場合は無視されます)timeoutResult
- 使用する結果サプライヤー- 導入:
- 5.1.1
メソッドの詳細
isSetOrExpired
public final boolean isSetOrExpired()この DeferredResult が以前に設定されたか、基になるリクエストが期限切れになったために使用できなくなった場合は、true
を返します。結果は、
setResult(Object)
またはsetErrorResult(Object)
の呼び出しで設定されたか、タイムアウト結果がコンストラクターに提供された場合はタイムアウトの結果として設定された可能性があります。リクエストは、タイムアウトまたはネットワークエラーが原因で期限切れになる場合もあります。hasResult
public boolean hasResult()DeferredResult が設定されている場合はtrue
を返します。- 導入:
- 4.0
getResult
結果を返します。結果が設定されていない場合はnull
を返します。結果もnull
になる可能性があるため、このメソッドを呼び出す前に、まずhasResult()
を使用して結果があるかどうかを確認することをお勧めします。- 導入:
- 4.0
onTimeout
非同期リクエストがタイムアウトしたときに呼び出すコードを登録します。このメソッドは、
DeferredResult
が入力される前に非同期リクエストがタイムアウトしたときに、コンテナースレッドから呼び出されます。setResult
またはsetErrorResult
を呼び出して処理を再開する場合があります。onError
非同期リクエスト中にエラーが発生したときに呼び出すコードを登録します。このメソッドは、
DeferredResult
が入力される前の非同期リクエストの処理中にエラーが発生したときに、コンテナースレッドから呼び出されます。setResult
またはsetErrorResult
を呼び出して処理を再開する場合があります。- 導入:
- 5.0
onCompletion
非同期リクエストが完了したときに呼び出すコードを登録します。このメソッドは、タイムアウトやネットワークエラーなどの何らかの理由で非同期リクエストが完了したときに、コンテナースレッドから呼び出されます。これは、
DeferredResult
インスタンスが使用できなくなったことを検出できます。setResultHandler
結果値を処理するために使用するハンドラーを提供します。- パラメーター:
resultHandler
- ハンドラー- 関連事項:
setResult
DeferredResult の値を設定して処理します。- パラメーター:
result
- 設定する値- 戻り値:
- 結果が設定され、処理のために渡された場合は
true
。false
(結果がすでに設定されている場合、または非同期リクエストが期限切れの場合) - 関連事項:
setErrorResult
DeferredResult
のエラー値を設定して処理します。値はException
SE またはThrowable
SE の場合があり、その場合、ハンドラーが例外を発生させたかのように処理されます。- パラメーター:
result
- エラー結果値- 戻り値:
true
結果がエラー値に設定され、処理のために渡された場合。false
(結果がすでに設定されている場合、または非同期リクエストが期限切れの場合)- 関連事項: