Spring 整合 Quartz -实现 动态设定Trigger参数(三)
2009-08-27 14:22
525 查看
前言:
虽然在网上已经有帖子实现了动态设定 spring quartz trigger 参数的动态设定了,如: http://hi.baidu.com/vip099/blog/item/51bbb03d555f5702bba16766.html我在看完这些帖子之后,感觉有些实现的代码是多余,故将我的改进版特征如下:
总结
1 、 Quartz 既然和 Spring 整合了,那么就不用考虑什么低侵入设计了,最好能够最大化利用 Spring 的特性。2 、在 SpringQuartz 中,开发者不需要像在纯 Quartz 那样关心 Trigger 、 Job 、 JobDetail 的关联关系和生命周期了,一切有 Spring 搞定。
3 、 Spring 中的 SimpleTriggerBean 和 CronTriggerBean 分别继承了 Quartz 中 SimpleTrigger 和 CronTrigger ,并且实现了 BeanNameAware 、 JobDetailAwareTrigger 、 InitializingBean 接口。
实现 BeanNameAware :获取 xml 配置文件中的 bean id 并且设值为 beanName ,设定其他的参数属性。
实现 InitializingBean :如果这个 CronTriggerBean(SimpleTriggerBean) 实例的 triggrName 没有设置,那么在 afterPropertiesSet() 方法中将 beanName 设定为 triggerName
实现 JobDetailAwareTrigger : SpringQuartz 入口 SchedulerFactoryBean 会自动探测、设定 trigger 、 jobDetail 的关系,通过这个接口获取 Trigger 实例相应的 jobDetail 。
4 、 QuartzJobBean 实现 Job 接口,在 job.execute 调用 executeInternal 抽象方法。如果需要实现stateful job,那么在QuartzJobBean的子类中实现StatefulJob接口就可以了。
5 、关于 SimpleTriggerBean : Spring 的 SimpleTriggerBean 的新加的时间参数为: startDelay 。根据 startDelay 来确定 SimpleTrigger 的 startTime :
setStartTime(new Date(System.currentTimeMillis() + this .startDelay));
如果重新设定时间,那么只需要重新设定 startTime 和 repeatInterval 就可以了,不用处理 startDelay 。
代码
http://download.csdn.net/source/1609474相关文章推荐
- Spring 整合 Quartz -JOB类型 与 动态设定Trigger参数(二)
- Spring整合Quartz实现持久化、动态设定时间
- Spring整合Quartz实现持久化、动态设定时间
- Spring整合Quartz实现持久化、动态设定时间
- Spring 3整合Quartz 2实现定时任务二:动态添加任务
- Spring 3整合Quartz 2实现定时任务三:动态暂停 恢复 修改和删除任务
- Spring 和Quartz2 整合实现动态定时任务
- Spring3整合Quartz2实现定时任务及动态任务调整(添加删除暂停恢复)--推荐
- Spring整合Quartz实现动态定时器
- springboot整合Quartz实现动态配置定时任务
- Spring 3整合Quartz 2实现定时任务三:动态暂停 恢复 修改和删除任务
- Spring 3整合Quartz 2实现定时任务二:动态添加任务
- spring整合quartz,实现自助动态管理自动任务
- Spring 3整合Quartz 2实现定时任务二:动态添加任务
- Spring整合Quartz实现动态定时任务
- springboot整合Quartz实现动态配置定时任务
- Spring 3整合Quartz 2实现定时任务三:动态暂停 恢复 修改和删除任务
- Spring整合Quartz实现动态定时器的示例代码
- Quartz与spring整合实现动态添加任务