【weblogic+quartz】定时任务重复执行的问题解决

【weblogic+quartz】定时任务重复执行的问题解决

项目环境

项目是比较老的spring web应用
服务器环境为windows 2008;
应用服务为weblogic10.3.6;
quartz依赖jar包为quartz-all-1.6.0.jar;
ora.quartz.jobStore.class=org.quartz.simpl.RAMJobStore;

出现问题

问题出现场景为定时获取数据库预警信息,并以邮件方式发送给指定接收人,但在生产环境部署后,发生了重复发送,问题定位到quartz的重复执行.
博客搜了大部分都是关于tomcat的和jobStore为JDBC模式的解决方案.其中tomcat是重复加载导致的,可通过修改tomcat的server.xml文件进行解决;jobStore为JDBC模式的可通过加锁来进行解决:org.quartz.jobStore.acquireTriggersWithinLock=true
但是都不适合我的情况

问题解决

后来注意到applicationContext.xml中关于调度器的配置,其中的lazy-init属性为"false",即容器启动就会实例化该bean,若值为"true",则第一次向容器通过getBean索取bean时实例化.猜测可能也属于是bean的重复实例化导致的问题,就将lazy-init = “true”,之后 测试环境测试不再重复执行,但生产仍然出现了重复执行的问题.

之后参考这位仁兄的博客
https://blog.csdn.net/zhujianpengzha/article/details/8140442
将quartz配置单独创建xml文件,并将lazy-init = "true"后,问题解决.

注:该笔记仅作为个人记录复习用,比较简略,见谅

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值