クラス ExecutorConfigurationSupport
- 実装されているすべてのインターフェース:
- SerializableSE、- ThreadFactorySE、- EventListenerSE、- Aware、- BeanNameAware、- DisposableBean、- InitializingBean、- ApplicationContextAware、- ApplicationListener<ContextClosedEvent>、- Lifecycle、- Phased、- SmartLifecycle
- 既知の直属サブクラス
- ScheduledExecutorFactoryBean、- ThreadPoolExecutorFactoryBean、- ThreadPoolTaskExecutor、- ThreadPoolTaskScheduler
ExecutorServiceSE(通常は ThreadPoolExecutorSE または ScheduledThreadPoolExecutorSE)をセットアップするための基本クラス。CustomizableThreadCreator からスレッドのカスタマイズオプション (名前、優先順位など) を継承して、共通の構成設定と共通のライフサイクル処理を定義します。
- 導入:
- 3.0
- 作成者:
- Juergen Hoeller
- 関連事項:
- フィールドのサマリーフィールド- インターフェース org.springframework.context.SmartLifecycle から継承されたフィールド- DEFAULT_PHASE
- コンストラクターの概要コンストラクター
- メソッドのサマリー修飾子と型メソッド説明- protected void- afterExecute- (RunnableSE task, ThrowableSE ex) (開始 / 停止処理のため) 委譲先のフレームワークサブクラスの実行後コールバック。また、場合によっては拡張先のカスタムサブクラスにも使用されます (必ずこの実装も呼び出すようにしてください)。- voidコンテナーがすべてのプロパティ値を適用した後に- initialize()を呼び出します。- protected void- beforeExecute- (ThreadSE thread, RunnableSE task) (開始 / 停止処理のため) 委譲先のフレームワークサブクラスの実行前コールバック。また、場合によっては拡張先のカスタムサブクラスにも対応します (必ずこの実装も呼び出すようにしてください)。- protected void- ExecutorService.shutdownNow()から返された、実行を開始していない指定された残りのタスクをキャンセルします。- void- destroy()BeanFactory がエグゼキューターインスタンスを破棄するときに- shutdownを呼び出します。- int- getPhase()このエグゼキュータを一時停止および再開するためのライフサイクルフェーズを返します。- voidExecutorService をセットアップします。- protected abstract ExecutorServiceSE- initializeExecutor- (ThreadFactorySE threadFactory, RejectedExecutionHandlerSE rejectedExecutionHandler) ターゲット- ExecutorServiceSE インスタンスを作成します。- protected void早期シャットダウンシグナル: さらなるタスクをトリガーせず、- shutdown()メソッドの実際の破棄ステップに入る前に既存のタスクを完了させます。- void基盤となる ExecutorService でシャットダウンを開始し、それ以降のタスクの送信を拒否します。- booleanこのエグゼキューターが一時停止していないか、シャットダウンしていないかどうかを確認します。- void早期シャットダウンを開始するための- ContextClosedEventハンドラー。- void- setAcceptTasksAfterContextClose- (boolean acceptTasksAfterContextClose) アプリケーションコンテキストクローズフェーズが開始された後に、さらなるタスクを受け入れるかどうかを設定します。- void- setApplicationContext- (ApplicationContext applicationContext) このオブジェクトが実行される ApplicationContext を設定します。- void- setAwaitTerminationMillis- (long awaitTerminationMillis) ミリ秒精度の- setAwaitTerminationSeconds(int)のバリアント。- void- setAwaitTerminationSeconds- (int awaitTerminationSeconds) コンテナーの残りの部分がシャットダウンし続ける前に、残りのタスクが実行を完了するのを待つために、このエグゼキュータがシャットダウン時にブロックする最大秒数を設定します。- void- setBeanName- (StringSE name) この Bean を作成した Bean ファクトリで Bean の名前を設定します。- void- setPhase- (int phase) このエグゼキュータを一時停止および再開するためのライフサイクルフェーズを指定します。- void- setRejectedExecutionHandler- (RejectedExecutionHandlerSE rejectedExecutionHandler) ExecutorService に使用する RejectedExecutionHandler を設定します。- void- setThreadFactory- (ThreadFactorySE threadFactory) ExecutorService のスレッドプールに使用する ThreadFactory を設定します。- void- setThreadNamePrefix- (StringSE threadNamePrefix) 新しく作成されたスレッドの名前に使用するプレフィックスを指定します。- void- setWaitForTasksToCompleteOnShutdown- (boolean waitForJobsToCompleteOnShutdown) 実行中のタスクを中断せず、キュー内のすべてのタスクを実行せずに、シャットダウン時にスケジュールされたタスクが完了するまで待機するかどうかを設定します。- void- shutdown()対応する構成設定に従って、基盤となる ExecutorService で完全なシャットダウンを実行します。- void- start()以前に一時停止されていた場合は、このエグゼキュータを再開します (それ以外の場合は何もしません)。- void- stop()タスクの完了を待たずに、このエグゼキュータを一時停止します。- void- stop- (RunnableSE callback) このエグゼキュータを一時停止し、現在実行中のタスクがすべて完了すると、指定されたコールバックをトリガーします。- クラス org.springframework.scheduling.concurrent.CustomizableThreadFactory から継承されたメソッド- newThread- クラス org.springframework.util.CustomizableThreadCreator から継承されたメソッド- createThread, getDefaultThreadNamePrefix, getThreadGroup, getThreadNamePrefix, getThreadPriority, isDaemon, nextThreadName, setDaemon, setThreadGroup, setThreadGroupName, setThreadPriority- クラス java.lang.ObjectSE から継承されたメソッド- clone, equalsSE, finalize, getClass, hashCode, notify, notifyAll, toString, wait, waitSE, waitSE- インターフェース org.springframework.context.ApplicationListener から継承されたメソッド- supportsAsyncExecution- インターフェース org.springframework.context.SmartLifecycle から継承されたメソッド- isAutoStartup
- フィールドの詳細- logger
 
