您现在的位置是:亿华云 > 人工智能
SpringBoot定时任务实现的两种方式介绍
亿华云2025-10-03 18:14:16【人工智能】3人已围观
简介今天给大家介绍SpringBoot定时任务实现的几种方式,希望对大家能有所帮助!1、SpringTask 用法框架介绍:SpringTask是Spring自带的轻量级定时任务工具,相比于Quartz使
今天给大家介绍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 { @Override protected 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 { @Bean public JobDetail testJobDetail() { JobDetail jobDetail= JobBuilder.newJob(QuartzJobTest.class) .usingJobData("type","Trigger") .usingJobData("userName", "小明") //设置参数(键值对) .storeDurably() .build(); return jobDetail; } /** * 定时任务1: * Trigger触发器使用 */ @Bean public Trigger testJobTrigger() { //每隔5秒执行一次 CronScheduleBuilder cronScheduleBuilder = CronScheduleBuilder.cronSchedule("0/15 * * * * ?"); //创建触发器 Trigger trigger = TriggerBuilder.newTrigger() .forJob(testJobDetail())//关联上述的JobDetail .withSchedule(cronScheduleBuilder) .build(); return trigger; } @Bean public JobDetail testSampleJobDetail() { JobDetail jobDetail= JobBuilder.newJob(QuartzJobTest.class) .usingJobData("type","SimpleTrigger") .usingJobData("userName", "小王") .storeDurably() .build(); return jobDetail; } /** * 定时任务2: * Simple触发器使用 * */ @Bean public 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技术分享社区」,可以通过以下二维码关注。转载本文请联系IT技术分享社区公众号。亿华云计算
个人博客网站:https://programmerblog.xyz
很赞哦!(41166)
相关文章
- 量子计算和人工智能:飞跃还是遥远的梦想?
- 普洛斯数据中心发布以DCBASE 3.0平台应用为核心的《基于冷板式液冷的智能监控技术报告》,助力行业绿色发展
- 2023年第十八届中国企业年终评选榜单揭晓:Dell VxRail荣获2023年度中国IT行业数字基础设施优秀产品奖
- 什么是数据中心现代化?
- Chiplet究竟是什么?为什么说Chiplet能帮助中国芯片突围?
- 数据中心冷却:拥抱液冷,迎接可持续高效运营时代
- 说说对Http 301、302、303,304、400、405、415状态码的认识
- 数据中心的演变:从通用计算到加速计算
- 超融合基础架构(HCI),低成本改变数据中心
- 说说对Http 301、302、303,304、400、405、415状态码的认识