Spring 整合 Quartz -实现 动态设定Trigger参数(三)

前言:

虽然在网上已经有帖子实现了动态设定 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


如果重新设定时间,那么只需要重新设定 startTime repeatInterval 就可以了,不用处理 startDelay

 

代码

 http://download.csdn.net/source/1609474

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值