2012-09-04 103 views
3

我需要在午夜運行一個CRON,它會自動爲在我公司工作的人員分配一些週期性任務。我面臨的情況是,我的公司在美國各地基本上都設有辦事處,其中有超過1個時區。所以基本上我會希望按照時區特定來完成這項工作。另外,我的服務器正在運行UTC。在Java Scheduler中設置多個時區Quartz Cron

如果我設置EDT作爲鹼時區(其爲後面UTC 4小時),並設置CRON在午夜被觸發,CRON時間將是

0 0 4 * *?

,我認爲可能是可能的方式是,而不是設置它只是一次,我將它設置爲在以下時間觸發7次:

0 0 4 * * ? [EDT] 
0 0 5 * * ? [CDT] 
0 0 6 * * ? [MDT] 
0 0 7 * * ? [PDT] 
0 0 8 * * ? [AKDT] 
0 0 9 * * ? [HADT] 
0 0 10 * * ? [HST] 

所以一旦任何它觸發,它會檢查我的哪個辦公室來到這個時區,並且會完成這項工作。

這可能工作,因爲我相信,但有沒有其他人有任何其他的選擇,而不是這個? 另外,我需要修正夏令時,我不確定我會怎麼做。

回答

1

我認爲最簡單的方法很可能是有跑一次一小時,然後通過走遍辦公室一個作業,發現任何人現在在以後的日子裏,以一當作業最後跑了。 (當然,您需要保持這一點,當然還有辦公室的時區)。這將爲您處理DST問題,並且還可以處理調度程序停機一段時間的情況 - 下次它會趕上所有錯過的辦公室。

+0

感謝Jon,這似乎是解決問題的最好方法,只是問題在於石英時序在屬性文件中看起來有點麻煩。我正在與它一起。 –