转载请表明出处,作者 keyboardsun
需要源代码,发邮件到keyboardsun@163.com
代码可以直接使用。
代码下载地址:
http://download.csdn.net/source/1477754
最近在开发JDF项目。项目中需要用到任务调度,自动任务等功能,想自己开发一个,但是看看 quartz 那么强劲,自己开发,开发加调试,可能需要些时日。如果用quartz可能一天就可以搞定,只需要配置点数据就可以了。
下面步入正题。讲解quartz的封装使用。
这里我把任务,以及任务的表达式配置到数据库里面。
如图:
如上图所示,配置了三个任务。
表结构介绍:
字段介绍:
TASK_ID 任务的主键
TASK_CODE 任务编码 ,这里启动任务的时候,作为qz任务的名称
TASK_TYPE_CODE 任务类型,这里启动任务的时候,作为qz任务的分组
TASK_IMPL_CLASS 任务的类。
TASK_EXPRESS 任务执行表达式
STATE_DATE 任务更新时间,这里在任务运行中,如果需要使运行中的任务修改立马生效,需要把这个字段的值设置大于当前时间。
STATE 任务状态
PARMS 任务初始化参数,任务运行的时候,可以从JobDataMap对象中获取该字段的值。
CREATE_DATE 创建日期,没有什么实际意义。
下面需要记录任务执行的日志,如下图所示
如上图所示,log编号是12 的任务正在执行中... STATE是R =run
字段解释
TASK_LOG_ID 任务日志编号
TASK_ID 任务编号
STATE 执行状态,如果是E 的,说明异常了,异常信息会放在REMARKS字段中
START_DATE 执行开始时间
FINISH_DATE 执行结束时间
REMARKS 备注。
下面要开始贴代码啦:如下图所示,一共包括如下这么多的JAVA文件。
一共包括文件为:
ITask.java 业务系统需要实现的接口方法。
JDBC.java 简单的数据库操作类
JobEngine 用于修改运行中的job的信息,定时扫描JOB_TASK配置表的改变信息。
JobTaskBean.java 表JOB_TASK对应的bean
Mouse.java 入口类,启动qz引擎。
Task.java 抽象类,用于记录qz 任务的日志,业务系统的任务需要继承这个类。
TaskLogBean.java 任务日志表TASK_LOG对应的Bean.
Test.java 测试任务。
下面开始贴代码啦:
ITask.java
JDBC.java