quartz中的scheduler.pauseJob和scheduler.pauseTrigger问

刘吵 发布于 2010/11/05 11:12
阅读 4K+
收藏 1

1.当我先用pauseTrigger,再用resumeTrigger来恢复Trigger,它会将pause期间的任务一次次地运行起来。但我要的效果是错过的时间里任务就不要运行了,到下次指定的时间再运行任务。不知道如何实现呢?
使用pauseJob和上面同样的效果,pauseJob和pauseTrigger也还是和上同样的问题请问我该怎么办了??




2.还有就是我在job中execute方法写的是死循环,此时调用pauseJob也停止不下来,请问这个如何解释了呢?

加载中
0
白石
白石

1.  pauseTrigger()这个方法是不符合你的要求的,可以重新设置CronTrigger的Cron表达式,再调用Scheduler的rescheduleJob()方法来重新触发Job.可以参考:http://hi.baidu.com/vip099/blog/item/51bbb03d555f5702bba16766.html(Quartz 在Spring中动态设置cronExpression)

2. 你死循环了神仙也帮不了你啊,你要自己实现:InterruptableJob接口中的void interrupt()方法,当接收到Scheduler发出的中断信号后,自己来处理.

0
白石
白石

还有更简单的方法就是在你写的Job里配置一个pause属性,用JMX来管理你的Job,我开发的一个基于Spring+Quartz的可分布式任务调度器就是这样做的.

0
刘吵
刘吵

非常感谢你!!

0
刘吵
刘吵

如果我要实现暂停,我怎么重新设定CronTrigger的cron表达式呢?可否具体点?我没有用spring quartz自身不可以实现该功能吗???

你说的那个加个pause控制job这样和实现接口InterruptableJob增加interrupable属性是一样的了吧

!!

返回顶部
顶部