一、工程创建
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文件,然后再手动打开
核心概念
1、scheduler是一个计划调度器容器,容器里面可以盛放众多的JobDetail和trigger,当容器启动后,里面的每个JobDetail都会根据trigger按部就班自动去执行。
2、JobDetail是一个可执行的工作,它本身可能是有状态的。
3、Trigger代表一个调度参数的配置,什么时候去调。
4、当JobDetail和Trigger在scheduler容器上注册后,形成了装配好的作业(JobDetail和Trigger所组成的一对儿),就可以伴随容器启动而调度执行了。
5、scheduler是个容器,容器中有一个线程池,用来并行调度执行每个作业,这样可以提高容器效率。