SpringBoot集成Quartz 开始正常执行,一段时间后任务不执行

PS: 最近项目需要定时进行数据汇总,引入了Quartz之后发现,开始的时候任务可以执行,一段时间后后台看不到报错,但是任务却不执行。

  • 出现这种问题还没报错,那么大概率是quartz自己的线程全部用完,导致任务无法继续执行。

  • 首先我们的定时任务是基于数据库管理的,非内存。此处可配置。

解决问题的思路

  1. 首先通过日志排查错误,但是没有错误日志。

  2. 查看quartz的数据表qrtz_triggers

    任务就算不执行也会往后延期。这个下次执行时间是动态的。因为任务没法执行,时间就会慢慢的向后延。

  3. 此时首先要查看数据库连接数和quartz的线程总数。

    因为可能数据库的连接数满了也会导致问题(这个问题会报错,因为我遇到了,所以说下)

  4. 查看quartz的线程总数

    此处我设置了50个线程。

  5. 查看正在执行的任务占用了几个线程qrtz_fired_triggers 这个数据表会显示正在执行的线程有哪些

    我这边显示是一个,但是问题没解决前是50个。正好占用了所有的quartz线程数,导致不报错也不运行。

  6. 定位到问题后,你就可以着手看下哪些任务一直占有着线程,解决问题。


===========================================================
作者:峨眉山吴彦祖丶
链接:https://www.jianshu.com/p/965848835585
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
posted @   mingruqi  阅读(1893)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
历史上的今天:
2019-06-16 spring与mybatis三种整合方法
2019-06-16 SSM框架——详细整合教程(Spring+SpringMVC+MyBatis)
点击右上角即可分享
微信分享提示