最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

SpringBoot中的定時(shí)任務(wù)和異步調(diào)用詳解

 更新時(shí)間:2023年10月25日 11:02:00   作者:刻苦的樊同學(xué)  
這篇文章主要介紹了SpringBoot中的定時(shí)任務(wù)和異步調(diào)用詳解,SpringBoot 定時(shí)任務(wù)是一種在SpringBoot應(yīng)用中自動(dòng)執(zhí)行任務(wù)的機(jī)制,通過使用Spring框架提供的@Scheduled注解,我們可以輕松地創(chuàng)建定時(shí)任務(wù),需要的朋友可以參考下

springboot定時(shí)任務(wù)

在創(chuàng)建好的springboot項(xiàng)目的啟動(dòng)類上加@EnableScheduling注解。

@EnableScheduling
@SpringBootApplication
@MapperScan("com.qianlong.dao")
@ComponentScan(value = "com.qianlong")
public class DemoApplication {
    public static void main(String[] args) {
        SpringApplication.run(DemoApplication.class, args);
    }
}

然后創(chuàng)建一個(gè)定時(shí)任務(wù)類,加上@Scheduled注解。

@Component
public class TestController {
@Scheduled(cron = "0/1 * * * * ?")    或者是這樣的@Scheduled(fixedDelay = 2000)   或者是這樣 @Scheduled (fixedRate = 2000)
    public void test(){
    System.out.println("執(zhí)行定時(shí)任務(wù)的時(shí)間是:"+new Date());
}
}

然后控制臺(tái)會(huì)每隔一秒打印一次。

Cron表達(dá)式

0/30 * * * * * 每30秒執(zhí)行一次
0 0/5 * * * * 每5分鐘執(zhí)行一次
0 0 0 * * * 每天凌晨執(zhí)行
0 0 8,12,17 * * * 每天8點(diǎn),12點(diǎn),17點(diǎn)整執(zhí)行
0 30 3-5 * * * 每天3到5點(diǎn),30分時(shí)執(zhí)行

關(guān)于@scheduled 的參數(shù)有多種方式,可以根據(jù)自己的需求來進(jìn)行選擇。

  • @Scheduled(fixedRate=1000):上一次開始執(zhí)行時(shí)間點(diǎn)后1秒再次執(zhí)行;
  • @Scheduled(fixedDelay=1000):上一次執(zhí)行完畢時(shí)間點(diǎn)后1秒再次執(zhí)行;
  • @Scheduled(initialDelay=1000, fixedDelay=1000):第一次延遲1秒執(zhí)行,然后在上一次執(zhí)行完畢時(shí)間點(diǎn)后1秒再次執(zhí)行;
  • @Scheduled(cron=”* * * * ?”):根據(jù)書寫的cron規(guī)則執(zhí)行。

關(guān)于cron 表達(dá)式

cron一共有7位,但是最后一位是年,可以留空,所以我們可以寫6位:

  • 第一位,表示秒,取值0-59
  • 第二位,表示分,取值0-59
  • 第三位,表示小時(shí),取值0-23
  • 第四位,日期天/日,取值1-31
  • 第五位,日期月份,取值1-12
  • 第六位,星期,取值1-7,星期一,星期二…,注:不是第1周,第二周的意思
  • 另外:1表示星期天,2表示星期一。
  • 第7為,年份,可以留空,取值1970-2099
  • (*)星號:可以理解為每的意思,每秒,每分,每天,每月,每年…
  • (?)問號:問號只能出現(xiàn)在日期和星期這兩個(gè)位置,表示這個(gè)位置的值不確定,每天3點(diǎn)執(zhí)行,所以第六位星期的位置,
  • 我們是不需要關(guān)注的,就是不確定的值。同時(shí):日期和星期是兩個(gè)相互排斥的元素,通過問號來表明不指定值。
  • 比如,1月10日,比如是星期1,如果在星期的位置是另指定星期二,就前后沖突矛盾了。
  • (-)減號:表達(dá)一個(gè)范圍,如在小時(shí)字段中使用“10-12”,則表示從10到12點(diǎn),即10,11,12
  • (,)逗號:表達(dá)一個(gè)列表值,如在星期字段中使用“1,2,4”,則表示星期一,星期二,星期四
  • (/)斜杠:如:x/y,x是開始值,y是步長,比如在第一位(秒) 0/15就是,從0秒開始,每15秒,最后就是0,15,30,45,60 另:* /y,等同于0/y
  • 0 0 3 * * ? 每天3點(diǎn)執(zhí)行
  • 0 5 3 * * ? 每天3點(diǎn)5分執(zhí)行
  • 0 5 3 ? * * 每天3點(diǎn)5分執(zhí)行,與上面作用相同
  • 0 5/10 3 * * ? 每天3點(diǎn)的 5分,15分,25分,35分,45分,55分這幾個(gè)時(shí)間點(diǎn)執(zhí)行

springBoot異步調(diào)用

在創(chuàng)建好的springboot項(xiàng)目的啟動(dòng)類上加@EnableAsync注解。

@EnableAsync  //開啟異步調(diào)用
@EnableScheduling
@SpringBootApplication
@MapperScan("com.qianlong.dao")
@ComponentScan(value = "com.qianlong")
public class DemoApplication {
    public static void main(String[] args) {
        SpringApplication.run(DemoApplication.class, args);
    }
}

注意在這里一定要加上@EnableAsync注解開啟異步調(diào)用 新建一個(gè)controller

