基于quartz的任务管理雏形

2018-02-27 10:57:34来源:oschina作者:涩谷直子人点击

分享

使用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开源系统,比较好用

微信扫一扫

第七城市微信公众平台