Quartz 一点小小的理解

      昨天师兄说我们的项目要发布了,没想今天就找我,要我把项目发布到服务器上,让我很汗啊。以前没有干过的事情,第一次做还是很多有压力的。幸好师兄详细的给我演示了一遍,很快就了解了。上传的时候只要把文件发到服务器就可以了,然后直接重启就完事了。真的好简单的。

 

 

      下午的时候因为要准备入库流程的自动化实现,就看了一下基于Java的开源作业调度框架 Quartz 。最新的版本是2.0,不过考虑到稳定性,最后还是选择了1.8.4。了解这种开源的框架一般就是看文档,然后看示例代码。我先看了一下他的 Quick-start-guide ,主要介绍了一下Quartz的压缩包的文件结构。还有就是它的配置文件,这个看上去很简单,不写都是可以的。看完以后大概的了解了一下他的运行机制,也就是基于多线程,因为他的配置文件中需要配置一个threadPool。简单文档看完以后,就去看他的示例了。

 

       官方总共提供了14个例子,这些例子从简单的Hello World,到复杂的集群应用都有讲到。但是其中最核心的有几个部件:

       Job 接口: 所有需要Quartz调度的作业都要事先这个接口,这个接口只有一个方法 execute(JobExecutionContext context). 在      

                     context中可以拿到具体的作业对象以及一些参数。Job分为有状态和无状态两种,默认是无状态的。如果想要有状态就要

                     实现StatefulJob接口。

       JobDetail 类: 这个是Job的详细描述,会包括作业的 name, group,具体的类,还有就是作业的数据Map.框架调度就是它

 

       Scheduler/SchedulerFactory :  Scheduler接口是Quartz的调度中心了,他的实例化是由工厂方法实现的。常用的工厂方法是

                          StdSchedulerFactory。常用的方法是 scheduleJob(JobDetail, Trigger) : 添加作业和相应的触发器,

                          start():开始调度, shutdown(boolean):中止调度。他需要一个布尔值得参数,来指定中止时对正在运行的作业的处理

                          方式, true:不终止直到所有的作业的完成, false:立刻终止

 

       Trigger 类 : 这个类和数据库中的触发器的概念是一样的,在某个特定的时间触发某个特定的事件。所以Trigger将指定Job的运行

                         时间、重复次数、重复间隔等一系列的参数。SimpleTrigger和CronTrigger是用的比较多的两个实现类。他们最主要

                         的不同就是对 运行时间、重复次数、重复间隔的指定方式。SimplerTrigger就是通过参数指定的,很简单也很容易理解。

                         CronTrigger是通过一种叫 cronExpression的方式实现的,功能强大但也相应的比较难理解。

 

      有了以上的几个最基本的部件,我们就可以构建起一个作业调度程序了,下面是基本的类图:

 

接下来看一段简单的代码:

首先是 Job:

 

接下是简单的调度示例:

 

上面的代码就组成了一个最基本的调度处理。

 

      刚开始学的时候,对cronExpression很不理解。于是在网上转了转,发现了一篇很不错的文章,我就不Copy过来了,想了解的大家可以去看看 Quartz Cron 表达式(时间格式的写法)

      同时还有一篇不错的介绍Quartz的文章,比我这里讲的好了不少 Quartz简介

 

      我只是第一天了解Quartz,可能有错误的地方,如有误导,深感抱歉。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值