1.最近生产环境问题比较多,服务端连接池,接口包连接池各种泄露,监控报警,并且quartz 部分定时任务最近也出现问题:
问题描述:部分quartz定时任务没有启动。
定时任务:
<!--设置调度 总管理类 如果将lazy-init='false'那么容器启动就会执行调度程序 -->
<bean id="startQuertz" lazy-init="false" autowire="no" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<property name="triggers">
<list>
<ref bean="pushRouteTrigger"/>
<ref bean="sendJcIm1Time" />
<ref bean="sendJcIm2Time" />
<ref bean="sendCloseOrderTime" />
<ref bean="sendOrderTime" />
<ref bean="sendWayBillTime" />
<ref bean="receiveBackInfoByMftNoTime" />
<ref bean="sendPayConfirmTime" />
<ref bean="sendProductIdTime" />
<ref bean="sendAccountBuyerTime" />
</list>
</property>
<property name="taskExecutor" ref="executor" />
</bean>
思路:此问题不难排查,跟踪下spring集成quartz的源码即可。
环境准备:idea导入eclipse项目,然后关联spring源码的jar包即可调试。(第一次用idea调试生产问题,感觉还不错)
通过调试SchedulerFactoryBean类的afterPropertiesSet()方式最终发现问题:XML配置文件中有两个bean id为“startQuertz”的SchedulerFactoryBean. 导致其中一个FactoryBean初始化后,另外一个就不初始化啦,因为spring默认是单例的。----这你妹,完全是有人代码乱copy的结果。
分享到:
相关推荐
NULL 博文链接:https://medbricom.iteye.com/blog/1782765
C# Quartz.Net定时任务操作明细、完整过程 每种场景均有涉及,代码Copy稍作修改就可使用
Quartz.net作业调度自定义定时执行任务多任务执行c#,定时执行任务,如超时取消订单,自动确认收货等等
上一次传错了资源了,这个是正确的,包含quartz动态定时任务的
Spring Quartz 动态暂停、恢复、修改定时任务的一个demo,使用maven构建,框架采用spring springmvc jpa,数据库mysql,含数据库脚本,运行可用,页面访问地址http://localhost:8080/quartz_demo/quartz/list
spring3 配置quartz定时任务的使用。一个小例子。可直接运行Test.java。就可以启动定时任务。每10秒钟执行一次,可以根据自己配置。
数据库存储定时任务,springboot启动后主动加载 创建定时任务及停止、删除定时任务,可根据业务需求创建cron表达式设置执行周期
传统Spring+Quartz实现的定时器一般都是通过配置文件中配置的,这就意味着如果我们修改了定时任务的时间,就得重新启动一下Tomcat,而且每次新建一个任务就得在spring中添加相关的配置信息,非常麻烦。基于上面的...
1.简单的一个定时任务Demo,可直接在eclipse中运行。 2.注释全面,简单易懂 3.比较全面,如果当前定时任务没有执行完,则下一个也不能执行
spring+mybatis maven quartz定时任务管理。 1、界面和部分代码来源于网络 2、设计思路:定义一个定时任务接口,每个定时任务实现该接口,项目启动时获取该接口所有实现类,并保存到数据库形成定时任务信息。项目...
spring注解Quartz定时执行功能
Spring 3整合Quartz 1.8实现定时任务三:动态暂停 恢复 修改和删除任务 任务保存到数据库,系统启动时读取数据库,页面显示加载,并管理 注:spring3+quartz2动态任务调度,任务保存在内存中,页面显示动态管理版...
asp.net定时任务,只要运行页面或者发布到iis(启动iis)之后每隔10秒执行一次
springboot整合quartz,实现数据库方式执行定时任务。把定时任务信息存进数据库,项目启动后自动执行定时任务。
spring3 配置quartz定时任务的使用。一个小例子。可直接运行Test.java。就可以启动定时任务。
一个测试工具,定时任务相关的。采用 springboot和quartz结合的方式,实现前台控制后台的定时任务。可以新增/删除/修改/启动/暂停/查询后台定时任务。
quartz-all-1.6.0.jar包,创建Java定时任务,指定时间启动程序
我们通常写的timer都是用main方法写的定时器,但同样我们也需要根据服务器启动后定时器也启动的 定时执行任务。不过有个致命伤就是集群方面跟quartz不能比,此方法代码做参考不错,如果要用,那么这个方法在一台...
一个基于springboot的quartz集群dome。 ...类名:(及时定时任务的类如:...因为定时任务是根据数据库内任务状态启动的所以避免了并发重复的显现。 本项目没有接入多个节点所以支持集群却没有真正实现,否则不好启动。
现有需求需要每天早上2点和下午5点执行一个方法Synchronization.run(): ...-- 最终启动的配置 --> class="org.springframework.scheduling.quartz.SchedulerFactoryBean"> </bean>