定时任务卡死问题排查

背景描述:使用quartz建立多个定时任务,每5分钟执行一次。定时任务中包含httpclient的网络访问,及druid的数据库访问。执行一段时间后不定期(可能10天半个月,可能好几个月)卡死。
表现状况为:

  • 日志到某个时间点突然没有输出了,也没有异常日志记录,排除当时磁盘空间不足的问题
  • httpclient使用的4.3版本,出问题的生成环境下已在request中设置3种超时时间。实际测试中除了setConnectTimeout与setConnectionRequestTimeout即使不设置,程序也会抛出超时异常。只有当setSocketTimeout不设置的时候,程序会出现日志不打印一直卡死的状况,但与我要解决的问题来看还是有略微区别。当时的内存状况不一致。(图1为生产环境上卡死时的内存,图2为本机测试时,故意不设置setSocketTimeout超时情况下的内存图 )
    blob.jpg(图1)blob.jpg(图2)

  • 生成环境下设置了数据库超时,本机测试时暂时还没有测试数据库超时的情况。

下次生成环境上再发生此类状况的排查步骤:

  1. 本机打开jdk安装目录下的
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值