public abstract class ExecutorConfigurationSupport extends CustomizableThreadFactory implements BeanNameAware, InitializingBean, DisposableBean
ExecutorServiceSE(通常は ThreadPoolExecutorSE または ScheduledThreadPoolExecutorSE)をセットアップするための基本クラス。共通の構成設定と共通のライフサイクル処理を定義します。ExecutorServiceSE, ExecutorsSE, ThreadPoolExecutorSE, ScheduledThreadPoolExecutorSE, 連載形式 | コンストラクターと説明 |
|---|
ExecutorConfigurationSupport() |
| 修飾子と型 | メソッドと説明 |
|---|---|
void | afterPropertiesSet() コンテナーがすべてのプロパティ値を適用した後に initialize() を呼び出します。 |
void | destroy()BeanFactory がタスクエグゼキューターインスタンスを破棄するときに shutdown を呼び出します。 |
void | initialize()ExecutorService をセットアップします。 |
protected abstract ExecutorServiceSE | initializeExecutor(ThreadFactorySE threadFactory, RejectedExecutionHandlerSE rejectedExecutionHandler) ターゲット ExecutorServiceSE インスタンスを作成します。 |
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 でシャットダウンを実行します。 |
newThreadcreateThread, getDefaultThreadNamePrefix, getThreadGroup, getThreadNamePrefix, getThreadPriority, isDaemon, nextThreadName, setDaemon, setThreadGroup, setThreadGroupName, setThreadPrioritycloneSE, equalsSE, finalizeSE, getClassSE, hashCodeSE, notifySE, notifyAllSE, toStringSE, waitSE, waitSE, waitSEprotected final Log logger
public void setThreadFactory(ThreadFactorySE threadFactory)
Java EE 7 または JSR-236 をサポートする他の管理環境では、JNDI に配置された ManagedThreadFactory を指定することを検討してください。デフォルトでは、"java:comp/DefaultManagedThreadFactory" にあります。検索に便利なように、XML の "jee:jndi-lookup" 名前空間要素またはプログラムによる JndiLocatorDelegate を使用します。または、マネージスレッドファクトリが見つからない場合は、Spring の DefaultManagedAwareThreadFactory をローカルスレッドにフォールバックすることを検討してください。
public void setThreadNamePrefix(StringSE threadNamePrefix)
CustomizableThreadCreatorCustomizableThreadCreator の setThreadNamePrefix public void setRejectedExecutionHandler(RejectedExecutionHandlerSE rejectedExecutionHandler)
public void setWaitForTasksToCompleteOnShutdown(boolean waitForJobsToCompleteOnShutdown)
デフォルトは "false" であり、進行中のタスクを中断してキューをクリアすることですぐにシャットダウンします。シャットダウンフェーズが長くなりますが、完全に完了したタスクを希望する場合は、このフラグを "true" に切り替えます。
Spring のコンテナーのシャットダウンは、進行中のタスクが完了するまで継続することに注意してください。このエグゼキューターがコンテナーの残りの部分がシャットダウンし続ける前にブロックしてタスクの終了を待つようにする場合 - 例タスクに必要な他のリソースを維持するために、このプロパティの代わりに、またはこのプロパティに加えて、"awaitTerminationSeconds" プロパティを設定します。
public void setAwaitTerminationSeconds(int awaitTerminationSeconds)
デフォルトでは、このエグゼキューターはタスクの終了をまったく待ちません。すぐにシャットダウンして、進行中のタスクを中断し、残りのタスクキューをクリアします。または、"waitForTasksToCompleteOnShutdown" フラグが true に設定されている場合、キュー内のすべての残りのタスクだけでなく、進行中のすべてのタスクを並行して完全に実行し続けます。コンテナーの残りの部分にシャットダウンします。
いずれの場合でも、このプロパティを使用して終了待ち期間を指定すると、このエグゼキューターはタスクの終了を指定された時間(最大)待機します。経験則として、"waitForTasksToCompleteOnShutdown" を同時に true に設定する場合は、キュー内の残りのすべてのタスクが実行されるため、ここで大幅に高いタイムアウトを指定します。デフォルトのシャットダウン動作とは対照的に現在、スレッドの中断に反応しないタスクを実行しています。
public void setBeanName(StringSE name)
BeanNameAware 通常の Bean プロパティの設定後、ただし InitializingBean.afterPropertiesSet() またはカスタム init メソッドなどの init コールバックの前に呼び出されます。
BeanNameAware の setBeanName name - ファクトリ内の Bean の名前。この名前は、ファクトリで使用される実際の Bean 名であり、最初に指定した名前とは異なる場合があります。特に内部 Bean 名の場合、実際の Bean 名は "#..." サフィックスを追加することで一意になります。必要に応じて、BeanFactoryUtils.originalBeanName(String) メソッドを使用して、元の Bean 名(サフィックスなし)を抽出します。public void afterPropertiesSet()
initialize() を呼び出します。InitializingBean の afterPropertiesSet initialize()public void initialize()
protected abstract ExecutorServiceSE initializeExecutor(ThreadFactorySE threadFactory, RejectedExecutionHandlerSE rejectedExecutionHandler)
ExecutorServiceSE インスタンスを作成します。afterPropertiesSet によって呼び出されます。threadFactory - 使用する ThreadFactoryrejectedExecutionHandler - 使用する RejectedExecutionHandlerafterPropertiesSet()public void destroy()
shutdown を呼び出します。DisposableBean の destroy shutdown()public void shutdown()