快速体验
- 打开 InsCode(快马)平台 https://www.inscode.net
- 输入框内输入如下内容:
创建一个最简单的Quartz入门示例,要求:1. 实现每分钟打印一次当前时间 2. 代码不超过50行 3. 包含逐步说明注释 4. 不依赖Spring等框架 5. 提供运行效果截图。请用最简化的方式展示Quartz的核心用法。 - 点击'项目生成'按钮,等待项目生成完整后预览效果

最近在学习Java定时任务时发现了Quartz这个轻量级框架,它能让调度任务变得特别简单。作为新手,我记录下自己的入门过程,希望能帮助同样刚接触的同学快速理解核心用法。
1. Quartz框架是什么
Quartz是一个开源的作业调度库,可以创建简单或复杂的定时任务。比如每天凌晨备份数据、每小时统计报表等场景都能用它实现。它的核心优势是解耦任务逻辑与调度规则,通过简单的API就能控制任务执行。
2. 准备工作
需要先引入Quartz依赖,如果用Maven项目只需在pom.xml添加相关依赖即可。注意我们选择不依赖Spring的纯Quartz使用方式,更聚焦框架本身。
3. 核心三要素
Quartz的运行离不开三个关键组件:
- Job:定义具体要执行的任务内容
- Trigger:设置任务触发规则(如时间间隔)
- Scheduler:将任务和触发器绑定并启动调度
4. 实现每分钟打印时间
以下是实现步骤的精简说明(完整代码约40行):
- 创建Job类:继承Quartz的Job接口,在execute方法中编写打印时间的逻辑
- 定义Trigger:使用SimpleTrigger设置每分钟触发一次的规则
- 启动调度器:通过StdSchedulerFactory创建调度器实例,绑定Job和Trigger后启动
过程中发现几个新手容易踩的坑:
- 需要显式调用scheduler.shutdown()防止程序不退出的问题
- SimpleTrigger的重复次数设置为-1表示无限循环
- 建议在Job类中添加@DisallowConcurrentExecution注解防止并发问题
5. 运行效果
启动程序后会看到控制台每分钟输出一次当前系统时间,类似这样的格式:
当前时间:2023-08-20 14:05:00
当前时间:2023-08-20 14:06:00
6. 扩展思考
通过这个例子掌握了基础用法后,还可以尝试:
- 改用CronTrigger实现更复杂的时间表达式
- 结合数据库存储任务状态实现持久化
- 监听任务执行事件进行日志记录
我在InsCode(快马)平台上测试时,发现它的在线编辑器能直接运行这类Java项目,不需要本地配置环境特别方便。特别是写完代码后可以实时看到输出结果,对新手调试非常友好。

下次准备试试用Quartz做更复杂的任务调度,比如结合邮件发送功能。这种边学边练的方式,比单纯看文档要高效得多。
快速体验
- 打开 InsCode(快马)平台 https://www.inscode.net
- 输入框内输入如下内容:
创建一个最简单的Quartz入门示例,要求:1. 实现每分钟打印一次当前时间 2. 代码不超过50行 3. 包含逐步说明注释 4. 不依赖Spring等框架 5. 提供运行效果截图。请用最简化的方式展示Quartz的核心用法。 - 点击'项目生成'按钮,等待项目生成完整后预览效果
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
1295

被折叠的 条评论
为什么被折叠?



