日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

springboot使用@Scheduled作定时任务详细用法

發(fā)布時間:2024/9/30 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 springboot使用@Scheduled作定时任务详细用法 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

springboot中quartz可以作定時任務,@Scheduled也可以

Spring Boot啟動類標注@EnableScheduling,然后再開發(fā)一個服務類,:

測試簡易定時任務:

package com.springboot.chapter13.service.impl; /**** imports ****/ @Service public class ScheduleServiceImpl {// 計數(shù)器int count1 = 1;int count2 = 1;// 每隔一秒執(zhí)行一次@Scheduled(fixedRate = 1000)// 使用異步執(zhí)行@Asyncpublic void job1() {System.out.println("【" +Thread.currentThread().getName()+"】"+ "【job1】每秒鐘執(zhí)行一次,執(zhí)行第【" + count1 + "】次");count1 ++;}// 每隔一秒執(zhí)行一次@Scheduled(fixedRate = 1000)// 使用異步執(zhí)行@Asyncpublic void job2() {System.out.println("【" +Thread.currentThread().getName()+"】"+ "【job2】每秒鐘執(zhí)行一次,執(zhí)行第【" + count2 + "】次");count2 ++;}}

這里的注解@Scheduled配置為按時間間隔執(zhí)行,每隔1 s便執(zhí)行一次。使用@Async注解代表這需要使用異步線程執(zhí)行,上述中@Scheduled只是按照時間間隔執(zhí)行,有時候需要指定更為具體的時間,例如,每天晚上11:00開始跑批量生成報表,或者一些任務在每周日執(zhí)行。為了能夠更為精確地指定任務執(zhí)行的時間,所以有必要更為細致地研究@Scheduled的配置項,如表13-1所示。

表13-1中的配置項除了cron外都比較好理解,只有cron是可以通過表達式更為靈活地配置運行的方式。cron有6~7個空格分隔的時間元素,按順序依次是“秒 分 時 天 月 星期 年”,其中年是一個可以不配置的元素,例如下面的配置:
0 0 0 ? * WED 這個配置表示每個星期三中午0點整。這個表達式需要注意的是其中的特殊字符,如?和*,這里因為天和星期會產(chǎn)生定義上的沖突,所以往往會以通配符?表示,它表示不指定值,而*則表示任意的月。除此以外還會有表13-2所示的其他通配符。 表13-2 通配符含義 為了說明它們的使用,下面舉例如表13-3所示。

cron表達式:

總結(jié)

以上是生活随笔為你收集整理的springboot使用@Scheduled作定时任务详细用法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。