Spring中的定时调度(Scheduling)和线程池(Thread Pooling)
2015-10-09 14:11
423 查看
使用triggers和SchedulerFactoryBean来包装任务
我们已经创建了job details,jobs。我们同时回顾了允许你调用特定对象上某一个方法的便捷的bean。 当然我们仍需要调度这些jobs。这需要使用triggers和SchedulerFactoryBean来完成。Quartz自带一些可供使用的triggers。Spring提供两个子类triggers,分别为CronTriggerBean和SimpleTriggerBean。Triggers也需要被调度。Spring提供SchedulerFactoryBean来暴露一些属性来设置triggers。SchedulerFactoryBean负责调度那些实际的triggers。
几个例子:
<bean id="simpleTrigger" class="org.springframework.scheduling.quartz.SimpleTriggerBean"> <!-- see the example of method invoking job above --> <property name="jobDetail" ref="jobDetail" /> <!-- 10 seconds --> <property name="startDelay" value="10000" /> <!-- repeat every 50 seconds --> <property name="repeatInterval" value="50000" /> </bean> <bean id="cronTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean"> <property name="jobDetail" ref="exampleJob" /> <!-- run every morning at 6 AM --> <property name="cronExpression" value="0 0 6 * * ?" /> </bean>
现在我们创建了两个triggers,其中一个开始延迟10秒以后每50秒运行一次,另一个每天早上6点钟运行。我们需要创建一个SchedulerFactoryBean来最终实现上述的一切:
<bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean"> <property name="triggers"> <list> <ref bean="cronTrigger" /> <ref bean="simpleTrigger" /> </list> </property> </bean>
更多的属性你可以通过SchedulerFactoryBean来设置,例如job details使用的Calendars, 用来订制Quartz的一些属性以及其它相关信息。 你可以查阅相应的JavaDOC(http://www.springframework.org/docs/api/org/springframework/scheduling/quartz/SchedulerFactoryBean.html)来了解进一步的信息。
相关文章推荐
- Struts2软件包的下载和配置
- java例子9 链表结构
- JavaSE8-The New Date and Time API(1)
- java.io.RandomAccessFile
- Java语言使用注解处理器生成代码 —— 第一部分:注解类型
- java - (08) JNDI
- javaweb文件下载
- Java基础:为何在JDK安装路径下存在两个JRE??
- 根据两点经纬坐标计算两点间的距离[JAVA]
- java并发编程学习: 守护线程(Daemon Thread)
- Struts2国际化其二
- 数据处理---Java数据处理之消息队列
- Java IO 之 FileInputStream & FileOutputStream源码分析
- 带哨兵的单链表的操作java版本
- java对象 深度克隆(不实现Cloneable接口)和浅度克隆
- 【转】Java基础:JDK JRE JVM三者之间的联系
- java学习---基础语法
- HashMap和Hashtable的区别
- java实现阿拉伯数字转换为汉字数字源代码
- 浅谈JAVA集合框架