クラス ExecutorConfigurationSupport

実装されたすべてのインターフェース:
SerializableSEThreadFactorySEAwareBeanNameAwareDisposableBeanInitializingBean
既知の直属サブクラス
ScheduledExecutorFactoryBeanThreadPoolExecutorFactoryBeanThreadPoolTaskExecutorThreadPoolTaskScheduler

public abstract class ExecutorConfigurationSupport extends CustomizableThreadFactory implements BeanNameAware, InitializingBean, DisposableBean
ExecutorServiceSE(通常は ThreadPoolExecutorSE または ScheduledThreadPoolExecutorSE)をセットアップするための基本クラス。

CustomizableThreadCreator からスレッドのカスタマイズオプション (名前、優先順位など) を継承して、共通の構成設定と共通のライフサイクル処理を定義します。

導入:
3.0
作成者:
Juergen Hoeller
関連事項:
  • フィールドの詳細

    • logger

      protected final Log logger
  • コンストラクターの詳細

    • ExecutorConfigurationSupport

      public ExecutorConfigurationSupport()
  • メソッドの詳細

    • setThreadFactory

      public void setThreadFactory(@Nullable ThreadFactorySE threadFactory)
      ExecutorService のスレッドプールに使用する ThreadFactory を設定します。デフォルトは、基になる ExecutorService のデフォルトスレッドファクトリです。

      Jakarta EE または JSR-236 をサポートする他の管理環境では、JNDI に配置された ManagedThreadFactory を指定することを検討してください。デフォルトでは、"java:comp/DefaultManagedThreadFactory" にあります。検索に便利なように、XML の "jee:jndi-lookup" 名前空間要素またはプログラムによる JndiLocatorDelegate を使用します。または、マネージスレッドファクトリが見つからない場合は、Spring の DefaultManagedAwareThreadFactory をローカルスレッドにフォールバックすることを検討してください。

      関連事項:
    • setThreadNamePrefix

      public void setThreadNamePrefix(@Nullable StringSE threadNamePrefix)
      クラスからコピーされた説明: CustomizableThreadCreator
      新しく作成されたスレッドの名前に使用するプレフィックスを指定します。デフォルトは "SimpleAsyncTaskExecutor-" です。
      オーバーライド:
      クラス CustomizableThreadCreatorsetThreadNamePrefix 
    • setRejectedExecutionHandler

      public void setRejectedExecutionHandler(@Nullable RejectedExecutionHandlerSE rejectedExecutionHandler)
      ExecutorService に使用する RejectedExecutionHandler を設定します。デフォルトは、ExecutorService のデフォルトの中止ポリシーです。
      関連事項:
    • setWaitForTasksToCompleteOnShutdown

      public void setWaitForTasksToCompleteOnShutdown(boolean waitForJobsToCompleteOnShutdown)
      実行中のタスクを中断せず、キュー内のすべてのタスクを実行せずに、シャットダウン時にスケジュールされたタスクが完了するまで待機するかどうかを設定します。

      デフォルトは false で、進行中のタスクを中断し、キューをクリアすることで直ちにシャットダウンします。シャットダウンフェーズを長くしてもタスクを完全に完了したい場合は、このフラグを true に切り替えます。

      Spring のコンテナーのシャットダウンは、進行中のタスクが完了するまで継続することに注意してください。このエグゼキューターがコンテナーの残りの部分がシャットダウンし続ける前にブロックしてタスクの終了を待つようにする場合 - 例タスクに必要な他のリソースを維持するために、このプロパティの代わりに、またはこのプロパティに加えて、"awaitTerminationSeconds" プロパティを設定します。

      関連事項:
    • setAwaitTerminationSeconds

      public void setAwaitTerminationSeconds(int awaitTerminationSeconds)
      コンテナーの残りの部分がシャットダウンし続ける前に、残りのタスクが実行を完了するのを待つために、このエグゼキュータがシャットダウン時にブロックする最大秒数を設定します。これは、残りのタスクがコンテナーによって管理されている他のリソースへのアクセスを必要とする可能性が高い場合に特に役立ちます。

      デフォルトでは、このエグゼキューターはタスクの終了をまったく待ちません。すぐにシャットダウンして、進行中のタスクを中断し、残りのタスクキューをクリアします。または、"waitForTasksToCompleteOnShutdown" フラグが true に設定されている場合、キュー内のすべての残りのタスクだけでなく、進行中のすべてのタスクを並行して完全に実行し続けます。コンテナーの残りの部分にシャットダウンします。

      いずれの場合でも、このプロパティを使用して終了待ち期間を指定すると、このエグゼキューターはタスクの終了を指定された時間(最大)待機します。経験則として、"waitForTasksToCompleteOnShutdown" を同時に true に設定する場合は、キュー内の残りのすべてのタスクが実行されるため、ここで大幅に高いタイムアウトを指定します。デフォルトのシャットダウン動作とは対照的に現在、スレッドの中断に反応しないタスクを実行しています。

      関連事項:
    • setAwaitTerminationMillis

      public void setAwaitTerminationMillis(long awaitTerminationMillis)
      ミリ秒精度の setAwaitTerminationSeconds(int) のバリアント。
      導入:
      5.2.4
      関連事項:
    • setBeanName

      public void setBeanName(StringSE name)
      インターフェースからコピーされた説明: BeanNameAware
      この Bean を作成した Bean ファクトリで Bean の名前を設定します。

      通常の Bean プロパティの設定後、ただし InitializingBean.afterPropertiesSet() またはカスタム init メソッドなどの init コールバックの前に呼び出されます。

      次で指定:
      インターフェース BeanNameAwaresetBeanName 
      パラメーター:
      name - ファクトリ内の Bean の名前。この名前は、ファクトリで使用される実際の Bean 名であり、最初に指定した名前とは異なる場合があります。特に内部 Bean 名の場合、実際の Bean 名は "#..." サフィックスを追加することで一意になります。必要に応じて、BeanFactoryUtils.originalBeanName(String) メソッドを使用して、元の Bean 名(サフィックスなし)を抽出します。
    • afterPropertiesSet

      public void afterPropertiesSet()
      コンテナーがすべてのプロパティ値を適用した後に initialize() を呼び出します。
      次で指定:
      インターフェース InitializingBeanafterPropertiesSet 
      関連事項:
    • initialize

      public void initialize()
      ExecutorService をセットアップします。
    • initializeExecutor

      protected abstract ExecutorServiceSE initializeExecutor(ThreadFactorySE threadFactory, RejectedExecutionHandlerSE rejectedExecutionHandler)
      ターゲット ExecutorServiceSE インスタンスを作成します。afterPropertiesSet によって呼び出されます。
      パラメーター:
      threadFactory - 使用する ThreadFactory
      rejectedExecutionHandler - 使用する RejectedExecutionHandler
      戻り値:
      新しい ExecutorService インスタンス
      関連事項:
    • destroy

      public void destroy()
      BeanFactory がエグゼキューターインスタンスを破棄するときに shutdown を呼び出します。
      次で指定:
      インターフェース DisposableBeandestroy 
      関連事項:
    • shutdown

      public void shutdown()
      対応する構成設定に従って、基盤となる ExecutorService で完全なシャットダウンを実行します。
      関連事項:
    • cancelRemainingTask

      protected void cancelRemainingTask(RunnableSE task)
      ExecutorService.shutdownNow() から返された、実行を決して推奨しない残りのタスクをキャンセルします。
      パラメーター:
      task - キャンセルするタスク (通常、RunnableFutureSE )
      導入:
      5.0.5
      関連事項: