Quartz Plus - 基于 Spring 的 Quartz 任务调度框架扩展
在工作中,我经常会使用到 Quartz,一个开源的分布式任务调度框架。然而,尽管 Quartz 提供了强大的功能,我在使用过程中却遇到了一些痛点:
首先,Quartz 不支持注解,这导致我们只能通过硬编码的方式创建 job 和 trigger,并手动注册到 Quartz scheduler 中。
其次,Quartz 缺乏一个方便的任务调度管理界面。在实际工作中,我常常需要手动触发某个 job 的执行,然而由于缺少管理页面,我们只能通过修改数据库中 trigger 的执行时间来间接触发 job 的执行,这显然不是一个高效的方式。
为了解决这些问题,提高开发效率,我基于 Spring 对 Quartz 进行了扩展,开发了一个名为 Quartz Plus 的工具库:
支持注解的方式快速定义 Job 和 Trigger:使用
@QuartzJob
和@QuartzTrigger
注解,我们可以快速地定义 job 和 trigger,并且它们会自动注册到 Quartz Scheduler 中。实现了一个带有管理界面的 Quartz 任务调度中心:该任务调度中心提供了完整的管理界面,包括 job 管理、Quartz 实例管理、用户管理等功能,使我们能够更方便地管理和监控任务调度。
项目源码地址:https://github.com/YuanInCode/quartz-plus.git
快速上手
快速创建 Job 和 Trigger
使用 @QuartzJob
和 @QuartzTrigger
注解快速创建 job 和 trigger,如下所示:
配置 Spring Boot
在 Spring Boot 项目的配置文件中引入依赖,并启用 Quartz Plus 并指定 job 包路径,示例如下:
Quartz 任务调度中心使用指南
要使用 Quartz 任务调度中心,你需要在你的服务器上部署 quartz-plus-scheduler-center
和 quartz-plus-web-console
这两个服务。
本地启动演示
在 IDE 中启动 quartz-plus-scheduler-center
,或者使用 java -jar quartz-plus-scheduler-center-1.1.0.jar
启动。
在 IDE 中启动 quartz-plus-web-console
,或者使用 nginx 部署。
在浏览器中打开 http://localhost:8080 即可查看已注册的实例和 Job。
系统内置了两个登录用户:
用户 1:用户名为
admin
,密码为123456
,拥有管理员权限。用户 2:用户名为
quartz
,密码为123456
,仅具有普通用户权限。
在 Spring Boot 项目的配置文件中添加以下配置:
版权声明: 本文为 InfoQ 作者【redcoder54】的原创文章。
原文链接:【http://xie.infoq.cn/article/9a3229b879538ada533fbeea3】。文章转载请联系作者。
评论