クラス DeferredResult<T>
- 型パラメーター:
T- 結果の型
DeferredResult は、非同期リクエスト処理に CallableSE を使用する代替手段を提供します。Callable はアプリケーションに代わって同時に実行されますが、DeferredResult を使用すると、アプリケーションは選択したスレッドから結果を生成できます。 サブクラスはこのクラスを継承して、追加のデータまたは動作を DeferredResult に簡単に関連付けることができます。例: DeferredResult の作成に使用されるユーザーを、クラスを継承し、ユーザーの追加のプロパティを追加することで関連付けることができます。このようにして、マッピングを行うためにデータ構造を使用する必要なく、ユーザーは後で簡単にアクセスできます。
追加の動作をこのクラスに関連付ける例は、クラスを継承して追加のインターフェースを実装することで実現できます。例: DeferredResult が PriorityQueueSE に追加されたときに正しい順序で処理されるように、ComparableSE を実装したい場合があります。
- 導入:
- 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) SupplierSE に基づく動的フォールバック値を受け入れるDeferredResult(Long, Object)のバリアント。メソッドのサマリー
修飾子と型メソッド説明結果を返します。結果が設定されていない場合はnullを返します。booleanDeferredResult が設定されている場合はtrueを返します。final booleanこの DeferredResult が以前に設定されたか、基になるリクエストが期限切れになったために使用できなくなった場合は、trueを返します。voidonCompletion(RunnableSE callback) 非同期リクエストが完了したときに呼び出すコードを登録します。voidonError(ConsumerSE<ThrowableSE> callback) 非同期リクエスト中にエラーが発生したときに呼び出すコードを登録します。voidonTimeout(RunnableSE callback) 非同期リクエストがタイムアウトしたときに呼び出すコードを登録します。booleansetErrorResult(ObjectSE result) DeferredResultのエラー値を設定して処理します。booleanDeferredResult の値を設定して処理します。final voidsetResultHandler(DeferredResult.DeferredResultHandler resultHandler) 結果値を処理するために使用するハンドラーを提供します。
コンストラクターの詳細
DeferredResult
public DeferredResult()DeferredResult を作成します。DeferredResult
カスタムタイムアウト値を使用して DeferredResult を作成します。デフォルトでは設定されていません。この場合、MVC Java Config または MVC 名前空間で設定されたデフォルトが使用されます。または、設定されていない場合、タイムアウトは基盤となるサーバーのデフォルトによって異なります。
- パラメーター:
timeoutValue- ミリ秒単位のタイムアウト値
DeferredResult
タイムアウト値とタイムアウトの場合に使用するデフォルトの結果で DeferredResult を作成します。- パラメーター:
timeoutValue- ミリ秒単位のタイムアウト値 (nullの場合は無視されます)timeoutResult- 使用する結果
DeferredResult
SupplierSE に基づく動的フォールバック値を受け入れる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のエラー値を設定して処理します。値はExceptionSE またはThrowableSE の場合があり、その場合、ハンドラーが例外を発生させたかのように処理されます。- パラメーター:
result- エラー結果値- 戻り値:
true結果がエラー値に設定され、処理のために渡された場合。false(結果がすでに設定されている場合、または非同期リクエストが期限切れの場合)- 関連事項: