クラス ExecutorConfigurationSupport
- 実装されたすべてのインターフェース:
SerializableSE
、ThreadFactorySE
、Aware
、BeanNameAware
、DisposableBean
、InitializingBean
- 既知の直属サブクラス
ScheduledExecutorFactoryBean
、ThreadPoolExecutorFactoryBean
、ThreadPoolTaskExecutor
、ThreadPoolTaskScheduler
ExecutorService
SE(通常は ThreadPoolExecutor
SE または ScheduledThreadPoolExecutor
SE)をセットアップするための基本クラス。CustomizableThreadCreator
からスレッドのカスタマイズオプション (名前、優先順位など) を継承して、共通の構成設定と共通のライフサイクル処理を定義します。
- 導入:
- 3.0
- 作成者:
- Juergen Hoeller
- 関連事項:
フィールドサマリー
フィールドコンストラクターのサマリー
コンストラクターメソッドのサマリー
修飾子と型メソッド説明void
コンテナーがすべてのプロパティ値を適用した後にinitialize()
を呼び出します。protected void
ExecutorService.shutdownNow()
から返された、実行を決して推奨しない残りのタスクをキャンセルします。void
destroy()
BeanFactory がエグゼキューターインスタンスを破棄するときにshutdown
を呼び出します。void
ExecutorService をセットアップします。protected abstract ExecutorServiceSE
initializeExecutor
(ThreadFactorySE threadFactory, RejectedExecutionHandlerSE rejectedExecutionHandler) ターゲットExecutorService
SE インスタンスを作成します。void
setAwaitTerminationMillis
(long awaitTerminationMillis) ミリ秒精度のsetAwaitTerminationSeconds(int)
のバリアント。void
setAwaitTerminationSeconds
(int awaitTerminationSeconds) コンテナーの残りの部分がシャットダウンし続ける前に、残りのタスクが実行を完了するのを待つために、このエグゼキュータがシャットダウン時にブロックする最大秒数を設定します。void
setBeanName
(StringSE name) この Bean を作成した Bean ファクトリで Bean の名前を設定します。void
setRejectedExecutionHandler
(RejectedExecutionHandlerSE rejectedExecutionHandler) ExecutorService に使用する RejectedExecutionHandler を設定します。void
setThreadFactory
(ThreadFactorySE threadFactory) ExecutorService のスレッドプールに使用する ThreadFactory を設定します。void
setThreadNamePrefix
(StringSE threadNamePrefix) 新しく作成されたスレッドの名前に使用するプレフィックスを指定します。void
setWaitForTasksToCompleteOnShutdown
(boolean waitForJobsToCompleteOnShutdown) 実行中のタスクを中断せず、キュー内のすべてのタスクを実行せずに、シャットダウン時にスケジュールされたタスクが完了するまで待機するかどうかを設定します。void
shutdown()
対応する構成設定に従って、基盤となる ExecutorService で完全なシャットダウンを実行します。クラス org.springframework.scheduling.concurrent.CustomizableThreadFactory から継承されたメソッド
newThread
クラス org.springframework.util.CustomizableThreadCreator から継承されたメソッド
createThread, getDefaultThreadNamePrefix, getThreadGroup, getThreadNamePrefix, getThreadPriority, isDaemon, nextThreadName, setDaemon, setThreadGroup, setThreadGroupName, setThreadPriority
フィールドの詳細
logger
コンストラクターの詳細
ExecutorConfigurationSupport
public ExecutorConfigurationSupport()
メソッドの詳細
setThreadFactory
ExecutorService のスレッドプールに使用する ThreadFactory を設定します。デフォルトは、基になる ExecutorService のデフォルトスレッドファクトリです。Jakarta EE または JSR-236 をサポートする他の管理環境では、JNDI に配置された ManagedThreadFactory を指定することを検討してください。デフォルトでは、"java:comp/DefaultManagedThreadFactory" にあります。検索に便利なように、XML の "jee:jndi-lookup" 名前空間要素またはプログラムによる
JndiLocatorDelegate
を使用します。または、マネージスレッドファクトリが見つからない場合は、Spring のDefaultManagedAwareThreadFactory
をローカルスレッドにフォールバックすることを検討してください。setThreadNamePrefix
クラスからコピーされた説明:CustomizableThreadCreator
新しく作成されたスレッドの名前に使用するプレフィックスを指定します。デフォルトは "SimpleAsyncTaskExecutor-" です。- オーバーライド:
- クラス
CustomizableThreadCreator
のsetThreadNamePrefix
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
インターフェースからコピーされた説明:BeanNameAware
この Bean を作成した Bean ファクトリで Bean の名前を設定します。通常の Bean プロパティの設定後、ただし
InitializingBean.afterPropertiesSet()
またはカスタム init メソッドなどの init コールバックの前に呼び出されます。- 次で指定:
- インターフェース
BeanNameAware
のsetBeanName
- パラメーター:
name
- ファクトリ内の Bean の名前。この名前は、ファクトリで使用される実際の Bean 名であり、最初に指定した名前とは異なる場合があります。特に内部 Bean 名の場合、実際の Bean 名は "#..." サフィックスを追加することで一意になります。必要に応じて、BeanFactoryUtils.originalBeanName(String)
メソッドを使用して、元の Bean 名(サフィックスなし)を抽出します。
afterPropertiesSet
public void afterPropertiesSet()コンテナーがすべてのプロパティ値を適用した後にinitialize()
を呼び出します。- 次で指定:
- インターフェース
InitializingBean
のafterPropertiesSet
- 関連事項:
initialize
public void initialize()ExecutorService をセットアップします。initializeExecutor
protected abstract ExecutorServiceSE initializeExecutor(ThreadFactorySE threadFactory, RejectedExecutionHandlerSE rejectedExecutionHandler) ターゲットExecutorService
SE インスタンスを作成します。afterPropertiesSet
によって呼び出されます。- パラメーター:
threadFactory
- 使用する ThreadFactoryrejectedExecutionHandler
- 使用する RejectedExecutionHandler- 戻り値:
- 新しい ExecutorService インスタンス
- 関連事項:
destroy
public void destroy()BeanFactory がエグゼキューターインスタンスを破棄するときにshutdown
を呼び出します。- 次で指定:
- インターフェース
DisposableBean
のdestroy
- 関連事項:
shutdown
public void shutdown()対応する構成設定に従って、基盤となる ExecutorService で完全なシャットダウンを実行します。cancelRemainingTask
ExecutorService.shutdownNow()
から返された、実行を決して推奨しない残りのタスクをキャンセルします。- パラメーター:
task
- キャンセルするタスク (通常、RunnableFuture
SE )- 導入:
- 5.0.5
- 関連事項: