Mysql process 问题,kill不用的process

news2025/1/16 2:49:18

这个一般会出现在连接池中,导致连接池数量不够然后连接失败,所以要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 5s
        echo `curl -XGET http://127.0.0.1:8087/info/kill?"key=23aoTest"`
        echo `date`
        echo "-----"
done

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/117453.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

16S全长测序解密转基因玉米根瘤菌群落组成

论文题目&#xff1a; Deciphering the rhizobacterial assemblages under the influence of genetically engineered maize carrying mcry genes 期刊&#xff1a; Environmental Science and Pollution Research 研究背景 玉米是我国的重要粮食作物&#xff0c;但虫害和草…

2023大厂招聘岗位数预测!明年哪些公司可以去?

winter is coming&#xff01;这一年C端要见顶、K12被团灭、阿里被监管&#xff0c;滴滴被处罚、华为都在力求在寒气中活下来&#xff0c;连大厂都深陷泥沼&#xff0c;更别说中小企业。 太多因素导致大批裁员&#xff0c;前不久&#xff0c;互联网er最后的梦乡虾皮大量裁员&am…

智能车|直流电机、编码器与驱动器

智能车|直流电机、编码器与驱动器直流电机直流电机原理减速器编码器编码器简介编码器的工作原理四倍频采集编码器采集程序实现驱动器TB6612FNG 电机驱动器TB6612FNG 的主要参数引脚说明电机整体接线直流电机 直流电机&#xff08;direct current machine&#xff09;是指能将直…

JDK19都出来了~是时候梳理清楚JDK的各个版本的特性了【JDK18特性讲解】

JDK各个版本特性讲解-JDK18特性 一、JAVA18概述 Java 18 在 2022 年 3 月 22 日正式发布&#xff0c;Java 18 不是一个长期支持版本&#xff0c;这次更新共带来 9 个新功能。 https://openjdk.org/projects/jdk/18/ 二、具体新特性 1. 默认UTF-8字符编码 JDK 一直都是支持 UT…

SAP ABAP——SAP简介(四)【SAP GUI】

&#x1f482;作者简介&#xff1a; THUNDER王&#xff0c;一名热爱财税和SAP ABAP编程以及热爱分享的博主。目前于江西师范大学会计学专业大二本科在读&#xff0c;同时任汉硕云&#xff08;广东&#xff09;科技有限公司ABAP开发顾问。在学习工作中&#xff0c;我通常使用偏后…

Docker学习笔记——收藏

Docker 命令&#xff1b;Docker进程相关命令&#xff1b;Docker 镜像相关命令&#xff1b;Docker 容器数据卷&#xff1b;Docker 应用部署案例&#xff1b;Dockerfile&#xff1b;Docker 私有仓库搭建&#xff1b;笔记 目录 初始Docker 安装Docker Docker 架构 Docker 命令 …

圣诞也要撸代码 |【消息中间件MQ系列】Spring整合kafka并设置多套kafka配置

1、前言 圣诞节的到来&#xff0c;程序员不会收到圣诞老人的&#x1f381;&#xff0c;但可以自己满足一下自己&#xff0c;所以&#xff0c;趁着有时间&#xff0c;就记录一下这会儿撸了些什么代码吧&#xff01;&#xff01;&#xff01; 因为业务原因&#xff0c;需要在系统…

事务日志undo log

事务日志undo log 1 Undo日志的作用 作用1&#xff1a;回滚数据 逻辑上恢复&#xff0c;之前插入了一条数据&#xff0c;已经开辟了物理空间&#xff0c;回滚只是将该数据删除&#xff0c;物理空间还存在。 作用2&#xff1a;MVCC 2 Undo存储结构 mysql> show variables …

java生成SSL证书并添加信任,tomcat配置https访问并解决扫描漏洞问题

一、java生成keystore密钥对 1、打开jdk的bin目录&#xff0c;使用keytool工具生成keystore密钥对 Keytool 是一个 Java 数据证书的管理工具 &#xff0c;Keytool 将密钥&#xff08;key&#xff09;和证书&#xff08;certificates&#xff09;存储于一个称为 keystore 的密…

某车企用户数据泄露,新能源汽车信息安全问题不容忽视

某车企&#xff1a;公司核心数据被窃取 12月20日&#xff0c;国内某新能源汽车发布相关声明称&#xff0c;2022年12月11日&#xff0c;其收到外部邮件&#xff0c;声称拥有该车企内部数据&#xff0c;并以泄露数据勒索225万美元等额比特币&#xff08;约合1570.5万元人民币&am…

