基于quartz的任务管理雏形

使用quartz主要是为了完成任务调度功能,百度一下,基本都是介绍各种原理和简单的使用示例,可以实现单独使用或者集成spring使用。对于单独使用quartz,且以调度平台的方式使用则介绍不多。下面展示一下简单的调度平台的开发!(问题还有很多,慢慢解决吧)

结合搜索到的内容,本地搭建了一个简单的平台示例。

代码码云地址:https://gitee.com/seguzhizi/JobManager

简单看下:

  • 展示任务列表:

http://localhost:8080/JobManager/show

暂无任务

  • 添加任务:

界面还没做,可以在本地通过直接访问url来添加:

http://localhost:8080/JobManager/jobA/jobGroupA/add

具体路径可以参见SchedulerController方法

添加之后,自动跳转到展示界面:

后台已在运行,部分输出如下:

  • 暂停

点击暂停之后,不再继续运行,输出停止

界面展示的状态已变化:PAUSED

  • 立即执行一次

此时界面展示可能有点bug,展示如图:

刷新一下就OK了

  • 恢复

再次点击恢复:

状态变为NORMAL,后台输出也正常了

  • 删除

直接删除即可

  • 修改表达式

这个直接修改quartz库中cron表的对应表达式即可,暂未实现

---------------

1:checkout代码导入eclipse

2:本地开启mysql,执行main/resources/quartz.sql

3:部署至tomcat直接启动(导入工程不报错)

4:访问即可

---------------

几个点说明下:

1:注意quartz.properties的配置

2:注意SchedulerFactoryBean的bean配置

3:一个job实例对应多个trigger,但是一个trigger只能触发一个job实例

4:quartz的scheduler是一个大管家,在service中也可以看到调度任务都是由它来控制的(将其注入的)

5:目前添加任务时,Class参数是写死的,需要扩展

6:这个是本地的job实例,还有一个remote类型的实例,目前还没有试,如果有意引入定时任务管理系统,可以考虑码云上的xxl-job开源系统,比较好用

猜你喜欢

转载自my.oschina.net/u/1474131/blog/1623498
今日推荐