0
我正在使用Quartz JDBC Job store(org.quartz.impl.jdbcjobstore.JobStoreTX)和MySQL來調度作業。測試Quartz JDBC Job Store
我有以下設置:
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
我能安排工作與石英從數據庫拿起作業時的時間到期。
有一些工作可以安排在未來3到4周。我如何測試這個?
現在我去手動更改系統時間。例如,如果我安排工作在2/5/2013 12:45 PM上運行,那麼我將系統時鐘時間更改爲2/5/2013 12:43 PM,然後等待幾分鐘以查看是否Quartz從數據庫中提取工作。這對我來說很好。
我不想在每次需要測試時更改系統時鐘時間。有一個更好的方法嗎?
我注意到,頻繁更改系統時間有時會使用Quartz混淆,但某些作業不會被拾取。
您是否真的必須安排這麼遠的工作?爲什麼你不能安排工作在幾秒鐘/分鐘的時間內運行?測試日程安排是不夠的嗎? – harpun
您可以檢查getNextFireTime()。我認爲你必須相信,如果Quartz計劃得當,Quartz將會做正確的事情。您仍然需要測試計劃運行的作業是否正常工作。 –
@harpun - 我能夠測試幾分鐘/幾小時和幾天的工作。我必須支持該功能長達一個月。我想測試所有可能的場景,包括那些計劃在3周內運行的場景。 – serverfaces