2014-01-07 23 views
0

我在Windows服務中使用Quartz.dll以某些指定的時間間隔觸發某些Web服務。石英調度程序在系統日期更改時自動觸發

對於某些測試目的,我手動將日期更改爲明天,這會自動觸發某些Web服務。

例如: - 我設置了一個觸發器,每天上午12:30運行,我今天(上午6:30)手動更改日期(7/1/2014)到明天日期,所以系統時間現在在8/1/2014 06:30:00。上午1點8分12點30分觸發的觸發器自動觸發。

這是預期的行爲?

回答

2

我懷疑當你改變系統日期時,石英意識到它已經錯過了應該在2014年7月1日上午12:30觸發的工作,並且因此會立即啓動該工作。

+0

好猜。儘管手動更改系統日期在生產環境中並不現實,但有什麼方法可以避免這種情況發生,而不會停止服務...... – CSharped

+0

Quartz只知道它錯過了它的着火時間,它不知道爲什麼會這樣發生。例如,系統可能已經停機24小時。查看石英失火指示,以告訴調度員如果錯過了火災時間該怎麼做。一篇很好的文章解釋石英失火指令可以在這裏找到(http://java.dzone.com/articles/quartz-scheduler-misfire)。 –