我想利用 spring cron 注釋在每天三個不同的會話中的特定時間間隔內(nèi)每分鐘運行一次特定服務(wù)。例如:第一節(jié):上午 8:15 - 下午 12:36,第二節(jié):中午 12:40 - 下午 3:11,第三節(jié):下午 3:20 - 下午 4:35。如何為這個特定示例設(shè)置 cron 表達式?我已經(jīng)在 Oracle 文檔中檢查過這個,這是我遇到的最接近的實現(xiàn)"0 0/5 14,18 * * ? 從下午 2:00 開始到下午 2:55 結(jié)束,每 5 分鐘觸發(fā)一次,從下午 6:00 開始到下午 6:55 結(jié)束,每 5 分鐘觸發(fā)一次,每天“不同時間和不同會話之間的間隔沒有實例@Scheduled(cron = "0 29-35 11,12 * * ?") public static void testCron() { DateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss"); Date date = new Date(); System.out.println("testing cron per minute " + dateFormat.format(date)); }從上面的測試代碼來看,它會在 11:29 和 11:35 之間打印評論,但不會在 11:35 之后打印評論。下一個打印輸出是從 12:29 開始,依此類推。
2 回答

千萬里不及你
TA貢獻1784條經(jīng)驗 獲得超9個贊
為此,您可以使用多個@Scheduled注釋來注釋您的方法,同時提高議程的可讀性和豐富性。
@Scheduled(cron = "0 15-36 8-12 * * ?")
@Scheduled(cron = "0 40-11 12-15 * * ?")
@Scheduled(cron = "0 20-35 15-16 * * ?")
?public static void testCron() {
? ?DateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
? ?Date date = new Date();?
? ?System.out.println("testing cron per minute " + dateFormat.format(date)); }

天涯盡頭無女友
TA貢獻1831條經(jīng)驗 獲得超9個贊
您可以使用以下表達式:
@Scheduled(cron = "0 1-2 * * * *", fixedRate = 5000)
具有此表達式的方法從 01:00 到 02:00 每 5 分鐘運行一次。修改此表達式并將其用于兩種不同的方法。每個人都應(yīng)該調(diào)用您的 testCron 方法
添加回答
舉報
0/150
提交
取消