我现在用的Spring的2.5.6 Quartz的1.6
然后我现在的任务比如设置为5分钟
但是调用的方法执行时间超过了5分钟
理想上我是希望 比如该方法这次调用超过5分钟 那下次调用就会不调用 或延时调用。
我查阅了一些资料发现 国内这方面资料不多。
好不容易在数据库里 qrtz_job_details表里找到了 is_nonconcurrent(VARCHAR2(1)) 这个字段,我后来把他设成了1 不过貌似还是不行。
求大神给个答案。小弟在此谢谢了
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
在定时任务Job类上添加 @DisallowConcurrentExecution 注解
从源码中可以看到这个方法用来控制是否并发执行
而这个方法的判断依据是基于该类是否有@DisallowConcurrentExecution注解
如果加上还是不行,试一试加上注解后把任务删除后重新创建
不并发有两种方式:
1、使用spring xml配置,对jobDetail bean的concurrent属性设置为false;(隐约记得不写默认好像也是false)(推荐)
2、将job设置成有状态,即继承statefuljob接口。这个比较麻烦,不推荐使用。
3、或者将quartz properties配置中的连接池大小,改为1,这样肯定就不能并行(不推荐)