[英]How to reset scheduled (@Scheduled) in spring boot
我有 spring 啟動應用程序,我需要每 20 秒刷新一次,所以我創建了這個:
@Scheduled(cron="*/20 * * * * *")
@GetMapping("/refresh")
public void refresh(){
letterServiceI.refreshQueue();
}
它工作得很好,但是當我向數據庫添加行並且在它為空之前我想再次將計時器重置為 20 秒,有沒有辦法做到這一點?
@Override
public Letter add(String name, String content, String pin) {
if (letterRepositoryI.checkIfNotEmpty().isEmpty()){
//if empty -> reset scheduler to 20 again
}
每當向數據庫中添加新行時,您都可以調用用@Scheduled(cron="*/20 * * * * *")
注釋的方法。
如果你想讓你的 Scheduled 表達式更簡潔,你也可以使用@Scheduled(fixedDelay = 20, timeUnit = TimeUnit.SECONDS)
。
我承認這可能會導致在手動調用后不久進行預定重置,但我在文檔中找不到手動重置此計時器的方法。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.