[英]Spring-Boot one @Scheduled task using multiple cron expressions from yaml file
[英]Spring-Boot @Scheduled Cron expressions to make slight delay between two tasks?
我正在使用Spring-Boot @Scheduled Cron緩存從持久性存儲中檢索到的數據。
我有兩個不同的任務,
Task1將每15分鍾運行一次。 我將cron設置為
@Scheduled(cron = "0 0/15 * * * *")
所以頻率是
12:00:00
12:15:00
12:30:00
現在我想在Task1之前10秒運行Task2
即
11:59:50
12:14:50
12:29:50
我正在嘗試這個表情
@Scheduled(cron = "50 0/14 * * * *")
但它每隔14分鍾觸發一次。
誰能建議我解決問題的解決方案?
這將在Task1之前10秒運行Task2:
@Scheduled(cron = "50 14/15 * * * *")
例如,它將在11:59:50、12:14:50、12:29:50、12:44:50、12:59:50上運行...
我建議您使用fixedRate
或fixedDelay
代替cron表達式。 您的要求不是很復雜,因此使用cron
毫無意義。
固定延遲 -特別控制最后一次執行完成時的下一個執行時間。
固定速率 -使Spring定期運行任務,即使最后一次調用可能仍在運行-無需等待上一次執行的完成。
使用示例:
@Scheduled(fixedDelay = 900000) // 15 minutes
public void taskOne() {
...
}
@Scheduled(fixedDelay = 890000) // 14 minutes 50 seconds
public void taskTwo() {
...
}
嘗試:
@Scheduled(cron = "50 59/15 * * * *")
說明:
50 59/15 * * * * = at 50 seconds, every hour at 59 minute, every 15 minutes
50 59/15 * * * * = starting at 11:59:50 for every 15 minutes.
您的問題是*/X
表示“每個X”。 所以0/14
表示每14分鍾一次。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.