Scheduled和HttpClient的连环坑】的更多相关文章

首页 > JAVA > @Scheduled和HttpClient的连环坑 @Scheduled和HttpClient的连环坑 2018-03-22 曾经踩过一个大坑: 由于业务特殊性,会定时跑很多定时任务,对业务数据进行补偿操作等. 在Spring使用过程中,我们可以使用@Scheduled注解可以方便的实现定时任务. 有一天早上突然发现,从前一天晚上某一时刻开始,所有的定时任务全部都卡死不再运行了. @Scheduled默认单线程 经排查后发现,我们使用@Scheduled注解默认的配置的…
之前做项目的时候,调用api都是使用的HttpWebRequest 最近一个项目改用HttpClient,用了之后,感觉很坑. 1.高并发情况下,造成tcp连接占用的端口无法释放(时间为2MSL,此时tcp连接状态为TIME_WAIT) 造成这个的原因是,代码中HttpClient的实例,都是new了之后就dispose,用tcpview工具查看,会看到大量的TIME_WAIT状态的连接,不能及时释放,假设短时间内大量请求进来,那么很有可能,有大量的链接处于等待状态,极端点,造成服务器全部的端口…
摘要: 事情是这样的前两周在做项目的时候碰到一个需求---要求每天晚上执行一个任务,公司统一使用的是 xxl-job 写定时任务的,我当时为了方便自己,然后就简单的使用了Spring的那个@Scheduled来定时,当时写完觉得这也太方便了吧,以后我就只使用这个方法定时了,方便又快捷,用什么 xxl-job 呢(要什么自行车呢),哈哈. 需求: 要求在当天11:58的时候需要生成当天任务的报告,然后在第二天12:10得时候生成第二天得任务,-----本来我使用了两个@Scheduled注解,想用…
问题现场 在多线程环境下使用HttpClient组件对某个HTTP服务发起请求,运行一段时间之后发现客户端主机CPU利用率呈现出下降趋势,而不是一个稳定的状态. 而且,从程序日志中判断有线程处于hang住的状态,应该是被阻塞了. 问题排查 一开始找不到原因,怀疑是多线程并发导致的死锁问题,但是通过代码审查并未定位到任何可能的多线程并发问题. 甚至开始怀疑是否是因为内存资源不够引起JVM频繁GC到导致业务线程被暂停,但是从GC的日志输出结果看,GC是正常的. 于是,进入一种丈二和尚摸不着头脑头脑的…
业务需要一个在微信上能付款的功能,于是乎想到了最普遍的支付宝,坑爹的是T与A是水火不容啊,默默的还是接微信支付吧,没想到从此掉进了连环坑…… 网上写微信支付接口的还是很多,PHP官方有(鄙视源码作者,连参数对应都错了,能跑通才怪),NET版 微信支付--入门篇 这篇算是比较全的,java版. PHP的只能参考,终究还是先按NET版的还创建项目,不过文章里面也没具体写到如何前后台交互(偶用的MVC),对于初次接触的人来说只能问题来一个解决一个. 至于怎么从0开发就不用详细说明了,参考这位仁兄的 微…
zabbix是什么在此就不多作介绍了,可以参考之前的文章 零代码如何打造自己的实时监控预警系统 ,这篇主要介绍安装及注意事项. 主要分为服务端和客户端安装,客户端又分为Linux.Windows. 服务端安装环境 CentOS6.8 Zabbix3.2 Mysql5.6 Apache PHP56w 环境准备 关闭selinux setenforce 0 进入mysql,创建zabbix用户并授权 mysql -uroot -p CREATE DATABASE zabbix CHARACTER S…
在了解了Rust中的所有权.所有权借用.生命周期这些概念后,相信各位坑友对Rust已经有了比较深刻的认识了,今天又是一个连环坑,我们一起来把智能指针刨出来,一探究竟. 智能指针是Rust中一种特殊的数据结构.它与普通指针的本质区别在于普通指针是对值的借用,而智能指针通常拥有对数据的所有权.在Rust中,如果你想要在堆内存中定义一个对象,并不是像Java中那样直接new一个,也不是像C语言中那样需要手动malloc函数来分配内存空间.Rust中使用的是Box::new来对数据进行封箱,而Box<T…
最近帮新来的校招同学排查一个线上问题,问题本身不是很难,但是过程中踩到了一个arthas的坑,挺有意思的. 同时,也分享下在排查过程中使用的一些比较实用的工具,包括tcpdump.arthas.simpleHTTPServer等,希望能对大家有所帮助. 1.问题描述 新开发的一个功能,简单来说,就是读取数据库的数据展示在前台. 本地启动服务调试,用postman调用api,返回数据显示正常,数据中的中文也正常. 但是部署到线上环境后,通过chrome浏览器调用和postman调用接口,返回的非中…
一.背景 使用SpringWebFlux的WebFilter时,由于不熟悉或一些思考疏忽,容易出现未知的异常.记录一下排查与解决方案,给大家分享一下. 二.问题 2.1 问题描述 在测试接口方法时,出现的错误信息如下(对一些项目路径做了修改): java.lang.IllegalStateException: COMPLETED at org.springframework.http.server.reactive.AbstractListenerReadPublisher$State.subs…
今天运行一个php项目时,突然发现访问不了了.起因应该是mac系统升级,导致apache配置文件完全恢复到了默认状态,一切归零.作为一个经验尚欠的前端,对这些后台配置完全是一窍不通,赶紧微信联系了小胖.最终经过小胖在远方耐心的帮助和指导下,完美解决了运行项目中所遇到的连环坑,折腾了一下午直到晚上八点多.或许对于后端来说,这完全是小菜一碟,然后对于我这个外行来说简直是个灾难.想想还是事必躬亲的好,之前别人给我配服务器环境的时候从来没记住来龙去脉,经过今天这一番疯狂操作和折腾,想必以后再遇到这种问题…