我有一個(gè)在美國(guó)(所有時(shí)區(qū))運(yùn)營(yíng)的客戶。我需要在每個(gè)時(shí)區(qū)的凌晨 2 點(diǎn)運(yùn)行一個(gè)任務(wù)。此任務(wù)需要時(shí)區(qū)作為輸入以獲取僅與該區(qū)域相關(guān)的記錄。@Scheduled 注釋具有timezone價(jià)值,一次在一個(gè)時(shí)區(qū)起作用。我不想通過(guò)為每個(gè)區(qū)域設(shè)置 4 個(gè)單獨(dú)的任務(wù)來(lái)復(fù)制代碼。
3 回答

RISEBY
TA貢獻(xiàn)1856條經(jīng)驗(yàn) 獲得超5個(gè)贊
使用帶有注釋@Scheduled 的區(qū)域?qū)傩?,?.0 版添加)見(jiàn)下面的示例
@Scheduled(cron = "0 10 19 * * FRI", zone = "CET")

嚕嚕噠
TA貢獻(xiàn)1784條經(jīng)驗(yàn) 獲得超7個(gè)贊
一個(gè)愚蠢但可行的解決方案是將邏輯的內(nèi)容放在另一個(gè)函數(shù)中,并在具有不同日程設(shè)置的 2 個(gè)不同函數(shù)中調(diào)用日程
@Scheduled(cron = "0 10 19 * * FRI", zone = "CET")
public void scheduleCetTask() {
// code to get parameters
commonTask(parameters);
}
@Scheduled(cron = "0 10 19 * * FRI", zone = "ABC")
public void scheduleAbcTask() {
// code to get parameters
commonTask(parameters);
}
public void commonTask(parameters) {
}
添加回答
舉報(bào)
0/150
提交
取消