Mysql process 问题,kill不用的process

news/2024/12/29 19:55:07/

这个一般会出现在连接池中,导致连接池数量不够然后连接失败,所以要kill

我们kill的都是sleep的,就是没有释放但是不用的链接

前言

sql中的show full processlist是查看线程,实际就是查这个表

select * from information_schema.processlist where COMMAND = 'Sleep' and Time>30

然后在配上kill id,就能释放,为了以后方便寻找,我把他写成了接口,我通过shell脚本的curl 调用这个接口,就能实现轮询释放。

代码实现

controller层代码

 @GetMapping("kill")public RsJsonBean killProcess(@Param("key") String key) {SqlSession mybaiteSession = null;try {if (key.equals("#sdfada!")) {//密钥,当这个成立时,则会释放所有线程,腾出空间mybaiteSession =DBCPUtil.getMybaiteSession();infoMapper = mybaiteSession.getMapper(InfoMapper.class);List<HashMap> hashMaps = infoMapper.selectProcess();for (int i = 0; i < hashMaps.size(); i++) {HashMap hashMap = hashMaps.get(i);int id =Integer.parseInt(hashMap.get("ID").toString());infoMapper.killProcess(id);}mybaiteSession.commit();return new RsJsonBean(1, "成功释放");}//密钥不匹配return new RsJsonBean(0, "释放失败:" + "密钥不匹配");} catch (Exception e) {return new RsJsonBean(0, "释放失败:" + e.getMessage());} finally {if (mybaiteSession != null) {mybaiteSession.close();}}}

mybaites代码,sql

//查询所有符合条件的线程
List<HashMap> selectProcess();
//释放某个线程
int killProcess(@Param("id") int id);
<select id="selectProcess" resultType="java.util.HashMap">select * from information_schema.processlist where COMMAND = 'Sleep' and Time>15
</select><delete id="killProcess">kill #{id}
</delete>

shell脚本

通过curl方式的特殊字符不能用。

curl -XGET http://127.0.0.1:8087/info/kill?"key=23aoTest"

-XGET代表get请求,crul中参数拿""标起来

#!/bin/bash
while true
do
echo "开始,请等待5秒"sleep 5secho `curl -XGET http://127.0.0.1:8087/info/kill?"key=23aoTest"`echo `date`echo "-----"
done

 


http://www.ppmy.cn/news/7324.html

相关文章

Qt样式(qss)使用小结(软件换肤,比如暗黑模式)

1.背景&#xff1a; Qt style sheet&#xff08;qss&#xff09;跟前端技术一样&#xff0c;就是为了美化界面。关键是&#xff0c;太好用了。之前还为此写过一篇博客。 Qt样式&#xff08;qss&#xff09;的语法定义获得途径&#xff0c;可查资料&#xff0c;可自动生成_大橘…

马上又是新的一年了 “跨年倒计时”送给大家

&#x1f3c6;今日学习目标&#xff1a; &#x1f340;跨年倒计时 ✅创作者&#xff1a;林在闪闪发光 ⏰预计时间&#xff1a;30分钟 &#x1f389;个人主页&#xff1a;林在闪闪发光的个人主页 &#x1f341;林在闪闪发光的个人社区&#xff0c;欢迎你的加入: 林在闪闪发光的…

《计算机网络》——第三章知识点

第三章思维导图 链路层的信道类型 一对一:点对点信道 —对多:广播信道 链路层要解决的问题 封装成帧 透明传输 差错检测密封&#xff0c;透气性差 封装成帧就是在一段数据的前后部分添加首部和尾部&#xff0c;这样就构成了一个帧。接收端在收到物理层上交的比特流后&#xff…

Microsoft .NET Desktop Runtime (Framework)

Microsoft .NET Desktop Runtime (Framework)   Microsoft.NET Framework或数据库是一种软件技术&#xff0c;包括Microsoft.NET中的几种编程语言。安装每个窗口后所需的工具之一是NETFramework技术。会的。基于这种技术编写的许多软件工具&#xff0c;它们将得到支持。 -是的…

MindSpore模型快速调优攻略笔记分享(上)

• 近年来&#xff0c;深度学习技术在语音识别、自然语言处理、计算机视觉、信息检索等任务上取得了突破性进展; • 深度学习模型的复杂度与规模日益扩张&#xff0c;导致模型的调试调优成为了困扰算法工程师的一大难题; • MindSpore是由华为自研的深度学习框架&#xff0c;…

“设计”小哥转行5G网络优化工程师!从零开始,三个月实现逆风翻盘~

5G网络优化&#xff0c;一个陌生的领域&#xff0c;对于一个毫无经验的小白来说&#xff0c;选择转行必定是需要勇气和决心的。好在&#xff0c;在决定选择5G网络优化的这一段时间里&#xff0c;老师给予了我最大的帮助和支持&#xff0c;包括从授课&#xff0c;到练习&#xf…

nginx常用配置

目录 1、全局块 2、events块 3、http块 3.1、http基本配置 3.2、http反向代理基本配置 3.3、http反向代理服务器和负载均衡 3.4、http_gzip配置 3.5、server相关配置 3.5.1、server基础配置 3.5.2、ssl配置 3.5.3、location配置 4、一个简单的nginx配置实例 1、全局…

Lua基本数据类型

Lua官网文档入口 http://www.lua.org/ document --> manual 一、基本数据类型 lua 中有八种基本数据型&#xff0c;分别是&#xff1a; nil&#xff0c;boolean&#xff0c;number&#xff0c;string&#xff0c;function&#xff0c;userdata&#xff0c;thread 和 tab…