很长时间没有写过文章了,因现在从事的JAVA方向的系统开发,所以独自写了一个基础的任务执行框架,目的是根据所需应用场景,定制系统实现任务。此处有借助公司的框架思想实现的。废话不多说了,直接进入正题。
由于此框架的实现目的是为了扩展强度高,对每一个功能都能实现其任务的定制。所以设计思想如下:
-
程序运行开启两个线程
第一个线程是每隔10s查询数据库里是否有待执行的任务,如果有加入到任务队列中,第二个线程是任务执行线程,这个线程直接创建一个线程池,用以执行任务。
线程1:/** * 任务查询线程 * @author libing * */ public class TaskThread implements Runnable { private static Logger logger = LoggerFactory.getLogger(TaskThread.class); @Override public void run() { while(true) { //添加任务到任务队列 TaskDBUtil.addTaskQueue(); try { logger.debug("准备休眠10秒后取数据库任务"); //休眠10秒 Thread.sleep(10000); } catch (InterruptedException e) { logger.error("休眠失败",e); } } } }
线程2:
/** * 具体任务的执行线程 * @author libing * */ public class Busines