インターフェース CallableProcessingInterceptor

すべての既知の実装クラス:
TimeoutCallableProcessingInterceptor

public interface CallableProcessingInterceptor
アプリケーションの代わりに AsyncTaskExecutor を使用して CallableSE を実行することで同時結果が取得される、同時リクエスト処理をインターセプトします。

CallableProcessingInterceptor は、非同期スレッドでの Callable タスクの呼び出しの前後、およびコンテナースレッドからのタイムアウト / エラー時に、またはタイムアウトやネットワークエラーを含む何らかの理由で完了した後に呼び出されます。

原則として、インターセプターメソッドによって例外が発生すると、コンテナーにディスパッチして例外インスタンスを同時結果として使用することにより、非同期処理が再開されます。このような例外は、HandlerExceptionResolver メカニズムを介して処理されます。

handleTimeout メソッドは、処理の再開に使用する値を選択できます。

導入:
3.2
作成者:
Rossen Stoyanchev, Rob Winch
  • フィールドサマリー

    フィールド
    修飾子と型
    フィールド
    説明
    static final ObjectSE
    レスポンスがこのインターセプターによって結果なしで処理され、それ以上インターセプターが呼び出されないことを示す定数。
    static final ObjectSE
    このインターセプターによって結果が決定されておらず、後続のインターセプターにチャンスを与えることを示す定数。
  • メソッドのサマリー

    修飾子と型
    メソッド
    説明
    default <T> void
    タイムアウトやネットワークエラーなどの何らかの理由で非同期処理が完了したときに、コンテナースレッドから呼び出されます。
    default <T> void
    Callable が並行処理のためにサブミットされた元のスレッドで並行処理の開始前に呼び出されます。
    default <T> ObjectSE
    Callable タスクが完了する前に非同期リクエストを処理しているときにエラーが発生したときに、コンテナースレッドから呼び出されます。
    default <T> ObjectSE
    Callable タスクが完了する前に非同期リクエストがタイムアウトしたときに、コンテナースレッドから呼び出されます。
    default <T> void
    postProcess(NativeWebRequest request, CallableSE<T> task, ObjectSE concurrentResult)
    Callable が Callable が実行される非同期スレッドで結果を生成した後に呼び出されます。
    default <T> void
    Callable が実行される非同期スレッドで同時取り扱いを開始した後と Callable の実際の呼び出しの前に呼び出されます。
  • フィールドの詳細

  • メソッドの詳細

    • beforeConcurrentHandling

      default <T> void beforeConcurrentHandling(NativeWebRequest request, CallableSE<T> task) throws ExceptionSE
      Callable が並行処理のためにサブミットされた元のスレッドで並行処理の開始前に呼び出されます。

      これは、CallableSE を呼び出す直前に現在のスレッドの状態をキャプチャーできます。状態がキャプチャーされると、preProcess(NativeWebRequest, Callable) の新しい ThreadSE に転送できます。Spring Security の SecurityContextHolder の状態をキャプチャーし、それを新しいスレッドに移行することは、これが役立つ場所の具体例です。

      デフォルトの実装は空です。

      パラメーター:
      request - 現在のリクエスト
      task - 現在の非同期リクエストのタスク
      例外:
      ExceptionSE - エラーの場合
    • preProcess

      default <T> void preProcess(NativeWebRequest request, CallableSE<T> task) throws ExceptionSE
      Callable が実行される非同期スレッドで同時取り扱いを開始した後と Callable の実際の呼び出しの前に呼び出されます。

      デフォルトの実装は空です。

      パラメーター:
      request - 現在のリクエスト
      task - 現在の非同期リクエストのタスク
      例外:
      ExceptionSE - エラーの場合
    • postProcess

      default <T> void postProcess(NativeWebRequest request, CallableSE<T> task, @Nullable ObjectSE concurrentResult) throws ExceptionSE
      Callable が Callable が実行される非同期スレッドで結果を生成した後に呼び出されます。このメソッドは、Callable が処理を終了するタイミングに応じて、afterTimeout または afterCompletion よりも後に呼び出される場合があります。

      デフォルトの実装は空です。

      パラメーター:
      request - 現在のリクエスト
      task - 現在の非同期リクエストのタスク
      concurrentResult - 並行処理の結果。Callable が例外を発生させた場合は ThrowableSE になる可能性がある
      例外:
      ExceptionSE - エラーの場合
    • handleTimeout

      default <T> ObjectSE handleTimeout(NativeWebRequest request, CallableSE<T> task) throws ExceptionSE
      Callable タスクが完了する前に非同期リクエストがタイムアウトしたときに、コンテナースレッドから呼び出されます。実装は、CallableSE が時間内に返さなかった値の代わりに使用する ExceptionSE を含む値を返す場合があります。

      デフォルトの実装は常に RESULT_NONE を返します。

      パラメーター:
      request - 現在のリクエスト
      task - 現在の非同期リクエストのタスク
      戻り値:
      同時結果値 ; 値が RESULT_NONE または RESPONSE_HANDLED 以外の場合、並行処理が再開され、後続のインターセプターは呼び出されません
      例外:
      ExceptionSE - エラーの場合
    • handleError

      default <T> ObjectSE handleError(NativeWebRequest request, CallableSE<T> task, ThrowableSE t) throws ExceptionSE
      Callable タスクが完了する前に非同期リクエストを処理しているときにエラーが発生したときに、コンテナースレッドから呼び出されます。実装は、CallableSE が時間内に返さなかった値の代わりに使用する ExceptionSE を含む値を返す場合があります。

      デフォルトの実装は常に RESULT_NONE を返します。

      パラメーター:
      request - 現在のリクエスト
      task - 現在の非同期リクエストのタスク
      t - リクエスト処理中に発生したエラー
      戻り値:
      同時結果値 ; 値が RESULT_NONE または RESPONSE_HANDLED 以外の場合、並行処理が再開され、後続のインターセプターは呼び出されません
      例外:
      ExceptionSE - エラーの場合
      導入:
      5.0
    • afterCompletion

      default <T> void afterCompletion(NativeWebRequest request, CallableSE<T> task) throws ExceptionSE
      タイムアウトやネットワークエラーなどの何らかの理由で非同期処理が完了したときに、コンテナースレッドから呼び出されます。

      デフォルトの実装は空です。

      パラメーター:
      request - 現在のリクエスト
      task - 現在の非同期リクエストのタスク
      例外:
      ExceptionSE - エラーの場合