0

ジョブのスケジューリングに Quartz JDBC ジョブ ストア (org.quartz.impl.jdbcjobstore.JobStoreTX) と MySQL を使用しています。

私は次の設定をしています:

org.quartz.jobStore.class=org.quartz.impl.jdbcjobstore.JobStoreTX
org.quartz.jobStore.driverDelegateClass=org.quartz.impl.jdbcjobstore.StdJDBCDelegate
org.quartz.jobStore.dataSource=foo
org.quartz.dataSource.foo.driver=com.mysql.jdbc.Driver
org.quartz.dataSource.foo.URL=jdbc:mysql://localhost:3306/myDB
org.quartz.dataSource.foo.user=user
org.quartz.dataSource.foo.password=*****
org.quartz.dataSource.foo.maxConnections=5
org.quartz.dataSource.foo.validateOnCheckout=true
org.quartz.dataSource.foo.validationQuery=SELECT 1

時間になったら、Quartz でデータベースからジョブを取得してジョブをスケジュールできます。

3 ~ 4 週間先までスケジュールできるジョブがいくつかあります。これをテストするにはどうすればよいですか?

現在、システム時刻を手動で変更しています。たとえば、ジョブを 2013 年 2 月 5 日午後 12 時 45 分に実行するようにスケジュールした場合、システム クロックの時刻を 2013 年 2 月 5 日午後 12 時 43 分に変更し、数分待ってQuartz は DB からジョブを取得します。これは私にとってはうまくいきます。

テストが必要になるたびにシステムクロックの時刻を変更したくありません。これを行うより良い方法はありますか?

システム時刻を頻繁に変更すると、Quartz が混乱し、一部のジョブが取得されないことがあることに気付きました。

4

1 に答える 1

0

Quartz TriggerUtilsメソッドを使用して、将来の実行が期待どおりかどうかを調べることができます。

より具体的には、このcomputeFireTimes(org.quartz.spi.OperableTrigger trigg, Calendar cal, int numTimes)メソッドは、トリガーの次の起動時間である日付のリストを返します。

これが役立つことを願っています。

于 2013-01-25T19:26:47.927 に答える