- コンストラクターの詳細- ExecutorConfigurationSupportpublic ExecutorConfigurationSupport()
 
- メソッドの詳細- setThreadFactoryExecutorService のスレッドプールに使用する ThreadFactory を設定します。デフォルトは、基礎となる ExecutorService のデフォルトのスレッドファクトリです。- Jakarta EE または JSR-236 をサポートする他の管理環境では、JNDI に配置された ManagedThreadFactory を指定することを検討してください。デフォルトでは、"java:comp/DefaultManagedThreadFactory" にあります。検索に便利なように、XML の "jee:jndi-lookup" 名前空間要素またはプログラムによる - JndiLocatorDelegateを使用します。または、マネージスレッドファクトリが見つからない場合は、Spring の- DefaultManagedAwareThreadFactoryをローカルスレッドにフォールバックすることを検討してください。
- setThreadNamePrefixクラスからコピーされた説明:- CustomizableThreadCreator新しく作成されたスレッドの名前に使用するプレフィックスを指定します。デフォルトは "SimpleAsyncTaskExecutor-" です。- オーバーライド:
-  クラス CustomizableThreadCreatorのsetThreadNamePrefix
 
- setRejectedExecutionHandlerpublic void setRejectedExecutionHandler- (@Nullable RejectedExecutionHandlerSE rejectedExecutionHandler) ExecutorService で使用する RejectedExecutionHandler を設定します。デフォルトは、ExecutorService のデフォルトの中止ポリシーです。
- setAcceptTasksAfterContextClosepublic void setAcceptTasksAfterContextClose- (boolean acceptTasksAfterContextClose) アプリケーションコンテキストクローズフェーズが開始された後に、さらなるタスクを受け入れるかどうかを設定します。- 6.1 のデフォルトは - falseで、エグゼキューターの早期ソフトシャットダウンをトリガーするため、それ以降のタスクの送信は拒否されます。これを- trueに切り替えて、シャットダウンフェーズが長くなる代わりに、他のコンポーネントが自身の停止および破棄コールバック中であってもタスクを送信できるようにします。この場合、エグゼキュータは調整されたライフサイクル停止フェーズを経ず、自身のシャットダウン時にタスクのみを停止します。- acceptTasksAfterContextClose=trueのような動作も、実質的にこのフラグの特定のバリアントである- "waitForTasksToCompleteOnShutdown"から派生し、並行管理停止フェーズでの早期のソフトシャットダウンを、エグゼキュータの破棄ステップでのシリアルソフトシャットダウンに置き換え、- "awaitTerminationSeconds"プロパティに従って個別に待機します。- このフラグは、エグゼキューターが Spring アプリケーションコンテキストで実行されており、 - ContextClosedEventを受信できる場合にのみ有効です。また、- "strictEarlyShutdown"が指定されていない限り、- ThreadPoolTaskExecutorはデフォルトで、調整されたライフサイクル停止と組み合わせて、コンテキストが閉じられた後のタスクを効果的に受け入れることに注意してください。
- setWaitForTasksToCompleteOnShutdownpublic void setWaitForTasksToCompleteOnShutdown- (boolean waitForJobsToCompleteOnShutdown) 実行中のタスクを中断せず、キュー内のすべてのタスクを実行せずに、シャットダウン時にスケジュールされたタスクが完了するまで待機するかどうかを設定します。- デフォルトは - falseで、最初に調整されたライフサイクル停止が行われ (- "acceptTasksAfterContextClose"が設定されていない場合)、次に進行中のタスクを中断してキューをクリアすることで即時にシャットダウンします。シャットダウンフェーズを長くしてもタスクを完全に完了したい場合は、このフラグを- trueに切り替えます。この場合、エグゼキュータは調整されたライフサイクル停止フェーズを経ず、単に停止して、それ自体のシャットダウン時にタスクの完了を待つだけになります。- Spring のコンテナーのシャットダウンは、進行中のタスクが完了するまで継続することに注意してください。このエグゼキューターがコンテナーの残りの部分がシャットダウンし続ける前にブロックしてタスクの終了を待つようにする場合 - 例タスクに必要な他のリソースを維持するために、このプロパティの代わりに、またはこのプロパティに加えて、 - "awaitTerminationSeconds"プロパティを設定します。
- setAwaitTerminationSecondspublic void setAwaitTerminationSeconds- (int awaitTerminationSeconds) コンテナーの残りの部分がシャットダウンし続ける前に、残りのタスクが実行を完了するのを待つために、このエグゼキュータがシャットダウン時にブロックする最大秒数を設定します。これは、残りのタスクがコンテナーによって管理されている他のリソースへのアクセスを必要とする可能性が高い場合に特に役立ちます。- デフォルトでは、このエグゼキューターはタスクの終了をまったく待ちません。すぐにシャットダウンして、進行中のタスクを中断し、残りのタスクキューをクリアします。または、 - "waitForTasksToCompleteOnShutdown"フラグが- trueに設定されている場合、キュー内のすべての残りのタスクだけでなく、進行中のすべてのタスクを並行して完全に実行し続けます。コンテナーの残りの部分にシャットダウンします。- いずれの場合でも、このプロパティを使用して終了待ち期間を指定すると、このエグゼキューターはタスクの終了を指定された時間(最大)待機します。経験則として、"waitForTasksToCompleteOnShutdown" を同時に - trueに設定する場合は、キュー内の残りのすべてのタスクが実行されるため、ここで大幅に高いタイムアウトを指定します。デフォルトのシャットダウン動作とは対照的に現在、スレッドの中断に反応しないタスクを実行しています。
- setAwaitTerminationMillispublic void setAwaitTerminationMillis- (long awaitTerminationMillis) ミリ秒精度の- setAwaitTerminationSeconds(int)のバリアント。- 導入:
- 5.2.4
- 関連事項:
 
- setPhasepublic void setPhase- (int phase) このエグゼキュータを一時停止および再開するためのライフサイクルフェーズを指定します。デフォルトは- SmartLifecycle.DEFAULT_PHASEです。- 導入:
- 6.1
- 関連事項:
 
- getPhasepublic int getPhase()このエグゼキュータを一時停止および再開するためのライフサイクルフェーズを返します。- 次で指定:
-  インターフェース PhasedのgetPhase
- 次で指定:
-  インターフェース SmartLifecycleのgetPhase
- 導入:
- 6.1
- 関連事項:
 
- setBeanNameインターフェースからコピーされた説明:- BeanNameAwareこの Bean を作成した Bean ファクトリで Bean の名前を設定します。- 通常の Bean プロパティの設定後、ただし - InitializingBean.afterPropertiesSet()またはカスタム init メソッドなどの init コールバックの前に呼び出されます。- 次で指定:
-  インターフェース BeanNameAwareのsetBeanName
- パラメーター:
- name- ファクトリ内の Bean の名前。この名前は、ファクトリで使用される実際の Bean 名であり、最初に指定した名前とは異なる場合があります。特に内部 Bean 名の場合、実際の Bean 名は "#..." サフィックスを追加することで一意になります。必要に応じて、- BeanFactoryUtils.originalBeanName(String)メソッドを使用して、元の Bean 名(サフィックスなし)を抽出します。
 
- setApplicationContextインターフェースからコピーされた説明:- ApplicationContextAwareこのオブジェクトが実行される ApplicationContext を設定します。通常、この呼び出しはオブジェクトの初期化に使用されます。- 通常の Bean プロパティの設定後、ただし - InitializingBean.afterPropertiesSet()またはカスタム init メソッドなどの init コールバックの前に呼び出されます。- ResourceLoaderAware.setResourceLoader(org.springframework.core.io.ResourceLoader)、- ApplicationEventPublisherAware.setApplicationEventPublisher(org.springframework.context.ApplicationEventPublisher)および- MessageSourceAwareの後に呼び出されます(該当する場合)。- 次で指定:
-  インターフェース ApplicationContextAwareのsetApplicationContext
- パラメーター:
- applicationContext- このオブジェクトによって使用される ApplicationContext オブジェクト
- 関連事項:
 
- afterPropertiesSetpublic void afterPropertiesSet()コンテナーがすべてのプロパティ値を適用した後に- initialize()を呼び出します。- 次で指定:
-  インターフェース InitializingBeanのafterPropertiesSet
- 関連事項:
 
- initializepublic void initialize()ExecutorService をセットアップします。
- initializeExecutorprotected abstract ExecutorServiceSE initializeExecutor- (ThreadFactorySE threadFactory, RejectedExecutionHandlerSE rejectedExecutionHandler) ターゲット- ExecutorServiceSE インスタンスを作成します。- afterPropertiesSetによって呼び出されます。- パラメーター:
- threadFactory- 使用する ThreadFactory
- rejectedExecutionHandler- 使用する RejectedExecutionHandler
- 戻り値:
- 新しい ExecutorService インスタンス
- 関連事項:
 
- destroypublic void destroy()BeanFactory がエグゼキューターインスタンスを破棄するときに- shutdownを呼び出します。- 次で指定:
-  インターフェース DisposableBeanのdestroy
- 関連事項:
 
- initiateShutdownpublic void initiateShutdown()基盤となる ExecutorService でシャットダウンを開始し、それ以降のタスクの送信を拒否します。- エグゼキュータはそれ以上のタスクを受け入れず、定期的なタスクのさらなるスケジュール設定を妨げ、既存のタスクをそのまま完了させます。このステップはノンブロッキングであり、後で完全な - shutdown()呼び出しを行う前に、早期シャットダウンシグナルとして適用できます。- context closeで早期シャットダウンシグナルが自動的に呼び出されます。特にコンテナーの外で、手動で呼び出すこともできます。- 導入:
- 6.1
- 関連事項:
 
- shutdownpublic void shutdown()対応する構成設定に従って、基盤となる ExecutorService で完全なシャットダウンを実行します。- このステップは、構成された終了期間中ブロックされる可能性があり、残りのタスクが完了するのを待ちます。早期シャットダウンシグナルでそれ以上のタスクを受け入れないようにするには、最初に - initiateShutdown()を呼び出します。
- cancelRemainingTask- ExecutorService.shutdownNow()から返された、実行を開始していない指定された残りのタスクをキャンセルします。- パラメーター:
- task- キャンセルするタスク (通常、- RunnableFutureSE )
- 導入:
- 5.0.5
- 関連事項:
 
- startpublic void start()以前に一時停止されていた場合は、このエグゼキュータを再開します (それ以外の場合は何もしません)。
- stoppublic void stop()タスクの完了を待たずに、このエグゼキュータを一時停止します。
- stopこのエグゼキュータを一時停止し、現在実行中のタスクがすべて完了すると、指定されたコールバックをトリガーします。- 次で指定:
-  インターフェース SmartLifecycleのstop
- 導入:
- 6.1
- 関連事項:
 
- isRunningpublic boolean isRunning()このエグゼキューターが一時停止していないか、シャットダウンしていないかどうかを確認します。
- beforeExecute(開始 / 停止処理のため) 委譲先のフレームワークサブクラスの実行前コールバック。また、場合によっては拡張先のカスタムサブクラスにも対応します (必ずこの実装も呼び出すようにしてください)。- パラメーター:
- thread- タスクを実行するスレッド
- task- 実行されるタスク
- 導入:
- 6.1
- 関連事項:
 
- afterExecute(開始 / 停止処理のため) 委譲先のフレームワークサブクラスの実行後コールバック。また、場合によっては拡張先のカスタムサブクラスにも使用されます (必ずこの実装も呼び出すようにしてください)。- パラメーター:
- task- 実行されたタスク
- ex- 実行中にスローされた例外 (存在する場合)
- 導入:
- 6.1
- 関連事項:
 
- onApplicationEvent早期シャットダウンを開始するための- ContextClosedEventハンドラー。- 次で指定:
-  インターフェース ApplicationListener<ContextClosedEvent>のonApplicationEvent
- パラメーター:
- event- 応答するイベント
- 導入:
- 6.1
- 関連事項:
 
- initiateEarlyShutdownprotected void initiateEarlyShutdown()早期シャットダウンシグナル: さらなるタスクをトリガーせず、- shutdown()メソッドの実際の破棄ステップに入る前に既存のタスクを完了させます。これは- coordinated lifecycle stop phaseと併用します。- 遅延シャットダウンの兆候が決定されていない場合、つまり - "acceptTasksAfterContextCloseおよび- "waitForTasksToCompleteOnShutdown"フラグが設定されていない場合、- onApplicationEvent(ContextClosedEvent)から呼び出されます。- デフォルトの実装は - initiateShutdown()を呼び出します。- 導入:
- 6.1.4
- 関連事項: