美文网首页
定时任务假死问题排查

定时任务假死问题排查

作者: liuhailong | 来源:发表于2018-06-13 19:10 被阅读0次

问题表现

某定时任务过一段时间死掉,不再输出任务日志。

分析

估计不是线程被干死,一般是活儿一直干不完,在等资源啥的。

过程

jstack 2476|grep Scheduler -A 30

发现大部分线程时起时停,但其中一个一直Running。

"myScheduler-9" #29 prio=5 os_prio=0 tid=0x00007fc52cdd3000 nid=0xa9a runnable [0x00007fc5328a6000] ...at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:973) - locked <0x00000006cdb2f4a8> (a java.lang.Object) at sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1375) - locked <0x00000006cdb2f4b8> (a java.lang.Object)

度娘说“SSLSocketImpl.java:973”:

https://blog.csdn.net/liuxiang87/article/details/53736095

等了15分钟,依然是:

"myScheduler-9" #29 prio=5 os_prio=0 tid=0x00007fc52cdd3000 nid=0xa9a runnable [0x00007fc5328a6000] ...at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:973) - locked <0x00000006cdb2f4a8> (a java.lang.Object) at sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1375) - locked <0x00000006cdb2f4b8> (a java.lang.Object)

好吧,凶手就是你。

看代码,确认过眼神,找到对的人。

总结

HttpClient的坑,就不能设个默认值,还无限等待,情痴啊!

一言不合贴代码:

private static final int MAX_SOKET_TIMEOUT =8000;
private static final int MAX_CONNECTION_TIMEOUT = 8000;

private static final RequestConfig REQCONFIG = RequestConfig.custom()     
        .setSocketTimeout(MAX_SOKET_TIMEOUT)         .setConnectTimeout(MAX_CONNECTION_TIMEOUT) .build();

CloseableHttpClient httpClient = HttpClients.custom().setDefaultRequestConfig(REQCONFIG).build();

相关文章

  • 定时任务假死问题排查

    问题表现 某定时任务过一段时间死掉,不再输出任务日志。 分析 估计不是线程被干死,一般是活儿一直干不完,在等资源啥...

  • 定时任务服务假死

  • 记一次生产OutOfMemoryError: Java heap

    前段时间生产系统突然假死,重启后排查问题时发现是内存溢出(OutOfMemoryError: Java heap ...

  • Tomcat假死排查

    最近在重启生产环境项目后偶尔会出现这个情况:浏览器访问页面,无报错一直处于加载状态,服务器上tomcat日志没有访...

  • 定时任务错误总结1

    Linux下定时脚本执行问题定时脚本(crontab)如果遇到设定后不生效的问题,排查问题思路如下:(1)查看脚本...

  • 【Java进阶营】JVM调优(CMS+PerNew垃圾回收)

    0.问题及排查思路 0.1 线上故障 线上服务器服务进程假死,进程还存在,但是日志已经不打印了,访问失败超时不响应...

  • 【celery】任务重复执行

    问题 celery定时任务里面启用延时任务,出现延时任务重复执行的问题。如:定时任务: project_statu...

  • Forcing close of thread 123 use

    记一次mysql5.5假死的问题 状态表现重启mysql网站就可以正常访问排查在mysql文件中找到了日志文件搜索...

  • 记一次tomcat假死问题排查

    发现问题是因为tomcat http接口都访问不了了,但是tomcat进程还在,并且日志不再滚动了。 首先怀疑是内...

  • RabbitMQ Connection Blocked

    1.问题排查 某服务端应用性能测试,时刻A后陷入假死状态,不对外提供服务。体现为: A时刻后,系统资源消耗下跌:1...

网友评论

      本文标题:定时任务假死问题排查

      本文链接:https://www.haomeiwen.com/subject/dvlseftx.html