クラス ScheduledExecutorFactoryBean
- 実装済みのインターフェース一覧:
SerializableSE、ThreadFactorySE、Aware、BeanNameAware、DisposableBean、FactoryBean<ScheduledExecutorServiceSE>、InitializingBean
ScheduledExecutorServiceSE(デフォルト: ScheduledThreadPoolExecutorSE)をセットアップし、Bean 参照用に公開する FactoryBean。ScheduledExecutorTasks の登録を許可し、初期化時に ScheduledExecutorServiceSE を自動的に開始し、コンテキストの破棄時にキャンセルします。起動時にタスクの静的登録のみが必要なシナリオでは、アプリケーションコードで ScheduledExecutorServiceSE インスタンス自体にアクセスする必要はまったくありません。ScheduledExecutorFactoryBean は、ライフサイクル統合に使用されています。
別の方法として、コンストラクターインジェクションを使用して ScheduledThreadPoolExecutorSE インスタンスを直接セットアップするか、ExecutorsSE クラスを指すファクトリメソッド定義を使用することができます。 これは特に、構成クラスの一般的な @Bean メソッドに強くお勧めします。この FactoryBean バリアントでは、ScheduledExecutorService の代わりに FactoryBean 型を強制的に返すことになります。
ScheduledExecutorServiceSE は、実行ごとに新しいジョブをインスタンス化する Quartz とは対照的に、繰り返し実行間で共有される RunnableSE インスタンスを使用することに注意してください。
警告 : ネイティブ ScheduledExecutorServiceSE を介して送信された RunnablesSE は、例外をスローすると、実行スケジュールから削除されます。このような例外の後も実行を継続する場合は、この FactoryBean の "continueScheduledExecutionAfterException" プロパティを "true" に切り替えます。
フィールド概要
クラス org.springframework.scheduling.concurrent.ExecutorConfigurationSupport から継承されたフィールド
loggerインターフェース org.springframework.beans.factory.FactoryBean から継承されたフィールド
OBJECT_TYPE_ATTRIBUTEコンストラクター概要
コンストラクター方法の概要
修飾子と型メソッド説明protected ScheduledExecutorServiceSEcreateExecutor(int poolSize, ThreadFactorySE threadFactory, RejectedExecutionHandlerSE rejectedExecutionHandler) 新しいScheduledExecutorServiceSE インスタンスを作成します。このファクトリによって管理されるオブジェクトのインスタンス(おそらく共有または独立)を返します。ClassSE<? extends ScheduledExecutorServiceSE>この FactoryBean が作成するオブジェクトの型を返します。事前にわからない場合はnullを返します。protected RunnableSE特定のタスクをスケジュールする実際の Runnable を決定します。protected ExecutorServiceSEinitializeExecutor(ThreadFactorySE threadFactory, RejectedExecutionHandlerSE rejectedExecutionHandler) ターゲットExecutorServiceSE インスタンスを作成します。booleanこのファクトリによって管理されるオブジェクトはシングルトンですか? つまり、FactoryBean.getObject()は常に同じオブジェクト(キャッシュ可能な参照)を返しますか?protected voidregisterTasks(ScheduledExecutorTask[] tasks, ScheduledExecutorServiceSE executor) 指定されたScheduledExecutorTasksを指定されたScheduledExecutorServiceSE に登録します。voidsetContinueScheduledExecutionAfterException(boolean continueScheduledExecutionAfterException) 例外をスローした後、スケジュールされたタスクの実行を継続するかどうかを指定します。voidsetExposeUnconfigurableExecutor(boolean exposeUnconfigurableExecutor) この FactoryBean が、作成されたエグゼキューターの構成不可能なデコレーターを公開するかどうかを指定します。voidsetPoolSize(int poolSize) ScheduledExecutorService のプールサイズを設定します。voidsetRemoveOnCancelPolicy(boolean removeOnCancelPolicy) ScheduledThreadPoolExecutorSE でキャンセル時に削除モードを設定します。voidsetScheduledExecutorTasks(ScheduledExecutorTask... scheduledExecutorTasks) ScheduledExecutorTask オブジェクトのリストを、この FactoryBean が作成する ScheduledExecutorService に登録します。クラス org.springframework.scheduling.concurrent.ExecutorConfigurationSupport から継承されたメソッド
afterPropertiesSet, cancelRemainingTask, destroy, initialize, setAwaitTerminationMillis, setAwaitTerminationSeconds, setBeanName, setRejectedExecutionHandler, setThreadFactory, setThreadNamePrefix, setWaitForTasksToCompleteOnShutdown, shutdownクラス org.springframework.scheduling.concurrent.CustomizableThreadFactory から継承されたメソッド
newThreadクラス org.springframework.util.CustomizableThreadCreator から継承されたメソッド
createThread, getDefaultThreadNamePrefix, getThreadGroup, getThreadNamePrefix, getThreadPriority, isDaemon, nextThreadName, setDaemon, setThreadGroup, setThreadGroupName, setThreadPriority
コンストラクターの詳細
ScheduledExecutorFactoryBean
public ScheduledExecutorFactoryBean()
方法の詳細
setPoolSize
public void setPoolSize(int poolSize) ScheduledExecutorService のプールサイズを設定します。デフォルトは 1 です。setScheduledExecutorTasks
ScheduledExecutorTask オブジェクトのリストを、この FactoryBean が作成する ScheduledExecutorService に登録します。各 ScheduledExecutorTask の設定に応じて、ScheduledExecutorService のスケジュール方法の 1 つを介して登録されます。- 関連事項:
ScheduledExecutorService.schedule(java.lang.Runnable, long, java.util.concurrent.TimeUnit)SEScheduledExecutorService.scheduleWithFixedDelay(java.lang.Runnable, long, long, java.util.concurrent.TimeUnit)SEScheduledExecutorService.scheduleAtFixedRate(java.lang.Runnable, long, long, java.util.concurrent.TimeUnit)SE
setRemoveOnCancelPolicy
public void setRemoveOnCancelPolicy(boolean removeOnCancelPolicy) ScheduledThreadPoolExecutorSE でキャンセル時に削除モードを設定します。デフォルトは
falseです。trueに設定されている場合、ターゲットエグゼキューターはキャンセル時に削除モードに切り替えられます(可能な場合は、ソフトフォールバックが使用されます)。setContinueScheduledExecutionAfterException
public void setContinueScheduledExecutionAfterException(boolean continueScheduledExecutionAfterException) 例外をスローした後、スケジュールされたタスクの実行を継続するかどうかを指定します。デフォルトは "false" で、
ScheduledExecutorServiceSE のネイティブの動作に一致します。各タスクの例外のない実行のためにこのフラグを "true" に切り替え、正常に実行された場合のようにスケジュールされた実行を継続します。setExposeUnconfigurableExecutor
public void setExposeUnconfigurableExecutor(boolean exposeUnconfigurableExecutor) この FactoryBean が、作成されたエグゼキューターの構成不可能なデコレーターを公開するかどうかを指定します。デフォルトは "false" で、生のエグゼキューターを Bean 参照として公開します。このフラグを "true" に切り替えて、クライアントがエグゼキューターの構成を変更できないようにします。
initializeExecutor
protected ExecutorServiceSE initializeExecutor(ThreadFactorySE threadFactory, RejectedExecutionHandlerSE rejectedExecutionHandler) クラスからコピーされた説明:ExecutorConfigurationSupportターゲットExecutorServiceSE インスタンスを作成します。afterPropertiesSetによって呼び出されます。- 次で指定:
- クラス
ExecutorConfigurationSupportのinitializeExecutor - パラメーター:
threadFactory- 使用する ThreadFactoryrejectedExecutionHandler- 使用する RejectedExecutionHandler- 戻り値:
- 新しい ExecutorService インスタンス
- 関連事項:
createExecutor
protected ScheduledExecutorServiceSE createExecutor(int poolSize, ThreadFactorySE threadFactory, RejectedExecutionHandlerSE rejectedExecutionHandler) 新しいScheduledExecutorServiceSE インスタンスを作成します。デフォルト実装は
ScheduledThreadPoolExecutorSE を作成します。サブクラスでオーバーライドして、カスタムScheduledExecutorServiceSE インスタンスを提供できます。- パラメーター:
poolSize- 指定されたプールサイズthreadFactory- 使用する ThreadFactoryrejectedExecutionHandler- 使用する RejectedExecutionHandler- 戻り値:
- 新しい ScheduledExecutorService インスタンス
- 関連事項:
registerTasks
指定されたScheduledExecutorTasksを指定されたScheduledExecutorServiceSE に登録します。- パラメーター:
tasks- 指定された ScheduledExecutorTasks (空になることはありません)executor- タスクを登録する ScheduledExecutorService
getRunnableToSchedule
特定のタスクをスケジュールする実際の Runnable を決定します。例外をキャッチしてログに記録する
DelegatingErrorHandlingRunnableでタスクの Runnable をラップします。必要に応じて、"continueScheduledExecutionAfterException"フラグに従って例外を抑制します。- パラメーター:
task- スケジュールする ScheduledExecutorTask- 戻り値:
- スケジュールする実際の Runnable (デコレータかもしれません)
getObject
インターフェースからコピーされた説明:FactoryBeanこのファクトリによって管理されるオブジェクトのインスタンス(おそらく共有または独立)を返します。BeanFactoryと同様に、これにより、シングルトンとプロトタイプの両方のデザインパターンをサポートできます。この FactoryBean が呼び出し時にまだ完全に初期化されていない場合(たとえば、循環参照に関係しているため)、対応する
FactoryBeanNotInitializedExceptionをスローします。Spring 2.0 以降、FactoryBeans は
nullオブジェクトを返すことができます。ファクトリはこれを通常の値として使用します。この場合、FactoryBeanNotInitializedException はスローされません。FactoryBean の実装では、必要に応じて FactoryBeanNotInitializedException 自体をすぐにスローすることをお勧めします。- 次で指定:
- インターフェース
FactoryBean<ScheduledExecutorServiceSE>内のgetObject - 戻り値:
- Bean のインスタンス (
nullにすることができます) - 関連事項:
getObjectType
インターフェースからコピーされた説明:FactoryBeanこの FactoryBean が作成するオブジェクトの型を返します。事前にわからない場合はnullを返します。これにより、たとえばオートワイヤーなどで、オブジェクトをインスタンス化せずに特定の型の Bean を確認できます。
シングルトンオブジェクトを作成している実装の場合、このメソッドはシングルトンの作成を可能な限り回避しようとします。むしろ、事前に型を推定する必要があります。プロトタイプの場合、ここで意味のある型を返すこともお勧めします。
このメソッドは、この FactoryBean が完全に初期化される前に呼び出すことができます。初期化中に作成された状態に依存しないでください。もちろん、利用可能な場合はそのような状態を引き続き使用できます。
注意 : オートワイヤーは、ここで
nullを返す FactoryBeans を単に無視します。FactoryBean の現在の状態を使用して、このメソッドを適切に実装することを強くお勧めします。- 次で指定:
- インターフェース
FactoryBean<ScheduledExecutorServiceSE>内のgetObjectType - 戻り値:
- この FactoryBean が作成するオブジェクトの型、または呼び出し時に不明な場合は
null - 関連事項:
isSingleton
public boolean isSingleton()インターフェースからコピーされた説明:FactoryBeanこのファクトリによって管理されるオブジェクトはシングルトンですか? つまり、FactoryBean.getObject()は常に同じオブジェクト(キャッシュ可能な参照)を返しますか?注意 : FactoryBean がシングルトンオブジェクトを保持することを示す場合、
getObject()から返されたオブジェクトは所有 BeanFactory によってキャッシュされる可能性があります。FactoryBean が常に同じ参照を公開しない限り、trueを返さないでください。FactoryBean 自体のシングルトンステータスは、通常、所有する BeanFactory によって提供されます。通常、そこではシングルトンとして定義する必要があります。
注意 :
falseを返すこのメソッドは、返されるオブジェクトが独立したインスタンスであることを必ずしも示しません。拡張SmartFactoryBeanインターフェースの実装は、SmartFactoryBean.isPrototype()メソッドを通じて独立したインスタンスを明示的に示す場合があります。この拡張インターフェースを実装しないプレーンなFactoryBean実装は、isSingleton()実装がfalseを返す場合、常に独立したインスタンスを返すと単純に想定されます。FactoryBeanは通常シングルトンインスタンスを管理するため、デフォルトの実装ではtrueが返されます。- 次で指定:
- インターフェース
FactoryBean<ScheduledExecutorServiceSE>内のisSingleton - 戻り値:
- 公開されたオブジェクトがシングルトンかどうか
- 関連事項: