欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

SpringBoot整合定時(shí)任務(wù)的方法

 更新時(shí)間:2024年05月11日 15:24:17   作者:小秦學(xué)加瓦chen  
通過 ThreadPoolExecutor 可以實(shí)現(xiàn)各式各樣的自定義線程池,而 ScheduledThreadPoolExecutor 類則在自定義線程池的基礎(chǔ)上增加了周期性執(zhí)行任務(wù)的功能,這篇文章主要介紹了SpringBoot整合定時(shí)任務(wù),需要的朋友可以參考下

一、Scheduled原理

JUC 包中的 Executor 架構(gòu)帶來了線程的創(chuàng)建與執(zhí)行的分離。Executor 的繼承者ExecutorService 下面衍生出了兩個(gè)重要的實(shí)現(xiàn)類,他們分別是
1、ThreadPoolExecutor 線程池
2、ScheduledThreadPoolExecutor 支持周期性任務(wù)的線程池
通過 ThreadPoolExecutor 可以實(shí)現(xiàn)各式各樣的自定義線程池,而 ScheduledThreadPoolExecutor 類則在自定義線程池的基礎(chǔ)上增加了周期性執(zhí)行任務(wù)的功能

二、導(dǎo)入依賴

springboot3之后自帶定時(shí)任務(wù)器,所以只需要引用springboot啟動(dòng)器就可以

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>3.0.5</version>
</parent>

三、編寫定時(shí)任務(wù)

定時(shí)任務(wù)所在的類需要是spring的組件,所以在定時(shí)任務(wù)類上需要加上@Component注解,并且在定時(shí)任務(wù)方法上加上@Scheduled注解,聲明這是一個(gè)定時(shí)任務(wù)。(這里需要注意的是@Scheduled注解里面的cron表達(dá)式,后面會(huì)詳細(xì)介紹)

@Component
public class MySchduled {
    private int count = 0;
    @Scheduled(cron = "0/3 * * * * ? ")
    public void print(){
        System.out.println("hello:" + count++);
    }
}

四、Cron表達(dá)式

Cron表達(dá)式是一種用于指定定時(shí)任務(wù)執(zhí)行時(shí)間的字符串,它由六個(gè)或七個(gè)字段組成,分別表示秒、分、時(shí)、日期、月份、星期和年份(可選)。每個(gè)字段可以是一個(gè)具體的值、一個(gè)范圍、一個(gè)遞增步長(zhǎng),或者使用特殊字符。12

  • 星號(hào)(*):在某個(gè)字段中使用時(shí),表示該字段可以取該字段的所有可能值。例如,在分鐘字段中使用 * 表示每分鐘。
  • 問號(hào)(?):只在日期和星期字段中使用,通常作為無意義的值,相當(dāng)于占位符。
  • 減號(hào)(-):表示一個(gè)范圍,例如在小時(shí)字段中使用“10-12”表示從10點(diǎn)到12點(diǎn),即10、11、12點(diǎn)。
  • 逗號(hào)(,):表示一個(gè)列表值,例如在星期字段中使用“MON,WED,FRI”表示星期一、星期三和星期五。
  • 斜杠(/):表示一個(gè)等步長(zhǎng)序列,例如在分鐘字段中使用0/15表示從0秒開始,每隔15秒觸發(fā)一次。
  • L:只在日期和星期字段中使用,代表“Last”的意思,在日期字段中表示這個(gè)月份的最后一天,在星期字段中表示星期六。
  • W:只能出現(xiàn)在日期字段里,是對(duì)前導(dǎo)日期的修飾,表示離該日期最近的工作日。

例如,上面我們使用的(0/3 * * * * ?)的意思就是每隔3秒執(zhí)行一次

網(wǎng)上有很多cron表達(dá)式在線生成器,可以在線生成,使用起來也比較方便

五、啟動(dòng)

啟動(dòng)定時(shí)任務(wù)掃描是非常重要的一步,沒啟動(dòng)的話定時(shí)任務(wù)不會(huì)執(zhí)行,啟動(dòng)定時(shí)任務(wù)需要在啟動(dòng)類或者配置類上添加@EnableScheduling注解,表示啟動(dòng)定時(shí)任務(wù)掃描

@SpringBootApplication
@MapperScan("com.zxc.mapper")
@EnableScheduling
@EnableAspectJAutoProxy
public class AuthApplication {
    public static void main(String[] args) {
        SpringApplication.run(AuthApplication.class,args);
    }
}

到此這篇關(guān)于SpringBoot整合定時(shí)任務(wù)的文章就介紹到這了,更多相關(guān)SpringBoot定時(shí)任務(wù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • spring三級(jí)緩存以及為什么不用二級(jí)緩存解讀

    spring三級(jí)緩存以及為什么不用二級(jí)緩存解讀

    Spring三級(jí)緩存機(jī)制解決了循環(huán)依賴問題,通過一級(jí)緩存存放完全初始化的bean,二級(jí)緩存存放實(shí)例化但未完成依賴注入和初始化的bean,三級(jí)緩存存放bean的創(chuàng)建工廠,避免了重復(fù)創(chuàng)建和確保代理對(duì)象的正確生成
    2025-02-02
  • 解決IDEA Gradle構(gòu)建報(bào)錯(cuò)''Cause: zip END header not found''

    解決IDEA Gradle構(gòu)建報(bào)錯(cuò)''Cause: zip END header not found''

    這篇文章主要介紹了解決IDEA Gradle構(gòu)建報(bào)錯(cuò)"Cause: zip END header not found"的問題,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-02-02
  • Java的synchronized關(guān)鍵字深入解析

    Java的synchronized關(guān)鍵字深入解析

    這篇文章主要介紹了Java的synchronized關(guān)鍵字深入解析,在并發(fā)編程中,多線程同時(shí)并發(fā)訪問的資源叫做臨界資源,當(dāng)多個(gè)線程同時(shí)訪問對(duì)象并要求操作相同資源時(shí),分割了原子操作就有可能出現(xiàn)數(shù)據(jù)的不一致或數(shù)據(jù)不完整的情況,需要的朋友可以參考下
    2023-12-12
  • 分布式醫(yī)療掛號(hào)系統(tǒng)EasyExcel導(dǎo)入導(dǎo)出數(shù)據(jù)字典的使用

    分布式醫(yī)療掛號(hào)系統(tǒng)EasyExcel導(dǎo)入導(dǎo)出數(shù)據(jù)字典的使用

    這篇文章主要為大家介紹了分布式醫(yī)療掛號(hào)系統(tǒng)EasyExcel導(dǎo)入導(dǎo)出數(shù)據(jù)字典的使用,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-04-04
  • java開發(fā)時(shí)各類工具的使用規(guī)范

    java開發(fā)時(shí)各類工具的使用規(guī)范

    這篇文章主要介紹了java編碼時(shí)各類工具的使用規(guī)范,多人協(xié)作、共同開發(fā)一個(gè)項(xiàng)目,如果沒有統(tǒng)一的代碼規(guī)范的話,項(xiàng)目中的每個(gè)人都按照自己的習(xí)慣率性而為,就會(huì)導(dǎo)致整個(gè)項(xiàng)目的代碼看上去雜亂無章,可讀性非常差,并且持續(xù)增加后續(xù)的維護(hù)成本。對(duì)此感興趣可以來了解一下
    2020-07-07
  • Maven+Tomcat8 實(shí)現(xiàn)自動(dòng)化部署的方法

    Maven+Tomcat8 實(shí)現(xiàn)自動(dòng)化部署的方法

    本篇文章主要介紹了Maven+Tomcat8 實(shí)現(xiàn)自動(dòng)化部署的方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-10-10
  • springboot jsp支持以及轉(zhuǎn)發(fā)配置方式

    springboot jsp支持以及轉(zhuǎn)發(fā)配置方式

    文章介紹了如何在Spring Boot項(xiàng)目中配置和使用JSP,并提供了一步一步的指導(dǎo),包括添加依賴、配置文件設(shè)置、控制器和視圖的使用
    2024-12-12
  • Java使用bcrypt實(shí)現(xiàn)對(duì)密碼加密效果詳解

    Java使用bcrypt實(shí)現(xiàn)對(duì)密碼加密效果詳解

    bcrypt是一種自帶鹽值(自動(dòng)加鹽)的加密方案。本文將通過示例為大家詳細(xì)介紹這一對(duì)密碼進(jìn)行加密的算法,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2022-03-03
  • java system類使用方法示例 獲取系統(tǒng)信息

    java system類使用方法示例 獲取系統(tǒng)信息

    這篇文章主要介紹了java system類使用方法,該類中的方法都是靜態(tài)的。不能被實(shí)例化,沒有對(duì)外提供構(gòu)造函數(shù),該類可以獲取系統(tǒng)信息
    2014-01-01
  • Spring Boot 開發(fā)私有即時(shí)通信系統(tǒng)(WebSocket)

    Spring Boot 開發(fā)私有即時(shí)通信系統(tǒng)(WebSocket)

    本文利用Spring Boot作為基礎(chǔ)框架,Spring Security作為安全框架,WebSocket作為通信框架,實(shí)現(xiàn)點(diǎn)對(duì)點(diǎn)聊天和群聊天
    2017-04-04

最新評(píng)論