Hutool Hutool
(opens new window)
🏡首页
📖指南
🎢最佳实践
💖支持
💡javaDoc (opens new window)
⏳更新记录 (opens new window)
  • 🍎gitee (opens new window)
  • 🍏github (opens new window)
(opens new window)
🏡首页
📖指南
🎢最佳实践
💖支持
💡javaDoc (opens new window)
⏳更新记录 (opens new window)
  • 🍎gitee (opens new window)
  • 🍏github (opens new window)
  • 快速入门

  • 核心(hutool-core)

  • 定时任务(hutool-cron)

    • 简介
      • 📚简介
        • 一、功能
        • 二、特点
        • 三、核心组件和架构
        • 1. CronUtil
        • 2. Scheduler
        • 3. Task
        • 4. TaskTable
        • 5. CronPattern
        • 四、与主流调度任务库对比
        • 五、优势总结
    • 全局定时任务-CronUtil
    • 定时任务调度器-Scheduler
    • 全局定时任务-CronUtil
    • 定时任务设置-CronConfig
  • 加密(hutool-crypto)

  • 数据库(hutool-db)

  • 扩展(hutool-extra)

  • HTTP(hutool-http)

  • 日志(hutool-log)

  • 配置文件(hutool-setting)

  • JSON(hutool-json)

  • Office办公(hutool-poi)

  • 套接字(hutool-socket)

  • GUI(hutool-swing)

  • 指南
  • 定时任务(hutool-cron)
Hutool
2026-01-03
目录

简介

# 📚简介

  • Hutool-cron是Hutool工具库中专为定时任务设计的轻量级模块,提供了一套简洁、灵活、零依赖的定时任务调度能力。它不依赖于 Quartz、Spring 等外部框架,适合在小型项目、工具类应用、嵌入式服务或对资源敏感的环境中替代传统定时任务方案。

  • Hutool-cron是“小而美”的典范——它不做大而全的调度平台,而是专注于解决单机环境下轻量、灵活、易用的定时需求。

  • Hutool-cron的核心目标是:“开箱即用,极简配置,灵活扩展”。

# 一、功能

功能 说明
✅ Cron 表达式支持 兼容标准 Unix Cron 语法(5位:分 时 日 月 周),支持 * / - , ? L 等符号
✅ 动态任务管理 运行时支持任务的添加、暂停、恢复、移除、修改调度规则
✅ 线程池隔离 每个 CronScheduler 可绑定独立线程池,避免任务阻塞影响系统稳定性
✅ 任务异常处理 提供全局异常处理器,防止单个任务崩溃导致调度器停止
✅ 任务状态监控 支持获取当前运行中任务数、任务列表、下次执行时间等元信息
✅ 自定义任务类型 除 Runnable 外,支持 Callable、Lambda 表达式、方法引用等

# 二、特点

  • 简单易用:提供了简洁的 API,使得任务调度变得更加直观和容易上手。
  • 灵活的表达式:可以使用Quzrtz类似的支持秒级别的表达式,也可以使用Crontab支持分级别的表达式调度。
  • 线程安全:在设计上考虑了多线程环境下的安全性,确保任务调度的可靠性。

# 三、核心组件和架构

Hutool-cron 的设计高度模块化,主要包含以下组件:

# 1. CronUtil

  • 静态工具类,提供全局便捷入口(如 CronUtil.start()、CronUtil.setMatchSecond(true))
  • 内部维护一个默认的全局调度器实例(Scheduler)
  • 适合快速上手,但不推荐在复杂场景中使用(缺乏隔离性)
// 打开秒匹配
CronUtil.setMatchSecond(true);
// 添加任务
CronUtil.schedule("*/2 * * * * *",
  () -> Console.log("Hutool task running!"));
// 启动
CronUtil.start();

# 2. Scheduler

  • 核心调度器类,真正执行任务调度的引擎
  • 可创建多个实例,实现多租户/多业务隔离调度
  • 支持自定义线程池(ExecutorService)

# 3. Task

  • 所有定时任务的抽象父类
  • 子类:
    • RunnableTask:包装Runnable任务,提供更多配置选项
    • CronTask:基于 Cron 表达式的任务
    • InvokeTask:反射任务,通过传入类名#方法名,通过反射执行相应的方法

# 4. TaskTable

  • 任务注册表,管理当前调度器中所有任务
  • 提供 add(), remove(),getPattern(), getTask等操作 API

# 5. CronPattern

  • Cron 表达式解析器,支持验证与计算下次执行时间
  • 可独立使用,根据表达式计算下一次执行时间等

# 四、与主流调度任务库对比

特性 Hutool-cron Quartz Spring @Scheduled JDK ScheduledExecutorService XXL-JOB
定位 轻量级单机调度器 企业级分布式任务调度框架 Spring 应用内置定时任务支持 JDK 内置简单周期/延时执行工具 分布式任务调度平台
依赖 仅需 Hutool-cron 较重(需 quartz.jar + 可能需数据库) 依赖 Spring Context JDK 内置 需部署中心(xxl-job-admin) + 执行器(嵌入业务服务)
Cron 表达式 ✅(5位/6位/7位可选) ✅(7位,含年) ✅(6位) ❌(仅支持 fixedRate/delay) ✅(6位/7位可选,支持秒)
动态管理 ✅(运行时增删改查) ✅(但 API 较复杂) ❌(编译期配置) ⚠️(有限支持) Web 控制台可视化管理
集群支持 ❌ ✅(需数据库持久化) ❌(单机) ❌ ✅原生支持:故障转移、分片广播、任务路由
任务持久化 ❌ ✅JDBC ❌ ❌ ✅MySQL
轻量级 ⭐⭐⭐⭐⭐ ⭐⭐ ⭐⭐⭐(依赖 Spring) ⭐⭐⭐⭐⭐ ⭐
学习成本 极低(10分钟上手) 高(Job/Trigger/Store 等概念) 中(需 Spring 知识) 中 高(需理解架构 + 部署运维)
适用场景 工具类、小中型单机应用 企业级分布式系统 Spring Boot 单体服务 简单延时/周期任务 中大型分布式系统(需管控/可观测)

# 五、优势总结

  • 轻量无侵入:不强制依赖 Spring/J2EE 容器,可嵌入任意 Java 应用。
  • API 极简:90% 场景 3 行代码搞定。
  • 动态性优异:非常适合需要运行时调整任务的场景(如后台管理配置定时任务)。
上次更新: 2026/01/03, 21:59:18
XML工具-XmlUtil
全局定时任务-CronUtil

← XML工具-XmlUtil 全局定时任务-CronUtil→

Theme by Vdoing | Copyright © 2025-2026 Hutool | Apache-2.0
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式