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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

SpringBoot定时任务实现的两种方式介绍

發布時間:2023/12/10 javascript 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 SpringBoot定时任务实现的两种方式介绍 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?? ? ? ?? ? ? ??

今天給大家介紹SpringBoot定時任務實現的幾種方式,希望對大家能有所幫助!

1、SpringTask 用法

框架介紹:SpringTask是Spring自帶的輕量級定時任務工具,相比于Quartz使用更加簡單方便,并且不需要不需要引入其他依賴即可使用。今天主要介紹注解的實現方式:

SpringBoot啟動類配置 @EnableScheduling 注解

package my.springboot.task;import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.scheduling.annotation.EnableScheduling;@SpringBootApplication @EnableScheduling public class TaskApplication {public static void main(String[] args) {SpringApplication.run(TaskApplication.class, args);}}

創建測試類 TaskTest.java

package my.springboot.task.controller;import cn.hutool.core.date.DateUtil; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component;import java.util.Date; @Component public class TaskTest { //每隔20秒執行一次 @Scheduled(cron = "0/20 * * * * ?") public void Test(){System.out.println("執行測試"+ DateUtil.now());} }

然后啟動項目就可以了,運行效果如下:

? ? ? ? ? ? ? ?

2、Quartz用法 介紹

添加依賴

<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-quartz</artifactId> </dependency>

添加測試類 QuartzJobTest.java

package my.springboot.mybatis.controller;import cn.hutool.core.date.DateUtil; import org.quartz.JobExecutionContext; import org.quartz.JobExecutionException; import org.springframework.scheduling.quartz.QuartzJobBean;public class QuartzJobTest extends QuartzJobBean { @Overrideprotected void executeInternal(JobExecutionContext jobExecutionContext) throws JobExecutionException {String userName = (String) jobExecutionContext.getJobDetail().getJobDataMap().get("userName");String type = (String) jobExecutionContext.getJobDetail().getJobDataMap().get("type");System.out.println("測試類型:"+type+",你好,"+userName+",當前執行時間為:"+ DateUtil.now());} }

添加配置類 QuartzConfig.java

package my.springboot.mybatis.common;import my.springboot.mybatis.controller.QuartzJobTest; import my.springboot.mybatis.controller.TaskTest; import org.quartz.*; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration;@Configuration public class QuartzConfig {@Beanpublic JobDetail testJobDetail() {JobDetail jobDetail= JobBuilder.newJob(QuartzJobTest.class).usingJobData("type","Trigger").usingJobData("userName", "小明") //設置參數(鍵值對).storeDurably().build(); return jobDetail;} /*** 定時任務1:* Trigger觸發器使用*/@Beanpublic Trigger testJobTrigger() { //每隔5秒執行一次CronScheduleBuilder cronScheduleBuilder = CronScheduleBuilder.cronSchedule("0/15 * * * * ?"); //創建觸發器Trigger trigger = TriggerBuilder.newTrigger().forJob(testJobDetail())//關聯上述的JobDetail.withSchedule(cronScheduleBuilder).build(); return trigger;}@Beanpublic JobDetail testSampleJobDetail() {JobDetail jobDetail= JobBuilder.newJob(QuartzJobTest.class).usingJobData("type","SimpleTrigger").usingJobData("userName", "小王") .storeDurably() .build(); return jobDetail;}/*** 定時任務2:* Simple觸發器使用* */@Beanpublic SimpleTrigger testSimpleTrigger(){SimpleScheduleBuilder ssb = SimpleScheduleBuilder.simpleSchedule().withIntervalInSeconds(10).repeatForever();SimpleTrigger sTrigger = TriggerBuilder.newTrigger().forJob(testSampleJobDetail())//.withSchedule(ssb).build(); return sTrigger;}}

運行效果

? ? ? ? ? ? ? ?

3、常用Cron表達式

“0 0 13,16,17 * * ?” 每天下午1、4、7點執行一次 “0 0 10 ? * WED” 表示每周三中午10點執行一次 “0 0 10 * * ?” 每天中午10點執行一次 “0 15 13 * * ?” 每天下午1:15執行一次 “0 15 10 * * ? " 每天上午10:15執行一次 “0 30 10 * * ? 2021” 2021年的每天上午10:30執行一次 “0 10 9 ? * MON-FRI” 周一至周五的上午9:10執行一次 “0 15 10 15 * ?” 每月15日上午10:15執行一次 “0 15 10 L * ?” 每月最后一日的上午10:15執行一次 “0 15 10 ? * 6L” 每月的最后一個星期五上午10:15執行一次 "/5 * * * * ?” 每隔5秒執行一次 “0 */1 * * * ?” 每隔1分鐘執行一次 “0 0 23 * * ?” 每天23點執行一次 “0 0 1 * * ?” 每天凌晨1點執行一次 “0 0 1 1 * ?” 每月1號凌晨1點執行一次 “0 0 23 L * ?” 每月最后一天23點執行一次 “0 0 1 ? * L” 每周星期天凌晨1點實行一次 “0 26,29,33 * * * ?” 在26分、29分、33分執行一次 “0 0 0,13,18,21 * * ?” 每天的0點、13點、18點、21點都執行一次

IT技術分享社區

個人博客網站:https://programmerblog.xyz

文章推薦程序員效率:畫流程圖常用的工具程序員效率:整理常用的在線筆記軟件遠程辦公:常用的遠程協助軟件,你都知道嗎?51單片機程序下載、ISP及串口基礎知識硬件:斷路器、接觸器、繼電器基礎知識

總結

以上是生活随笔為你收集整理的SpringBoot定时任务实现的两种方式介绍的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。