定時任務@Scheduled用法及其參數(shù)使用
定時任務@Scheduled用法及參數(shù)
@Scheduled是Spring框架中的一個注解,用于標記一個方法為定時任務。
當使用@Scheduled注解時,Spring會自動創(chuàng)建一個定時任務的執(zhí)行器(Scheduler),并在指定的時間間隔內(nèi)執(zhí)行被標記的方法。
使用@Scheduled注解時,可以通過設置不同的屬性來定義定時任務的行為,例如:
fixedRate:固定頻率執(zhí)行任務,表示每隔指定的時間間隔執(zhí)行一次任務。fixedDelay:固定延遲執(zhí)行任務,表示在上一次任務執(zhí)行完成后,等待指定的時間間隔再執(zhí)行下一次任務。initialDelay:初始延遲時間,表示在第一次執(zhí)行任務之前的等待時間。cron:使用Cron表達式定義任務的執(zhí)行時間,可以更靈活地控制任務的執(zhí)行時間。
具體實現(xiàn):
/**
* 定時任務001:@Scheduled
* springboot自帶的簡易定時任務實現(xiàn)
*
* @author zhupeng
* @Date 2022/1/7 9:53 AM
*/
@Component
public class ScheduleTask {
private String date = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date());
// 任務間隔3s執(zhí)行依次【不包括任務執(zhí)行時間】,延遲1s后執(zhí)行
@Scheduled(initialDelay = 1000, fixedDelay = 3000)
public void fixedDelay() {
System.out.println("fixedDelay:" + this.date);
}
// 每隔間隔3s執(zhí)行依次【包括任務執(zhí)行時間】
@Scheduled(fixedRate = 3000)
public void fixedRate() {
System.out.println("fixedRate:" + this.date);
}
// cron表達式,Quartz更詳細
@Scheduled(cron = "*/5 * * * * *")
public void cron() {
System.out.println("cron:" + this.date);
}
}
Spring框架中@Scheduled注解失效問題
問題描述
在Spring框架的Web項目中,有一個業(yè)務功能需要每天執(zhí)行一次,使用了@Scheduled注解執(zhí)行定時任務,但是出現(xiàn)了定時任務不執(zhí)行的情況
嘗試的方式
類上加@EnableScheduling注解、加實現(xiàn)SchedulingConfigurer接口的配置類、修改cron表達式
都失敗了
最終查到的解決方式
在Spring的配置文件中,添加配置:
- 1.加命名空間
xmlns添加:
xmlns:task="http://www.springframework.org/schema/task"
xsi:schemaLocation添加 :
http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task-4.3.xsd"
- 2.啟動注解驅動
<task:annotation-driven scheduler="dataScheduler"/>
- 3.開啟任務調(diào)度器,并配置線程池大小
<task:scheduler id="dataScheduler" pool-size="5"/>
- 4.然后就可以使用
@Scheduled注解了
總結
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
Mybatis實現(xiàn)批量更新數(shù)據(jù)(批量update)
本文介紹了MyBatis批量更新數(shù)據(jù)的兩種方案,方案一使用foreach標簽拼接多條update語句,通過在數(shù)據(jù)庫連接URL中指定allowMultiQueries參數(shù)值為true來支持多條語句的執(zhí)行,提高效率;方案二拼接成一條SQL,但SQL語句會非常復雜且難以閱讀,不推薦使用2026-04-04
SpringBoot的內(nèi)嵌和外置tomcat的實現(xiàn)方式
本文主要介紹了在Spring Boot中定制和修改Servlet容器的配置,包括內(nèi)嵌式和外置式Servlet容器的配置方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2025-11-11
Spring實戰(zhàn)之使用Resource作為屬性操作示例
這篇文章主要介紹了Spring實戰(zhàn)之使用Resource作為屬性,結合實例形式分析了spring載人Resource作為屬性相關配置與使用技巧,需要的朋友可以參考下2020-01-01

