← 返回项目总览
项目简介
基于 Spring Boot 的计划任务监控系统,在应用启动时自动扫描所有 @Scheduled 注解标注的方法,通过 AOP 切面监控任务执行情况,并提供详细的统计信息(执行次数、执行时长、最近 10 条执行记录),支持 REST API 查询和定时日志输出。
使用示例
@Scheduled(cron = "0 0/5 * * * ?")
public void syncDataTask() {
dataSyncService.sync();
}
统计输出效果
[ScheduleMonitor] 任务统计报告:
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
任务: syncDataTask
执行总数: 128
近30分钟执行: 6
最近执行记录:
1. 2026-04-12 10:00:00 ─── 23ms
2. 2026-04-12 09:55:00 ─── 156ms
3. 2026-04-12 09:50:00 ─── 18ms
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
核心功能
- 自动扫描 — 启动时通过
@PostConstruct 自动扫描 @Scheduled 方法
- AOP 监控 — 基于切面的任务执行监控,记录详细执行信息
- 线程安全计数 — 使用 AtomicLong 和 ConcurrentLinkedDeque 保证线程安全
- 统计信息 — 总执行次数、近 30 分钟执行次数、最近 10 条执行记录
- REST API — 支持查询任务信息和统计数据的接口
- 模糊匹配 — 按名称查询任务时支持模糊匹配
- 定时日志 — 每 30 秒自动批量输出任务执行统计日志
技术栈一览
Java 17
Spring Boot 3.2
Spring AOP
Jakarta EE 9+
AtomicLong
ConcurrentLinkedDeque
Maven