JAVA轻量级定时任务框架

本文介绍了一个轻量级的JAVA定时任务框架,用户只需配置任务类路径和定时表达式即可。框架包括任务流程图、定时类设计、定时任务工具类和配置文件。其中,工具类包含初始化配置、初始化任务和执行任务的方法,同时欢迎优化建议。测试结果显示任务按预期每分钟执行一次。
摘要由CSDN通过智能技术生成

任务流程图

用户通过该框架只需在配置文件中配置好继承了DTJobBase类的路径和定时任务表达式,即可开启定时任务,属于非常轻量级的定时任务框架。具体流程图如下:

任务流程图

定时类设计

定时任务抽象类,该类对外提供了一个jobRun()抽象方法,使用时只需继承该类,然后实现该抽象方法即可。

/**
 * 任务抽象类/已下仅含有核心代码
 * @author 康驻关
 * Fri Jul 19 09:00:00 CST 2019
 */
public abstract class DTJobBase extends Thread {
   
	
	private Object _result = null;//用于存放任务执行返回结果
	private Thread _t = null;//用于执行当前线程
	private Exception _e = null;//用于存放捕获异常
	private long _timeStart = 0;//任务开始时间
	private long _timeCost = 0;//任务消耗时间
	
	/**
	 * 自定义任务接口
	 * @return
	 * @throws Exception
	 */
	public abstract Object jobRun() throws Exception;
	/**
	 * 执行任务并记录任务花费时间
	 */
	@Override
	public void run() {
   
		this._timeStart = System.currentTimeMillis();
		try {
   
			_result = jobRun();
		} catch (Exception ex) {
   
			this._e = ex;
		}
		this._timeCost = System.currentTimeMillis() - this._timeStart;
	}
}

定时任务工具类设计

定时任务工具类设计,主要是
initProperties(); // 初始化配置
initJobs(); //初始化Job任务
initWatcher(); //扫描并执行定时任务
这三个方法。在checkJobs()方法里我有一段代码,不知道是否可以优化程序,有大神看到后跟我留言,谢谢了!

/**
 * 开始定时任务工具类/已下仅含有核心代码
 * @author 康驻关
 * Fri Jul 19 09:00:00 CST 2019
 */
public class CTUtil {
   

	private static HashMap<String, String> _CTProperties = null; // 配置文件列表,key为类名,value为克隆表达式
	private static HashMap<String, CTJobBase> _CTJobs = null; // 定时任务列表,key为任务token,value为定时任务
	private static Boolean _Suspended = false; // 任务暂停
	private static Watcher _Watcher = null;

	/**
	 * 任务检测类
	 */
	protected static class Watcher implements Runnable {
   

		private boolean _Cancelled 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值