JAVA EE那些事儿Java学习笔记java专题

[学习笔记]Spring4+Quqrtz2.2.1实现定时实例

2016-12-12  本文已影响145人  H_Man

一、工程创建

1、新建一个工程,导入相应的包Spring3.2.9+Quqrtz2.2.1+commons-logging

集成起来比较简单,对线程无需任何理解,Spring手册上也有清楚的说明。只需写一个POJO,其余的都是配置,而且若使用CronTriggerBean,可以配置很复杂的任务调度。

编写一个普通的JAVA类

根据业务,写一个简单的JAVA类,和普通的类没有区别。并配置到Spring配置文件上中。例:

二、Spring中配置

1、创建job的bean实例

2.使用MethodInvokingJobDetailFactoryBean建立任务

只需要配置即可,配置信息示例如下:

3、使用CronTriggerBean建立规则,调度任务

说明:

jobDetail:任务详情,即所需要调度的任务

cronExpression:调用规则,即什么时候调用。

4.使用SchedulerFactoryBean包装任务

说明:

triggers

触发器,调用哪些任务

autoStartup:是否自动启动,该Bean被初始化后是否自动启动定时任务。

(英文解释)Set whether to automatically start the scheduler after initialization.

schedulerName:给这个计划设定一个名称。

(英文解释)Set the name of the Scheduler to fetch from the SchedulerFactory.

整个配置文件如下:

三、使用

我们在学习Spring中知道,ApplicationContext在加载的时候它会自动生成bean的实例,也就是说这个运行后定时器就会开始执行了,结果如下:

若是不想让它一加载就启动,就可以用beanfactory来加载xml文件,然后再手动打开

核心概念

1scheduler是一个计划调度器容器,容器里面可以盛放众多的JobDetailtrigger,当容器启动后,里面的每个JobDetail都会根据trigger按部就班自动去执行。

2JobDetail是一个可执行的工作,它本身可能是有状态的。

3Trigger代表一个调度参数的配置,什么时候去调。

4、当JobDetailTriggerscheduler容器上注册后,形成了装配好的作业(JobDetailTrigger所组成的一对儿),就可以伴随容器启动而调度执行了。

5scheduler是个容器,容器中有一个线程池,用来并行调度执行每个作业,这样可以提高容器效率。

上一篇 下一篇

猜你喜欢

热点阅读