定时任务,多线程下查询插入数据情情况下,发现程序跑一段时间就会卡住,查询数据库发现很多的Sleep连接,数量刚好就是我在配置文件里配置的Druid连接数,所以简单分析了下应该是和druid配置有关。
然后看到了这篇博客里提到的修改存活时间和检测时间的办法,经过测试解决了问题,这里对作者表示感谢。
https://blog.csdn.net/wuhen6390/article/details/84834137
下面是我在测试环境下修改的参数配置,供参考:
注意:测试环境数据库为PCIE固态硬盘,所以时间调的比较小,生产环境下需要根据实际情况调节参数
min-evictable-idle-time-millis: 2000
time-between-eviction-runs-millis: 30000
下图是我在调节参数之后任务执行完毕之后再次查询mysql连接情况的截图,查询命令如下:
show full processlist;