首页 > 其他分享 >接口超时问题的排查思路和解决方案

接口超时问题的排查思路和解决方案

时间:2022-11-03 15:36:40浏览次数:40  
标签:索引 接口 查询 排查 任务 sql 超时

业务场景:查询用户工作流程的任务列表接口超时。

在工作流程管理页面我们可以绘制工作流程,并指派任务给对应的用户,用户可以在自己的登录账户查看指派给自己的任务列表。

排查用户超时的思路

前提:首先我们这接口是限制最大返回30条,所以排除了是前端查询数据条数过多导致超时

1.确保服务部署没有问题、自己的网络没有问题

2.查看sql的执行时间,是否是慢sql,如果sql执行时间过长,那么就查看一下sql的执行计划,是否是全表扫描?是否有索引?

  查看sql的执行计划:EXPLAIN  SELECT FROM xxx wherer ID = XXX

  执行计划展示

 

   如果type=all那代表的是全表扫描,如果数据量大的话,查询耗时就会变长,此时应考虑加索引。

   有些时候我们加了索引查询还是很缓慢,此时可以考虑加缓存,建议(coffeine+redis)

   加了索引查询很慢的原因有很多比如使用索引条件查询匹配到很多数据,主索引树需要依次回表获取结果集、内存不足、网络速度慢、锁或死锁

 3.统计你认为出现可能出现超时的代码段运行时间,定位超时的代码片段,对代码进行优化

总结

在我这次遇到的接口超时的问题,经排查后发现camunda内置的任务变量查询接口sql是全表查询的,且我们是循环的去获取任务对应的任务变量,由此就导致的接口超时。

解决方案

根据sql的查询条件,在任务变量表中加上索引(超时问题完美解决。。。。。)

 

标签:索引,接口,查询,排查,任务,sql,超时
From: https://www.cnblogs.com/Auge/p/16853873.html

相关文章

  • 驱动开发:内核封装TDI网络通信接口
    在上一篇文章《驱动开发:内核封装WSK网络通信接口》中,LyShark已经带大家看过了如何通过WSK接口实现套接字通信,但WSK实现的通信是内核与内核模块之间的,而如果需要内核与应用层......
  • postman实现一次登录所有接口携带token
    0.问题背景在后端开发过程中,我们需要做接口自测或者问题排查需要使用postman,但是大多数时候我们的系统都是有登录的,这个时候就需要请求携带token,如果每次请求的时候都去......
  • [Java基础]-- 接口、抽象类
    一直都在使用接口,没怎么用过抽象类,今天面试遇到了面试官提问:抽象类和接口有什么区别啊?下面就关于这个问题好好研究一下,希望在以后的工作中能牢记。。以下是《疯狂java讲义》......
  • web服务器15 jsonp格式接口
    概念:浏览器端通过<script>标签的src属性,请求服务器上的数据,同时,服务器返回一个函数的调用。这种请求数据的方式叫做SONP。特点:①JSONP不属于真正的Ajax请求,因为它没有使用......
  • keepalived实现mycat高可用问题排查;道路坎坷,布满荆棘,定让你大吃一惊!
    开心一刻医院里,一母亲带着小女孩打针小女孩:“妈妈我不想打针,疼!”妈妈:“宝贝儿听话,这里这么多护士阿姨,咱们找个打针不疼的”小女孩:“那哪个阿姨打针不疼呢?”......
  • 函数式接口与lambda表达式
    函数式接口:只有一个方法的接口publicinterfaceCanAdd{intadd(inta,intb);}该接口作为其他方法的入参,实现函数传递publicclassDog{publicstatic......
  • JVM 常见线上问题 → CPU 100%、内存泄露 问题排查
    开心一刻明明是个小bug,但就是死活修不好,我特么心态崩了......前言Windows后文中用到了两个工具:​​ProcessorExplorer​​​、​​MAT​​,它们是什么,有什么用,怎么用,本......
  • 记一次 Druid 超时配置的问题 → 引发对 Druid 时间配置项的探究
    开心一刻一天在路边看到一个街头采访记者:请问,假如你儿子娶媳妇,给多少彩礼合适呢大爷:一百万吧,再给一套房,一辆车大爷沉思一下,继续说到:如果有能力的话再给老丈......
  • openwrt 使用方法与问题排查
    openwrt不能轻易断电,如果断电,以下问题都有可能出现.在openwrt中ping不通baidu.com提示ping:badaddress‘baidu.com‘解决方法把nameserver8.8.8.8添加到......
  • web服务器13 接口
    主体constexpress=require('express')constapp=express()constrou=require('./api')//处理POST方法必写//配置解析application/json格式app.use(express.......