我正在使用 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 运行,那么我将系统时钟时间更改为 2013 年 2 月 5 日下午 12:43,然后等待几分钟看看是否Quartz 接手了 DB 的工作。这对我来说很好。
我不想每次需要测试时都更改系统时钟时间。有一个更好的方法吗?
我注意到经常更改系统时间有时会使 Quartz 搞砸一些工作没有得到处理。