FFmpeg学习笔记--Ubuntu20.04编译安装FFmpeg、FFplay和FFprobe

目录 1--下载FFmpeg 2--编译FFmpeg 3--设置环境变量 4--测试 1--下载FFmpeg ① 下载 5.1 版本的 ffmpeg wget http://www.ffmpeg.org/releases/ffmpeg-5.1.tar.gz ② 解压下载的压缩包 tar -zxvf ffmpeg-5.1.tar.gz 2--编译FFmpeg ① 进入解压后的文件夹 cd ffmpeg-5…

基于JAVA Spring Boot高颜值的教学管理平台(含小程序),提供权限管理、考试、问卷、练习、在线学习等功能

Welcome to sg-exam-next &#x1f44b; 硕果云&#xff0c;基于Spring Boot搭建的方便易用、高颜值的教学管理平台&#xff0c;提供权限管理、考试、问卷、练习等功能 主要功能为在线学习、考试、练习 课程内容支持图文、视频&#xff0c;考试类型支持考试、练习、问卷 题型支…

Android插件化技术——【class学习】

class 文件的定义 class 文件就是能够被 JVM 识别&#xff0c;加载并且执行的文件格式。从定义来看&#xff0c;class 文件没有想象中的那么神秘&#xff0c;和其他格式如 txt&#xff0c;mp4 一样&#xff0c;只是一种文件格式&#xff0c;它存储的是我们应用程序。 不止 Ja…

matlab/simulink中关于如何使得信号FFT和IFFT前后功率保持一致

快速傅里叶变换FFT其实是一种对离散傅里叶变换DFT的快速算法 为了便于公式推导和理解&#xff0c;本文从DFT的公式出发进行解释&#xff0c;在帕萨瓦尔定律的条件下&#xff0c;探究如何保证FFT/IFFT前后信号功率保持一致。 目录模型假设FFT前后功率保持一致IFFT前后功率保持一…

Bluetooth LE相关学习笔记

The Bluetooth LE Specifications The Bluetooth Core Specification 核心规范适用于 Bluetooth LE和Bluetooth Classic&#xff0c;它定义了蓝牙的体系结构及其层次&#xff0c;描述和定义了蓝牙的关键特性&#xff0c;定义了设备在协议栈的特定层上进行重要操作的方法和通信…

【圣诞限定】2022的末尾,送TA一颗圣诞树吧

2022年圣诞节&#xff0c;很高兴能遇见你。 一、前言 不知不觉又到年末啦&#xff0c;今年遇到了超级超级棒的人&#xff0c;希望能跟他一起做很多很多事&#xff0c;完成很多很多未完成的心愿。既然是圣诞节限定&#xff0c;那就送他一颗圣诞树吧&#x1f384;天天开心&#…

开发者百宝箱——DevToys

开发者百宝箱——DevToys 文章目录 简介安装转换类型编码/解码格式化生成器文本处理图片设置参考文献 简介 DevToys 是一个开发人员的工具箱&#xff0c;基于 UWP 开发&#xff0c;免费开源无广告&#xff0c;支持中文&#xff0c;功能有&#xff1a; 转换类型 JSON / YAML…

【C语言进阶】指针的进阶

在初级阶段的《指针》章节已经接触过了&#xff0c;我们知道了指针的概念&#xff1a; 1. 指针就是个变量&#xff0c;用来存放地址&#xff0c;地址唯一标识一块内存空间。 2. 指针的大小是固定的4/8个字节&#xff08;32位平台/64位平台&#xff09;。 3. 指针是有类型&#…

Word处理控件Aspose.Words功能演示:使用 C# 将 PowerPoint 演示文稿转换为 Word 文档

Aspose.Words 是一种高级Word文档处理API&#xff0c;用于执行各种文档管理和操作任务。API支持生成&#xff0c;修改&#xff0c;转换&#xff0c;呈现和打印文档&#xff0c;而无需在跨平台应用程序中直接使用Microsoft Word。此外&#xff0c; Aspose API支持流行文件格式处…

Android自动化打包记录--Jenkins+Docker+WSL2

Android自动化打包记录--JenkinsDockerWSL2前言自动化流程测试环境生产环境自动化原理Windows下安装Ubuntu安装步骤相关error处理error: 0x8007019eerror: 0x800701bc、0x80370102WSL访问WindowsWSL访问内网Ubuntu下Docker内容安装运行HelloWorld拉取镜像镜像和容器命令创建镜像…