Spring Task 定时任务

Spring Task

Spring Task是Spring框架提供的轻量级定时任务调度模块,通过简单的注解和配置即可实现任务调度。

1. 核心功能

  1. **定时任务:**按固定频率(fixedRate)、固定间隔(fixedDelay)、或自定义时间规则(Cron表达式)执行任务。
  2. **异步任务:**结合@Async注解实现异步任务执行。
  3. 动态调整: 支持运行时动态修改任务规则。

2. 基本使用

2.1 启用定时任务支持

在Spring Boot启动类或配置类上添加**@EnableScheduling**注解:

java 复制代码
@SpringBootApplication
@EnableScheduling
public class Application {
    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }
}

2.2 定义定时任务

在Bean的方法上使用**@Scheduled**注解,指定执行策略。

java 复制代码
@Service
public class MyTaskService {
    // 固定速率(每隔5秒执行一次,不考虑任务执行时间)
    @Scheduled(fixedRate = 5000)
    public void taskWithFixedRate() {
        // 逻辑代码
    }

    // 固定延迟(任务结束后等待3秒再执行下一次)
    @Scheduled(fixedDelay = 3000)
    public void taskWithFixedDelay() {
        // 逻辑代码
    }

    // Cron表达式(每天12点执行)
    @Scheduled(cron = "0 0 12 * * ?")
    public void taskWithCron() {
        // 逻辑代码
    }
}

@Scheduled参数详解

| 参数 | 说明 |
| fixedRate | 固定频率(单位:毫秒),无论前一次任务是否完成,按固定时间间隔执行 |
| fixedDelay | 固定间隔(单位:毫秒),前一次任务结束后,延迟指定时间再执行 |
| cron | 使用 Cron 表达式定义复杂时间规则(如 0 0 12 * * ? 表示每天中午 12 点执行) |
| zone | 指定 Cron 表达式的时区(默认系统时区)。 |

initialDelay 首次任务延迟执行时间(单位:毫秒)。

Cron表达式

Cron 表达式由 6~7 个字段组成,格式为:秒 分 时 日 月 周 年(可选)示例

  • 0 0 10 * * ?:每天 10:00 执行。
  • 0 0/5 14 * * ?:每天 14:00 至 14:55,每隔 5 分钟执行。
  • 0 15 10 ? * MON-FRI:每周一至周五 10:15 执行。
相关推荐
林恒smileZAZ3 小时前
Vue<前端页面版本检测>
前端·javascript·vue.js
码事漫谈6 小时前
当AI开始“思考”:我们是否真的准备好了?
前端·后端
许杰小刀7 小时前
ctfshow-web文件包含(web78-web86)
android·前端·android studio
014-code7 小时前
订单超时取消与库存回滚的完整实现(延迟任务 + 状态机)
java·开发语言
我是Superman丶7 小时前
Element UI 表格某行突出悬浮效果
前端·javascript·vue.js
恋猫de小郭7 小时前
你的代理归我了:AI 大模型恶意中间人攻击,钱包都被转走了
前端·人工智能·ai编程
xiaokuangren_8 小时前
前端css颜色
前端·css
java1234_小锋8 小时前
Java高频面试题:Springboot的自动配置原理?
java·spring boot·面试
hoiii1878 小时前
C# 基于 LumiSoft 实现 SIP 客户端方案
前端·c#
anOnion8 小时前
构建无障碍组件之Meter Pattern
前端·html·交互设计