找回密码
 立即注册
查看: 29|回复: 0

Spring Task任务调度工具,定时任务开启

[复制链接]

153

主题

5

精华

157

金币

技术维护QQ:515138

积分
339
发表于 2025-12-29 11:23:08 | 显示全部楼层 |阅读模式
Spring Task任务调度工具
强调:只要是需要定时处理的场景都可以使用Spring Task
1.2 cron表达式
cron表达式其实就是一个字符串,通过cron表达式可以定义任务触发的时间
构成规则:分为6或7个域,由空格分隔开,每个域代表一个含义
每个域的含义分别为:秒、分钟、小时、日、月、周、年(可选)
举例:
2022年10月12日上午9点整 对应的cron表达式为:0 0 9 12 10 ? 2022
image-20221218184412491.png
说明:一般的值不同时设置,其中一个设置,另一个用?表示。

比如:描述2月份的最后一天,最后一天具体是几号呢?可能是28号,也有可能是29号,所以就不能写具体数字。
为了描述这些信息,提供一些特殊的字符。这些具体的细节,我们就不用自己去手写,因为这个cron表达式,它其实有在线生成器。
cron表达式在线生成器:https://cron.qqe2.com/
image-20221218184959888.png

可以直接在这个网站上面,只要根据自己的要求去生成corn表达式即可。所以一般就不用自己去编写这个表达式。
通配符:
* 表示所有值;
? 表示未说明的值,即不关心它为何值;
- 表示一个指定的范围;
, 表示附加一个可能值;
/ 符号前表示开始时间,符号后表示每次递增的值;
cron表达式案例:
*/5 * * * * ? 每隔5秒执行一次
0 */1 * * * ? 每隔1分钟执行一次
0 0 5-15 * * ? 每天5-15点整点触发
0 0/3 * * * ? 每三分钟触发一次
0 0-5 14 * * ? 在每天下午2点到下午2:05期间的每1分钟触发
0 0/5 14 * * ? 在每天下午2点到下午2:55期间的每5分钟触发
0 0/5 14,18 * * ? 在每天下午2点到2:55期间和下午6点到6:55期间的每5分钟触发
0 0/30 9-17 * * ? 朝九晚五工作时间内每半小时
0 0 10,14,16 * * ? 每天上午10点,下午2点,4点

Spring Task使用步骤
1). 导入maven坐标 spring-context(已存在)
image-20221218193251182.png
2). 启动类添加注解 @EnableScheduling 开启任务调度
3). 自定义定时任务类

1.3.2 代码开发
编写定时任务类:
进入server模块中
  1. package com.zidiu.task;
  2. import lombok.extern.slf4j.Slf4j;
  3. import org.springframework.scheduling.annotation.Scheduled;
  4. import org.springframework.stereotype.Component;
  5. import java.util.Date;
  6. /**
  7. * 自定义定时任务类
  8. */
  9. @Component
  10. @Slf4j
  11. public class MyTask {
  12.     /**
  13.      * 定时任务 每隔5秒触发一次
  14.      */
  15.     @Scheduled(cron = "0/5 * * * * ?")
  16.     public void executeTask(){
  17.         log.info("定时任务开始执行:{}",new Date());
  18.     }
  19. }
复制代码

开启任务调度:
启动类添加注解 @EnableScheduling
  1. package com.zidiu;
  2. import org.springframework.boot.SpringApplication;
  3. import org.springframework.boot.autoconfigure.SpringBootApplication;
  4. import org.springframework.boot.web.servlet.ServletComponentScan;
  5. import org.springframework.cache.annotation.EnableCaching;
  6. import org.springframework.scheduling.annotation.EnableScheduling;
  7. import org.springframework.transaction.annotation.EnableTransactionManagement;
  8. @ServletComponentScan //开启对Servlet组件的支持
  9. @SpringBootApplication
  10. @EnableCaching
  11. @EnableScheduling // 开启定时任务
  12. public class JinheiWaimaiApplication {
  13.     public static void main(String[] args) {
  14.         SpringApplication.run(JinheiWaimaiApplication.class, args);
  15.         System.out.println("金黑外卖项目,启动成功");
  16.     }
  17. }
复制代码






上一篇:SpringBoot3+SSM的企业级Java项目实战外卖小程序之微信支付
下一篇:Spring Task任务调度订单支付超时提醒案例
网站建设,公众号小程序开发,系统定制,软件App开发,技术维护【联系我们】手机/微信:17817817816 QQ:515138

QQ|Archiver|自丢网 ( 粤ICP备2024252464号-1 )

GMT+8, 2026-1-13 17:51

专注于网站建设,公众号小程序制作,商城小程序,系统定制,软件App开发

【联系我们】手机/微信:17817817816 QQ:515138

快速回复 返回顶部 返回列表