quartz api地址:http://www.quartz-scheduler.org/api/2.2.0/
根据需求选择quartz调度方案:
1,如果调度时间是固定不变的,可以选择静态调度
2,如果调度时间是可变的,可以选择动态调度,即通过配置时间参数或cron表达式实现调度变化。
静态调度方案:
spring 整合quartz
打开web.xml,添加加载路径
初始化上下文。
写具体的定时调度的任务:
创建调度配置文件spring-quartz.xml
注意
Quartz定时任务默认都是并发执行的,不会等待上一次任务执行完毕,只要间隔时间到就会执行, 如果定时任执行太长,会长时间占用资源,导致其它任务堵塞。
在Spring中如果使用 MethodInvokingJobDetailFactoryBean,可以通过设置concurrent="false"属性, 禁止并发执行。
<property name="concurrent"value="true"/>
动态调度方案: |
导入quartz.jar包,或者pom.xml 配置对应的依赖
根据页面参数对象进行参数赋值转换,TaskContextParm是自定义的作业上下文参数对象,在这里特别注意org.quartz.CronExpression.isValidExpression(expression),该方法可以判断我们填写的cron表达式是否可以解析为一个有效的Cron表达式。这里由于页面有时间配置和填写cron表达式两种方式,在参数转换这里解耦。
SchedulerManager.java
原文:http://www.cnblogs.com/samwang88/p/6268597.html