测试Quartz JDBC Job Store

时间:2013-01-22 21:27:31

标签: jdbc quartz-scheduler job-scheduling

我正在使用Quartz JDBC Job store(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运行,那么我将系统时钟时间更改为2/5/2013 12:43 PM,然后等待几分钟以查看是否Quartz从数据库中获取工作。这对我来说很好。

每次我需要测试时,我都不想更改系统时钟时间。有更好的方法吗?

我注意到经常更改系统时间有时会使用Quartz,而某些工作没有被提取。

1 个答案:

答案 0 :(得分:0)

您可以使用Quartz TriggerUtils方法来确定未来的执行是否是预期的。

更具体地说,computeFireTimes(org.quartz.spi.OperableTrigger trigg, Calendar cal, int numTimes)方法返回一个日期列表,这些日期是触发器的下一个触发时间。

我希望这会有所帮助。

相关问题