Mysql process 问题,kill不用的process
创始人
2024-05-01 20:24:15
0

这个一般会出现在连接池中,导致连接池数量不够然后连接失败,所以要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 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 selectProcess();
//释放某个线程
int killProcess(@Param("id") int id);
kill #{id}

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

 

相关内容

热门资讯

保存时出现了1个错误,导致这篇... 当保存文章时出现错误时,可以通过以下步骤解决问题:查看错误信息:查看错误提示信息可以帮助我们了解具体...
汇川伺服电机位置控制模式参数配... 1. 基本控制参数设置 1)设置位置控制模式   2)绝对值位置线性模...
不能访问光猫的的管理页面 光猫是现代家庭宽带网络的重要组成部分,它可以提供高速稳定的网络连接。但是,有时候我们会遇到不能访问光...
表格中数据未显示 当表格中的数据未显示时,可能是由于以下几个原因导致的:HTML代码问题:检查表格的HTML代码是否正...
本地主机上的图像未显示 问题描述:在本地主机上显示图像时,图像未能正常显示。解决方法:以下是一些可能的解决方法,具体取决于问...
表格列调整大小出现问题 问题描述:表格列调整大小出现问题,无法正常调整列宽。解决方法:检查表格的布局方式是否正确。确保表格使...
不一致的条件格式 要解决不一致的条件格式问题,可以按照以下步骤进行:确定条件格式的规则:首先,需要明确条件格式的规则是...
Android|无法访问或保存... 这个问题可能是由于权限设置不正确导致的。您需要在应用程序清单文件中添加以下代码来请求适当的权限:此外...
【NI Multisim 14...   目录 序言 一、工具栏 🍊1.“标准”工具栏 🍊 2.视图工具...
银河麒麟V10SP1高级服务器... 银河麒麟高级服务器操作系统简介: 银河麒麟高级服务器操作系统V10是针对企业级关键业务...