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

一、工程创建

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


[学习笔记]Spring4+Quqrtz2.2.1实现定时实例_第1张图片

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

编写一个普通的JAVA类

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

[学习笔记]Spring4+Quqrtz2.2.1实现定时实例_第2张图片

二、Spring中配置

1、创建job的bean实例


2.使用MethodInvokingJobDetailFactoryBean建立任务


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


[学习笔记]Spring4+Quqrtz2.2.1实现定时实例_第3张图片

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



[学习笔记]Spring4+Quqrtz2.2.1实现定时实例_第4张图片

说明:

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

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

4.使用SchedulerFactoryBean包装任务


[学习笔记]Spring4+Quqrtz2.2.1实现定时实例_第5张图片

说明:

triggers

触发器,调用哪些任务

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

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

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

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

整个配置文件如下:


[学习笔记]Spring4+Quqrtz2.2.1实现定时实例_第6张图片


[学习笔记]Spring4+Quqrtz2.2.1实现定时实例_第7张图片
[学习笔记]Spring4+Quqrtz2.2.1实现定时实例_第8张图片

三、使用


[学习笔记]Spring4+Quqrtz2.2.1实现定时实例_第9张图片

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


[学习笔记]Spring4+Quqrtz2.2.1实现定时实例_第10张图片

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


[学习笔记]Spring4+Quqrtz2.2.1实现定时实例_第11张图片
[学习笔记]Spring4+Quqrtz2.2.1实现定时实例_第12张图片

核心概念

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

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

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

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

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

你可能感兴趣的:([学习笔记]Spring4+Quqrtz2.2.1实现定时实例)