@RestController
@RequestMapping("/demo")
public class SelectController {
@Autowired
private SelectService selectService;
@RequestMapping("/async")
    public void as(){
    System.out.println("1111111111");
    selectService.add();
    System.out.println("2222222222");
}
}

再建一個(gè)service

@Service
public class SelectService {
 
    @Async
    public void add() {
        System.out.println("333333333");
        System.out.println("444444444");
    }
}

先注釋掉@EnableAsync和@Async兩個(gè)注解,在瀏覽器輸入localhost:8080/demo/async,看下同步調(diào)用執(zhí)行的效果。

執(zhí)行結(jié)果如下

11111111
33333333
44444444
22222222

再把兩個(gè)注解放開,在瀏覽器輸入localhost:8080/demo/async,看下異步調(diào)用執(zhí)行的效果。

11111111
22222222
33333333
44444444

到此這篇關(guān)于SpringBoot中的定時(shí)任務(wù)和異步調(diào)用詳解的文章就介紹到這了,更多相關(guān)SpringBoot定時(shí)任務(wù)和異步調(diào)用內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Spring Event事件通知機(jī)制解讀

    Spring Event事件通知機(jī)制解讀

    這篇文章主要介紹了Spring Event事件通知機(jī)制解讀,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-02-02
  • 一文詳解Java中的AuthRequest類(附Demo)

    一文詳解Java中的AuthRequest類(附Demo)

    公共接口,定義了對第三方平臺(tái)進(jìn)行授權(quán)、登錄、撤銷授權(quán)和刷新 token 的操作,本文將詳細(xì)分析Java中的AuthRequest類(附Demo),文中通過代碼示例介紹的非常詳細(xì),具有一定的參考價(jià)值,需要的朋友可以參考下
    2024-04-04
  • Java跨session實(shí)現(xiàn)token接口測試過程圖解

    Java跨session實(shí)現(xiàn)token接口測試過程圖解

    這篇文章主要介紹了Java跨session實(shí)現(xiàn)token接口測試過程圖解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-04-04
  • Spring MVC實(shí)現(xiàn)文件上傳及優(yōu)化案例解析

    Spring MVC實(shí)現(xiàn)文件上傳及優(yōu)化案例解析

    本文介紹如何在SpringMVC框架中實(shí)現(xiàn)文件上傳和異步登錄功能,通過添加必要的依賴和配置,創(chuàng)建文件上傳頁面和控制器,實(shí)現(xiàn)文件上傳到指定文件夾,同時(shí),展示了如何使用AJAX實(shí)現(xiàn)局部刷新的異步登錄,優(yōu)化用戶體驗(yàn),詳細(xì)步驟包括配置springmvc.xml、編寫前端頁面和控制器等
    2024-10-10
  • 解決mybatis無法給帶有下劃線屬性賦值問題

    解決mybatis無法給帶有下劃線屬性賦值問題

    這篇文章主要介紹了解決mybatis無法給帶有下劃線屬性賦值問題,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-01-01
  • java?guava主要功能介紹及使用心得總結(jié)

    java?guava主要功能介紹及使用心得總結(jié)

    這篇文章主要為大家介紹了java?guava主要功能介紹及使用心得總結(jié),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-04-04
  • JDK23中instanceof的使用小結(jié)

    JDK23中instanceof的使用小結(jié)

    JDK23新增JEP455預(yù)覽特性,使instanceof支持所有原始類型,但需手動(dòng)開啟預(yù)覽屬性,下面就來具體介紹一下,感興趣的可以了解一下
    2025-08-08
  • 深入了解java Lombok的使用方法

    深入了解java Lombok的使用方法

    這篇文章主要介紹了深入了解java Lombok的使用,Lombok是一個(gè)通過注解以達(dá)到減少代碼的Java庫,如通過注解的方式減少get,set方法,構(gòu)造方法等,需要的朋友可以參考下
    2019-06-06
  • Java實(shí)現(xiàn)滑動(dòng)窗口算法的示例代碼

    Java實(shí)現(xiàn)滑動(dòng)窗口算法的示例代碼

    滑動(dòng)窗口算法是一種高效解決子數(shù)組、子字符串問題的算法,廣泛應(yīng)用于數(shù)據(jù)流處理、網(wǎng)絡(luò)限流和字符串操作等場景,本文將詳細(xì)解析滑動(dòng)窗口算法的核心思想、常見問題及其實(shí)現(xiàn)方式,需要的朋友可以參考下
    2025-03-03
  • spring學(xué)習(xí)之參數(shù)傳遞與檢驗(yàn)詳解

    spring學(xué)習(xí)之參數(shù)傳遞與檢驗(yàn)詳解

    這篇文章主要給大家介紹了關(guān)于spring參數(shù)傳遞與檢驗(yàn)的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作能帶來一定的幫助,需要的朋友們下面跟著小編來一起學(xué)習(xí)學(xué)習(xí)吧。
    2017-07-07

最新評論

淅川县| 温州市| 米易县| 黄石市| 玉树县| 崇义县| 大理市| 巴彦县| 即墨市| 桂林市| 潼关县| 新源县| 和硕县| 五大连池市| 恭城| 平遥县| 将乐县| 昭平县| 巴里| 浮梁县| 南木林县| 同仁县| 大田县| 平泉县| 娱乐| 治多县| 辽中县| 新民市| 牟定县| 广宗县| 邯郸县| 襄城县| 开封县| 喀什市| 磐安县| 肃宁县| 安庆市| 清水县| 萝北县| 辽宁省| 武城县|