对于具有一定规模的大多数企业来说,存在着这样一种需求:存在某个或某些任务,需要系统定期,自动地执行,然而,对大多数企业来说,该技术的实现,却是他们面临的一大难点和挑战。
对于大部分企业来说,实现如上功能,挑战在哪里?挑战一:如何做一个自动服务的系统?
是从0到1开发(费时费力花钱,还不一定开发成功,即使开发成功,也未必好用),还是购买第三方服务(花钱)。
挑战二:如何实现复杂的“定期规则”?
对于简单的定期规则,可以借助于windows自带的执行计划来执行,但若是复杂的定期规则,windows执行计划未必可行,然而,Quartz的cron却很好地解决了该问题,
(可以说,cron在表达时间规则方面,无所不能),除此之外,Quartz能很好地配合windows执行计划,实现系统的定期,自动执行任务。
通过如上概述,我们知道Quartz能很好地解决该问题,那么,什么是Quartz呢?
简言之,Quartz就是一种任务调度计划。
它是由OpenSymphony提供的、开源的、java编写的强大任务调度框架
几乎可以集成到任何规模的运用程序中,如简单的控制台程序,复杂的大规模分布式电子商务系统
可用于创建简单的或复杂的计划任务
包含很多企业级功能,如支持JTA和集群等
本篇文章,主要从Quartz框架核心组件,Quartz基本运行原理,Quartz核心概念和Quartz基本功能实现(代码)等方面来介绍Quartz。
二 Quartz
当要深入研究一个技术时,研究它的体系结构和内部运行原理,不失为一种较好的方式。同理,我们在研究Quartz时,也采用类似的方法,
下图为Quartz的大致结构图。
(一)Quartz关键组件
Quartz比较关键的两个核心组件分别为Job和Trigger
job--表示任务是什么
trigger--表示何时触发任务
(二)Quartz几个关键概念
1.IJob
IJob表示一个接口,该接口只有一个方法签名
public interface IJob { void Execute(JobExecutionContext context); }