クラス SchedulerFactoryBean
- 実装されたすべてのインターフェース:
Aware
、BeanNameAware
、DisposableBean
、FactoryBean<Scheduler>
、InitializingBean
、ApplicationContextAware
、Lifecycle
、Phased
、ResourceLoaderAware
、SmartLifecycle
Scheduler
を作成および構成し、そのライフサイクルを Spring アプリケーションコンテキストの一部として管理し、依存性注入のための Bean 参照としてスケジューラを公開する FactoryBean
。JobDetails、カレンダー、トリガーの登録を可能にし、初期化時にスケジューラーを自動的に開始し、破棄時にスケジューラーをシャットダウンします。起動時にジョブの静的登録のみが必要なシナリオでは、アプリケーションコードでスケジューラインスタンス自体にアクセスする必要はありません。
実行時にジョブを動的に登録するには、この SchedulerFactoryBean への Bean 参照を使用して、Quartz スケジューラ(org.quartz.Scheduler
)に直接アクセスします。これにより、新しいジョブとトリガーを作成したり、スケジューラ全体を制御および監視したりできます。
繰り返し実行間で共有される TimerTask インスタンスを使用するタイマーとは対照的に、Quartz は実行ごとに新しいジョブをインスタンス化することに注意してください。JobDetail 記述子のみが共有されます。
永続的なジョブを使用する場合は、Spring で管理された(またはプレーンな JTA)トランザクション内でスケジューラのすべての操作を実行することを強くお勧めします。そうでなければ、データベースのロックは適切に機能せず、壊れる可能性さえあります。(詳細については、setDataSource
javadoc を参照してください。)
トランザクション実行を実現するための推奨される方法は、ビジネスファサードレベルで宣言型トランザクションの境界を定めることです。これは、これらのスコープ内で実行されるスケジューラー操作に自動的に適用されます。または、スケジューラ自体にトランザクションアドバイスを追加することもできます。
Spring 4.1 の時点で、Quartz 2.1.4 以降と互換性があります。
- 導入:
- 18.02.2004
- 作成者:
- Juergen Hoeller
- 関連事項:
フィールドサマリー
クラス org.springframework.scheduling.quartz.SchedulerAccessor から継承されたフィールド
logger, resourceLoader
インターフェース org.springframework.beans.factory.FactoryBean から継承されたフィールド
OBJECT_TYPE_ATTRIBUTE
インターフェース org.springframework.context.SmartLifecycle から継承されたフィールド
DEFAULT_PHASE
コンストラクターのサマリー
メソッドのサマリー
修飾子と型メソッド説明void
protected Scheduler
createScheduler
(SchedulerFactory schedulerFactory, StringSE schedulerName) 指定されたファクトリとスケジューラー名のスケジューラーインスタンスを作成します。void
destroy()
Bean ファクトリシャットダウン時に Quartz スケジューラをシャットダウンし、スケジュールされたすべてのジョブを停止します。static DataSourceSE
LocalDataSourceJobStore
で使用される、現在構成されている Quartz スケジューラのDataSource
SE を返します。static DataSourceSE
LocalDataSourceJobStore
で使用される、現在構成されている Quartz スケジューラの非トランザクションDataSource
SE を返します。static ResourceLoader
ResourceLoaderClassLoadHelper
で使用される、現在構成されている Quartz スケジューラのResourceLoader
を返します。static ExecutorSE
LocalTaskExecutorThreadPool
で使用される、現在構成されている Quartz スケジューラのExecutor
SE を返します。このファクトリによって管理されるオブジェクトのインスタンス(おそらく共有または独立)を返します。この FactoryBean が作成するオブジェクトの型、または事前に不明な場合はnull
を返します。int
getPhase()
このスケジューラーが開始および停止されるフェーズを返します。操作するスケジューラを決定するテンプレートメソッド。boolean
このスケジューラーが自動起動用に構成されているかどうかを返します。boolean
このコンポーネントが現在実行されているかどうかを確認します。boolean
このファクトリによって管理されるオブジェクトはシングルトンですか? つまり、FactoryBean.getObject()
は常に同じオブジェクト(キャッシュ可能な参照)を返しますか?void
setApplicationContext
(ApplicationContext applicationContext) このオブジェクトが実行される ApplicationContext を設定します。void
setApplicationContextSchedulerContextKey
(StringSE applicationContextSchedulerContextKey) SchedulerContext で公開するApplicationContext
参照のキーを設定します (例: "applicationContext" )。void
setAutoStartup
(boolean autoStartup) 初期化後にスケジューラーを自動的に開始するかどうかを設定します。void
setBeanName
(StringSE name) この Bean を作成した Bean ファクトリで Bean の名前を設定します。void
setConfigLocation
(Resource configLocation) Quartz プロパティ構成ファイルの場所を、たとえばクラスパスリソース "classpath:quartz.properties" として設定します。void
setDataSource
(DataSourceSE dataSource) スケジューラが使用するデフォルトのDataSource
SE を設定します。void
setExposeSchedulerInRepository
(boolean exposeSchedulerInRepository) QuartzSchedulerRepository
で Spring 管理のScheduler
インスタンスを公開するかどうかを設定します。void
setJobFactory
(JobFactory jobFactory) このスケジューラに使用する QuartzJobFactory
を設定します。void
setNonTransactionalDataSource
(DataSourceSE nonTransactionalDataSource) 非トランザクションアクセスに使用するDataSource
SE を設定します。void
setPhase
(int phase) このスケジューラーを開始および停止するフェーズを指定します。void
setQuartzProperties
(PropertiesSE quartzProperties) "org.quartz.threadPool.class" などの Quartz プロパティを設定します。void
setSchedulerContextAsMap
(MapSE<StringSE, ?> schedulerContextAsMap) 指定されたマップを介してスケジューラコンテキストにオブジェクトを登録します。void
setSchedulerFactory
(SchedulerFactory schedulerFactory) 使用する外部 QuartzSchedulerFactory
インスタンスを設定します。void
setSchedulerFactoryClass
(ClassSE<? extends SchedulerFactory> schedulerFactoryClass) 使用する QuartzSchedulerFactory
実装を設定します。void
setSchedulerName
(StringSE schedulerName) org.quartz.scheduler.instanceName
プロパティの代わりに、SchedulerFactory を介して作成するスケジューラーの名前を設定します。void
setStartupDelay
(int startupDelay) 初期化後、スケジューラーを非同期で開始する前に待機する秒数を設定します。void
setTaskExecutor
(ExecutorSE taskExecutor) Spring 管理のExecutor
SE を Quartz バックエンドとして使用するように設定します。void
setWaitForJobsToCompleteOnShutdown
(boolean waitForJobsToCompleteOnShutdown) シャットダウン時に実行中のジョブが完了するのを待つかどうかを設定します。void
start()
このコンポーネントを起動します。protected void
startScheduler
(Scheduler scheduler, int startupDelay) "startupDelay" 設定を考慮して、Quartz スケジューラを起動します。void
stop()
このメソッドを返すとコンポーネントが完全に停止するように、通常は同期的にこのコンポーネントを停止します。クラス org.springframework.scheduling.quartz.SchedulerAccessor から継承されたメソッド
registerJobsAndTriggers, registerListeners, setCalendars, setGlobalJobListeners, setGlobalTriggerListeners, setJobDetails, setJobSchedulingDataLocation, setJobSchedulingDataLocations, setOverwriteExistingJobs, setResourceLoader, setSchedulerListeners, setTransactionManager, setTriggers
クラス java.lang.ObjectSE から継承されたメソッド
clone, equalsSE, finalize, getClass, hashCode, notify, notifyAll, toString, wait, waitSE, waitSE
インターフェース org.springframework.context.SmartLifecycle から継承されたメソッド
stop
フィールドの詳細
コンストラクターの詳細
SchedulerFactoryBean
public SchedulerFactoryBean()
メソッドの詳細
getConfigTimeResourceLoader
ResourceLoaderClassLoadHelper
で使用される、現在構成されている Quartz スケジューラのResourceLoader
を返します。このインスタンスは、対応するスケジューラの初期化の前に設定され、直後にリセットされます。構成時にのみ使用できます。
getConfigTimeTaskExecutor
LocalTaskExecutorThreadPool
で使用される、現在構成されている Quartz スケジューラのExecutor
SE を返します。このインスタンスは、対応するスケジューラの初期化の前に設定され、直後にリセットされます。構成時にのみ使用できます。
getConfigTimeDataSource
LocalDataSourceJobStore
で使用される、現在構成されている Quartz スケジューラのDataSource
SE を返します。このインスタンスは、対応するスケジューラの初期化の前に設定され、直後にリセットされます。構成時にのみ使用できます。
getConfigTimeNonTransactionalDataSource
LocalDataSourceJobStore
で使用される、現在構成されている Quartz スケジューラの非トランザクションDataSource
SE を返します。このインスタンスは、対応するスケジューラの初期化の前に設定され、直後にリセットされます。構成時にのみ使用できます。
setSchedulerFactory
使用する外部 QuartzSchedulerFactory
インスタンスを設定します。デフォルトは内部
StdSchedulerFactory
インスタンスです。このメソッドが呼び出されると、setSchedulerFactoryClass(java.lang.Class<? extends org.quartz.SchedulerFactory>)
によって指定されたクラス、およびsetConfigLocation(org.springframework.core.io.Resource)
、setQuartzProperties(java.util.Properties)
、setTaskExecutor(java.util.concurrent.Executor)
またはsetDataSource(javax.sql.DataSource)
によって指定された設定がオーバーライドされます。注意 : 外部で提供される
SchedulerFactory
インスタンスでは、setConfigLocation(org.springframework.core.io.Resource)
やsetQuartzProperties(java.util.Properties)
などのローカル設定は、ここでSchedulerFactoryBean
で無視され、外部SchedulerFactory
インスタンスが独自に初期化されることが期待されます。setSchedulerFactoryClass
使用する QuartzSchedulerFactory
実装を設定します。デフォルトは
StdSchedulerFactory
クラスで、quartz.jar
から標準のquartz.properties
を読み取ります。カスタム Quartz プロパティを適用するには、このローカルSchedulerFactoryBean
インスタンスで"configLocation"
や"quartzProperties"
などを指定します。setSchedulerName
org.quartz.scheduler.instanceName
プロパティの代わりに、SchedulerFactory を介して作成するスケジューラーの名前を設定します。指定しない場合、名前は Quartz プロパティ(
org.quartz.scheduler.instanceName
)または宣言されたSchedulerFactoryBean
Bean 名からフォールバックとして取得されます。setConfigLocation
Quartz プロパティ構成ファイルの場所を、たとえばクラスパスリソース "classpath:quartz.properties" として設定します。メモ: 必要なすべてのプロパティがこの Bean を介してローカルで指定されている場合、または Quartz のデフォルト構成に依存している場合は省略できます。
setQuartzProperties
"org.quartz.threadPool.class" などの Quartz プロパティを設定します。Quartz プロパティ構成ファイルの値をオーバーライドするため、またはローカルで必要なすべてのプロパティを指定するために使用できます。
setTaskExecutor
Spring 管理のExecutor
SE を Quartz バックエンドとして使用するように設定します。Quartz SPI を介してスレッドプールとして公開されます。ローカルの JDK ThreadPoolExecutor または CommonJ WorkManager を Quartz バックエンドとして割り当て、Quartz の手動スレッド作成を回避するために使用できます。
デフォルトでは、Quartz SimpleThreadPool が使用され、対応する Quartz プロパティを通じて構成されます。
setDataSource
スケジューラが使用するデフォルトのDataSource
SE を設定します。メモ: これが設定されている場合、意味のない二重構成を回避するために、Quartz 設定ではジョブストア "dataSource" を定義しないでください。また、"org.quartz.jobStore.class" プロパティも定義しないでください。(Spring の
LocalDataSourceJobStore
を明示的に定義することもできますが、このメソッドを使用する場合はこれがデフォルトです。)Quartz の Spring 固有のサブクラスの JobStoreCMT が使用されます。Spring で管理された(またはプレーンな JTA)トランザクション内でスケジューラのすべての操作を実行することを強くお勧めします。そうでなければ、データベースのロックは正しく機能せず、壊れる可能性さえあります(たとえば、トランザクションなしで Oracle のロックを取得しようとした場合)。
トランザクションおよび非トランザクションの両方の DataSource アクセスをサポートします。非 XA DataSource およびローカル Spring トランザクションの場合、単一の DataSource 引数で十分です。XA DataSource およびグローバル JTA トランザクションの場合、SchedulerFactoryBean の "nonTransactionalDataSource" プロパティを設定し、グローバルトランザクションに参加しない非 XA DataSource を渡す必要があります。
setNonTransactionalDataSource
非トランザクションアクセスに使用するDataSource
SE を設定します。これは、デフォルトの DataSource が常にトランザクションに参加する XA DataSource である場合にのみ必要です。このようなシナリオでは、その DataSource の非 XA バージョンを "nonTransactionalDataSource" として指定する必要があります。
これは、ローカル DataSource インスタンスおよび Spring トランザクションには関係ありません。単一のデフォルト DataSource を "dataSource" として指定するだけで十分です。
setSchedulerContextAsMap
指定されたマップを介してスケジューラコンテキストにオブジェクトを登録します。これらのオブジェクトは、このスケジューラで実行されるすべてのジョブで使用できます。メモ: JobDetail がデータベースに保持される永続的なジョブを使用する場合は、Spring 管理の Bean または ApplicationContext 参照を JobDataMap ではなく SchedulerContext に配置しないでください。
- パラメーター:
schedulerContextAsMap
- String キーと任意のオブジェクトを値として持つ Map (たとえば、Spring に管理された Bean)- 関連事項:
setApplicationContextSchedulerContextKey
public void setApplicationContextSchedulerContextKey(StringSE applicationContextSchedulerContextKey) SchedulerContext で公開するApplicationContext
参照のキーを設定します (例: "applicationContext" )。デフォルトはなしです。Spring ApplicationContext で実行している場合にのみ適用されます。メモ: JobDetail がデータベースに保持される永続ジョブを使用する場合は、ApplicationContext 参照を JobDataMap ではなく SchedulerContext に配置してください。
QuartzJobBean の場合、参照は Bean プロパティとしてジョブインスタンスに適用されます。そのシナリオでは、"applicationContext" 属性 は "setApplicationContext" メソッドに対応します。
Quartz 自体がジョブのライフサイクルを担当するため、ApplicationContextAware のような BeanFactory コールバックインターフェースは Quartz ジョブインスタンスに自動的に適用されないことに注意してください。
setJobFactory
このスケジューラに使用する QuartzJobFactory
を設定します。デフォルトは Spring の
AdaptableJobFactory
で、Runnable
SE オブジェクトと標準の QuartzJob
インスタンスをサポートします。このデフォルトはローカルスケジューラにのみ適用され、RemoteScheduler には適用されないことに注意してください(カスタム JobFactory の設定は Quartz ではサポートされていません)。ここで Spring の
SpringBeanJobFactory
のインスタンスを指定して(通常は内部 Bean 定義として)、指定したジョブデータマップとスケジューラコンテキストからジョブの Bean プロパティを自動的に設定します。- 導入:
- 2.0
- 関連事項:
setAutoStartup
public void setAutoStartup(boolean autoStartup) 初期化後にスケジューラーを自動的に開始するかどうかを設定します。デフォルトは "true" です。手動で起動できるようにするには、これを "false" に設定します。
isAutoStartup
public boolean isAutoStartup()このスケジューラーが自動起動用に構成されているかどうかを返します。"true" の場合、スケジューラーは、コンテキストがリフレッシュされた後、および開始遅延(ある場合)の後に開始されます。setPhase
public void setPhase(int phase) このスケジューラーを開始および停止するフェーズを指定します。起動順序は最低から最高に進み、シャットダウン順序はその逆です。デフォルトでは、この値はInteger.MAX_VALUE
です。つまり、このスケジューラーはできるだけ遅く開始し、できるだけ早く停止します。- 導入:
- 3.0
getPhase
public int getPhase()このスケジューラーが開始および停止されるフェーズを返します。- 次で指定:
- インターフェース
Phased
のgetPhase
- 次で指定:
- インターフェース
SmartLifecycle
のgetPhase
- 関連事項:
setStartupDelay
public void setStartupDelay(int startupDelay) 初期化後、スケジューラーを非同期で開始する前に待機する秒数を設定します。デフォルトは 0 です。これは、この Bean の初期化時に即時同期起動を意味します。これを 10 または 20 秒に設定することは、アプリケーション全体が起動する前にジョブを実行する必要がない場合に意味があります。
setExposeSchedulerInRepository
public void setExposeSchedulerInRepository(boolean exposeSchedulerInRepository) QuartzSchedulerRepository
で Spring 管理のScheduler
インスタンスを公開するかどうかを設定します。Spring が管理するスケジューラは通常、Spring コンテキスト内でのアクセスのみを目的としているため、デフォルトは "false" です。スケジューラをグローバルに公開するには、このフラグを "true" に切り替えます。この動作に依存する既存の Spring アプリケーションがない限り、これはお勧めしません。このようなグローバルな露出は、以前の Spring バージョンでは偶発的なデフォルトであったことに注意してください。これは Spring 2.5.6 で修正されています。
setWaitForJobsToCompleteOnShutdown
public void setWaitForJobsToCompleteOnShutdown(boolean waitForJobsToCompleteOnShutdown) シャットダウン時に実行中のジョブが完了するのを待つかどうかを設定します。デフォルトは "false" です。シャットダウンフェーズが長くなる代わりにジョブを完全に完了したい場合は、これを "true" に切り替えます。
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 オブジェクト- 関連事項:
afterPropertiesSet
インターフェースからコピーされた説明:InitializingBean
すべての Bean プロパティを設定し、BeanFactoryAware
、ApplicationContextAware
などを満たした後、包含BeanFactory
によって呼び出されます。このメソッドにより、Bean インスタンスは、すべての Bean プロパティが設定されたときに、その全体的な構成の検証と最終的な初期化を実行できます。
- 次で指定:
- インターフェース
InitializingBean
のafterPropertiesSet
- 例外:
ExceptionSE
- 構成の誤り(必須プロパティの設定の失敗など)の場合、またはその他の理由で初期化が失敗した場合
createScheduler
protected Scheduler createScheduler(SchedulerFactory schedulerFactory, @Nullable StringSE schedulerName) throws SchedulerException 指定されたファクトリとスケジューラー名のスケジューラーインスタンスを作成します。afterPropertiesSet()
によって呼び出されます。デフォルトの実装では、SchedulerFactory の
getScheduler
メソッドを呼び出します。カスタムスケジューラを作成するためにオーバーライドできます。- パラメーター:
schedulerFactory
- スケジューラを作成するファクトリschedulerName
- 作成するスケジューラの名前- 戻り値:
- スケジューラインスタンス
- 例外:
SchedulerException
- Quartz メソッドによってスローされた場合- 関連事項:
startScheduler
"startupDelay" 設定を考慮して、Quartz スケジューラを起動します。- パラメーター:
scheduler
- 開始するスケジューラstartupDelay
- スケジューラを非同期で開始する前に待機する秒数- 例外:
SchedulerException
getScheduler
クラスからコピーされた説明:SchedulerAccessor
操作するスケジューラを決定するテンプレートメソッド。サブクラスによって実装されます。- 次で指定:
- クラス
SchedulerAccessor
のgetScheduler
getObject
インターフェースからコピーされた説明:FactoryBean
このファクトリによって管理されるオブジェクトのインスタンス(おそらく共有または独立)を返します。BeanFactory
と同様に、これにより、シングルトンとプロトタイプの両方のデザインパターンをサポートできます。この FactoryBean が呼び出し時にまだ完全に初期化されていない場合(たとえば、循環参照に関係しているため)、対応する
FactoryBeanNotInitializedException
をスローします。Spring 2.0 以降、FactoryBeans は
null
オブジェクトを返すことができます。ファクトリはこれを通常の値として使用します。この場合、FactoryBeanNotInitializedException はスローされません。FactoryBean の実装では、必要に応じて FactoryBeanNotInitializedException 自体をすぐにスローすることをお勧めします。- 次で指定:
- インターフェース
FactoryBean<Scheduler>
のgetObject
- 戻り値:
- Bean のインスタンス (
null
にすることができます) - 関連事項:
getObjectType
インターフェースからコピーされた説明:FactoryBean
この FactoryBean が作成するオブジェクトの型、または事前に不明な場合はnull
を返します。これにより、たとえばオートワイヤーなどで、オブジェクトをインスタンス化せずに特定の型の Bean を確認できます。
シングルトンオブジェクトを作成している実装の場合、このメソッドはシングルトンの作成を可能な限り回避しようとします。むしろ、事前に型を推定する必要があります。プロトタイプの場合、ここで意味のある型を返すこともお勧めします。
このメソッドは、この FactoryBean が完全に初期化される前に呼び出すことができます。初期化中に作成された状態に依存しないでください。もちろん、利用可能な場合はそのような状態を引き続き使用できます。
注意 : オートワイヤーは、ここで
null
を返す FactoryBeans を単に無視します。FactoryBean の現在の状態を使用して、このメソッドを適切に実装することを強くお勧めします。- 次で指定:
- インターフェース
FactoryBean<Scheduler>
の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<Scheduler>
のisSingleton
- 戻り値:
- 公開されたオブジェクトがシングルトンかどうか
- 関連事項:
start
インターフェースからコピーされた説明:Lifecycle
このコンポーネントを起動します。コンポーネントがすでに実行されている場合は、例外をスローしないでください。
コンテナーの場合、これは適用されるすべてのコンポーネントに開始シグナルを伝播します。
- 次で指定:
- インターフェース
Lifecycle
のstart
- 例外:
SchedulingException
- 関連事項:
stop
インターフェースからコピーされた説明:Lifecycle
このメソッドを返すとコンポーネントが完全に停止するように、通常は同期的にこのコンポーネントを停止します。非同期停止動作が必要な場合は、SmartLifecycle
とそのstop(Runnable)
バリアントの実装を検討してください。この停止通知は破棄前に送信されるとは限らないことに注意してください。通常のシャットダウンでは、一般的な破棄コールバックが伝播される前に、
Lifecycle
Bean は最初に停止通知を受信します。ただし、コンテキストの存続期間中のホットリフレッシュまたは中断されたリフレッシュ試行では、特定の Bean の destroy メソッドが、停止シグナルを事前に考慮することなく呼び出されます。コンポーネントが実行されていない(まだ開始されていない)場合は、例外をスローしないでください。
コンテナーの場合、これは停止シグナルを適用するすべてのコンポーネントに伝播します。
- 次で指定:
- インターフェース
Lifecycle
のstop
- 例外:
SchedulingException
- 関連事項:
isRunning
インターフェースからコピーされた説明:Lifecycle
このコンポーネントが現在実行されているかどうかを確認します。コンテナーの場合、これは、適用されるすべてのコンポーネントが現在実行されている場合にのみ、
true
を返します。- 次で指定:
- インターフェース
Lifecycle
のisRunning
- 戻り値:
- コンポーネントが現在実行中かどうか
- 例外:
SchedulingException
destroy
Bean ファクトリシャットダウン時に Quartz スケジューラをシャットダウンし、スケジュールされたすべてのジョブを停止します。- 次で指定:
- インターフェース
DisposableBean
のdestroy
- 例外:
SchedulerException