成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

SpringBoot定時任務(wù)實(shí)現(xiàn)的兩種方式介紹

開發(fā) 架構(gòu)
SpringTask是Spring自帶的輕量級定時任務(wù)工具,相比于Quartz使用更加簡單方便,并且不需要不需要引入其他依賴即可使用。

 [[408224]]

今天給大家介紹SpringBoot定時任務(wù)實(shí)現(xiàn)的幾種方式,希望對大家能有所幫助!

1、SpringTask 用法

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

SpringBoot啟動類配置 @EnableScheduling 注解

  1. package my.springboot.task; 
  2.  
  3. import org.springframework.boot.SpringApplication; 
  4. import org.springframework.boot.autoconfigure.SpringBootApplication; 
  5. import org.springframework.scheduling.annotation.EnableScheduling; 
  6.  
  7. @SpringBootApplication 
  8. @EnableScheduling  
  9. public class TaskApplication { 
  10.  
  11. public static void main(String[] args) { 
  12.         SpringApplication.run(TaskApplication.class, args); 
  13.     } 
  14.  

創(chuàng)建測試類 TaskTest.java

  1. package my.springboot.task.controller; 
  2.  
  3. import cn.hutool.core.date.DateUtil; 
  4. import org.springframework.scheduling.annotation.Scheduled; 
  5. import org.springframework.stereotype.Component; 
  6.  
  7. import java.util.Date
  8. @Component 
  9. public class TaskTest { 
  10. //每隔20秒執(zhí)行一次 
  11. @Scheduled(cron = "0/20 * * * * ?"
  12. public void Test() 
  13.     { 
  14.         System.out.println("執(zhí)行測試"+ DateUtil.now()); 
  15.     } 

然后啟動項目就可以了,運(yùn)行效果如下:

2、Quartz用法 介紹

添加依賴

  1. <dependency> 
  2. <groupId>org.springframework.boot</groupId> 
  3. <artifactId>spring-boot-starter-quartz</artifactId> 
  4. </dependency> 

 

添加測試類 QuartzJobTest.java

  1. package my.springboot.mybatis.controller; 
  2.  
  3. import cn.hutool.core.date.DateUtil; 
  4. import org.quartz.JobExecutionContext; 
  5. import org.quartz.JobExecutionException; 
  6. import org.springframework.scheduling.quartz.QuartzJobBean; 
  7.  
  8. public class QuartzJobTest extends QuartzJobBean { 
  9. @Override 
  10.     protected void executeInternal(JobExecutionContext jobExecutionContext) throws JobExecutionException { 
  11.         String userName = (String) jobExecutionContext.getJobDetail().getJobDataMap().get("userName"); 
  12.         String type = (String) jobExecutionContext.getJobDetail().getJobDataMap().get("type"); 
  13.         System.out.println("測試類型:"+type+",你好,"+userName+",當(dāng)前執(zhí)行時間為:"+ DateUtil.now()); 
  14.     } 

添加配置類 QuartzConfig.java

  1. package my.springboot.mybatis.common; 
  2.  
  3. import my.springboot.mybatis.controller.QuartzJobTest; 
  4. import my.springboot.mybatis.controller.TaskTest; 
  5. import org.quartz.*; 
  6. import org.springframework.context.annotation.Bean; 
  7. import org.springframework.context.annotation.Configuration; 
  8.  
  9. @Configuration 
  10. public class QuartzConfig { 
  11.  
  12.  
  13. @Bean 
  14.     public JobDetail testJobDetail() { 
  15.         JobDetail jobDetail= JobBuilder.newJob(QuartzJobTest.class) 
  16.                 .usingJobData("type","Trigger"
  17.                 .usingJobData("userName""小明") //設(shè)置參數(shù)(鍵值對) 
  18.                 .storeDurably() 
  19.                 .build(); 
  20. return jobDetail; 
  21.     } 
  22. /** 
  23.      * 定時任務(wù)1: 
  24.      * Trigger觸發(fā)器使用 
  25.      */ 
  26.     @Bean 
  27.     public Trigger testJobTrigger() { 
  28. //每隔5秒執(zhí)行一次 
  29.         CronScheduleBuilder cronScheduleBuilder = CronScheduleBuilder.cronSchedule("0/15 * * * * ?"); 
  30. //創(chuàng)建觸發(fā)器 
  31.         Trigger trigger = TriggerBuilder.newTrigger() 
  32.                 .forJob(testJobDetail())//關(guān)聯(lián)上述的JobDetail 
  33.                 .withSchedule(cronScheduleBuilder) 
  34.                 .build(); 
  35. return trigger
  36.     } 
  37.  
  38. @Bean 
  39.     public JobDetail testSampleJobDetail() { 
  40.         JobDetail jobDetail= JobBuilder.newJob(QuartzJobTest.class) 
  41.                 .usingJobData("type","SimpleTrigger"
  42.                 .usingJobData("userName""小王")               .storeDurably()  
  43.                 .build(); 
  44. return jobDetail; 
  45.     } 
  46.  
  47. /** 
  48.      * 定時任務(wù)2: 
  49.      * Simple觸發(fā)器使用 
  50.      * */ 
  51.     @Bean 
  52.     public SimpleTrigger testSimpleTrigger(){ 
  53.         SimpleScheduleBuilder ssb = SimpleScheduleBuilder.simpleSchedule() 
  54.                 .withIntervalInSeconds(10).repeatForever(); 
  55.         SimpleTrigger sTrigger = TriggerBuilder.newTrigger() 
  56.                 .forJob(testSampleJobDetail())// 
  57.                 .withSchedule(ssb).build(); 
  58. return sTrigger; 
  59.     } 
  60.  
  61.  

運(yùn)行效果

3、常用Cron表達(dá)式

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

 本文轉(zhuǎn)載自微信公眾號「IT技術(shù)分享社區(qū)」,可以通過以下二維碼關(guān)注。轉(zhuǎn)載本文請聯(lián)系IT技術(shù)分享社區(qū)公眾號。

個人博客網(wǎng)站:https://programmerblog.xyz

 

責(zé)任編輯:武曉燕 來源: IT技術(shù)分享社區(qū)
相關(guān)推薦

2024-09-20 05:49:04

SpringBoot后端

2020-12-21 07:31:23

實(shí)現(xiàn)單機(jī)JDK

2024-12-27 08:24:55

2024-05-31 13:07:29

.NET Core定時任務(wù)編程

2009-06-15 15:02:48

Spring定時器

2024-01-22 08:53:00

策略任務(wù)RocketMQ

2024-02-26 11:12:33

定時任務(wù)線程

2021-11-22 12:35:40

Python命令定時任務(wù)

2024-01-31 08:38:57

Python定時任務(wù)函數(shù)

2021-08-05 07:28:25

Java實(shí)現(xiàn)方式

2019-02-20 15:52:50

技術(shù)開發(fā)代碼

2025-01-08 09:55:37

Spring接口數(shù)據(jù)庫

2019-12-25 15:10:00

MySQL事件數(shù)據(jù)庫

2024-10-15 16:41:35

2025-02-24 16:00:00

SpringBoot定時任務(wù)開發(fā)

2010-07-14 10:30:26

Perl多線程

2021-12-08 10:47:35

RabbitMQ 實(shí)現(xiàn)延遲

2025-03-12 09:54:02

2024-02-28 09:54:07

線程池配置

2011-03-03 10:26:04

Pureftpd
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 国产精品96久久久久久 | 一区二区三区四区不卡 | 亚洲精品成人网 | 国产日韩欧美激情 | 免费av电影网站 | 91av在线免费看 | 久久国产视频网站 | 超碰97人人人人人蜜桃 | 亚洲精品99999 | 久久青视频 | 日操操夜操操 | 五月婷婷在线播放 | 色视频网站 | 久久成人精品视频 | 九色在线观看 | 国产伦精品一区二区三区照片91 | 国产视频h| 国产中文字幕网 | 欧美激情在线播放 | 久久精品中文 | www.日韩欧美| 国产精品成人一区二区三区夜夜夜 | 午夜影晥 | 国产在线区| 蜜桃精品噜噜噜成人av | 成人影院午夜 | 在线看91 | 国产精品久久久久久久岛一牛影视 | 国产精品视频久久 | 在线一区观看 | 在线国产一区二区 | 日日爱视频 | 国产一区在线免费观看视频 | 操久久| 中文字幕一区二区三区不卡 | 毛片一区二区三区 | 精品一区av | 久久免费视频观看 | 男人的天堂久久 | 精品粉嫩超白一线天av | 在线视频91 |