本发明涉及数据库的查询方法,特别涉及一种数据库高耗时查询的自动取消方法。

背景技术:

有很多关系型数据库查询业务非常耗时,比如查询企业实时报表之类的,一次查询可能需要几分钟甚至更长。在很多时候,前端业务员因为网络原因或者耐心不足,未等到查询结果返回就刷新页面重复查询,或者直接关闭页面不查询。这个时候,刷新或者关闭页面时,之前的查询在数据库中仍然在继续执行,并未被中断。如果用户多次刷新页面,后端数据库就会重复执行多个任务,显然这些情况都会极大的增加数据库的负担。

技术实现要素:

本发明要解决的技术问题,在于提供一种数据库高耗时查询的自动取消方法,实现在前端关闭或者刷新的情况下,系统自动取消对应的数据库查询作业。

本发明是这样实现的:一种数据库高耗时查询的自动取消方法,包括:

步骤S1、前端提交查询数据请求到服务器,请求的信息包括请求的信息以及全新且唯一的请求ID,同时前端使用这个请求ID定时发起请求跟服务器保持通讯;

步骤S2、服务器接收到查询数据请求并去执行数据库查询的时候,将请求ID以及数据库连接对象的相关信息保存到本地缓存中;

步骤S3、前端在等待数据库返回结果的时候,定时使用请求ID跟服务器保持通讯,服务器每接收到前端的请求ID,刷新缓存中跟此请求ID关联的数据库连接对象的相关信息的时间;

步骤S4、在服务器刷新缓存的数据的期间,如果前端页面被关闭或者被刷新时,则之前的那个请求ID不会再跟服务器保持通讯,那么缓存中的数据则会过期,服务器发现过期的连接信息,则会取出数据库连接对象的相关信息,并发起停止数据库查询的命令,取消数据库执行的任务;如果前端页面一直无异常状况发生,则服务器查询结束后,将数据库连接对象的相关信息从缓存中移除。

进一步的,所述步骤S2中,如果服务器是分布式的,则对请求ID进行哈希取模,以保证同一个请求ID的请求都分发到同一台服务器上。

进一步的,所述步骤S2中,服务器将请求ID以及数据库连接对象的相关信息是以Key-Value的形式保存到本地缓存中。

进一步的,所述步骤S4中,服务器发起停止数据库查询的命令是通过启动一个新线程来实现。

本发明具有如下优点:本发明前端每次查询都携带有一个全新的唯一的请求ID,服务器接收到查询请求后将请求ID以及相关信息以Key-Value的形势存入缓存,同时前端使用该请求ID定时发起请求保持跟服务器的连接,后端服务器接收到请求会持续刷新缓存时间,用户关闭页面或者刷新页面的时候,当前的查询请求已经失效,后端服务器查询结果已经无法返回给前端了,对于耗时的数据库操作,采用此种自动取消的方法,可以极大地减少数据库压力。

具体实施方式

本发明的数据库高耗时查询的自动取消方法,包括:

步骤S1、前端提交查询数据请求到服务器,请求的信息包括请求的信息以及全新且唯一的请求ID,一般使用UUID,同时前端使用这个请求ID定时发起请求跟服务器保持通讯,定时发起请求的频率可以根据实际情况配置,比如每隔1秒发起一次;

步骤S2、服务器接收到查询数据请求并去执行数据库查询的时候,将请求ID以及数据库连接对象的相关信息以Key-Value的形式保存到本地缓存中;如果服务器是分布式的,则对请求ID进行哈希取模,以保证同一个请求ID的请求都分发到同一台服务器上;

步骤S3、前端在等待数据库返回结果的时候,定时使用请求ID跟服务器保持通讯,服务器每接收到前端的请求ID,刷新缓存中跟此请求ID关联的数据库连接对象的相关信息的时间;

步骤S4、在服务器刷新缓存的数据的期间,如果前端页面被关闭或者被刷新时,则之前的那个请求ID不会再跟服务器保持通讯,那么缓存中的数据则会过期,服务器发现过期的连接信息,则会取出数据库连接对象的相关信息,并启动一个新线程发起停止数据库查询的命令,取消数据库执行的任务;如果前端页面一直无异常状况发生,则服务器查询结束后,将数据库连接对象的相关信息从缓存中移除。

本发明具有如下优点:本发明前端每次查询都携带有一个全新的唯一的请求ID,服务器接收到查询请求后将请求ID以及相关信息以Key-Value的形势存入缓存,同时前端使用该请求ID定时发起请求保持跟服务器的连接,后端服务器接收到请求会持续刷新缓存时间,用户关闭页面或者刷新页面的时候,当前的查询请求已经失效,后端服务器查询结果已经无法返回给前端了,对于耗时的数据库操作,采用此种自动取消的方法,可以极大地减少数据库压力。

虽然以上描述了本发明的具体实施方式,但是熟悉本技术领域的技术人员应当理解,我们所描述的具体的实施例只是说明性的,而不是用于对本发明的范围的限定,熟悉本领域的技术人员在依照本发明的精神所作的等效的修饰以及变化,都应当涵盖在本发明的权利要求所保护的范围内。

mysql查询耗时_一种数据库高耗时查询的自动取消方法与流程相关推荐

  1. html5填空题阅卷,一种基于图像识别的填空题自动阅卷方法与流程

    本发明涉及自动阅卷技术领域,尤其涉及一种基于图像识别的填空题自动阅卷方法. 背景技术: 随着电子信息的发达,越来越多的工作被计算机取代,例如,自动阅卷已经逐渐取代人工阅卷. 现有的自动阅卷系统,更多的 ...

  2. java解析comtrade文件_一种COMTRADE二进制数据文件的快速解析方法与流程

    本发明涉及电子系统录波领域,更具体地,涉及一种COMTRADE二进制数据文件的快速解析方法. 背景技术: 近年来,随着电子技术的快速发展,电力系统暂态录波明显向高采样率.连续稳态记录和海量存储的趋势发 ...

  3. ddr老化测试_一种通过SOC测试DDR内存稳定性的方法与流程

    本发明涉及ddr内存领域,尤其涉及一种通过soc测试ddr内存稳定性的方法. 背景技术: 在嵌入式系统中,随着ddr内存的频率越来越高,ddr内存对系统的要求也越来越高,ddr内存读写的时间也越来越小 ...

  4. 航测大数据量处理_一种基于动态航测的图像大数据分析方法与流程

    本发明涉及数据处理技术领域,具体为一种基于动态航测的图像大数据分析方法. 背景技术: 数据分析是指用适当的统计分析方法对收集来的大量数据进行分析,提取有用信息和形成结论而对数据加以详细研究和概括总结的 ...

  5. python应用如何实现升级_一种基于Python实现BMC批量升级的方法与流程

    本发明涉及BMC批量升级,尤其涉及一种基于Python实现BMC批量升级的方法. 背景技术: 随着现代服务器主板技术的发展,主板设计形态复杂多变.无论是设计成本还是后期使用过程中的维护成本都很高.如何 ...

  6. aes子密钥生成c语言_一种基于流密码算法的子密钥生成方法与流程

    本发明涉及一种用于分组加解密算法的子密钥的生成方法. 背景技术: 随着信息技术的发展,信息安全性的问题却愈来愈显得突出,保证信息安全的一个重要技术就是密码学.密码学在信息安全技术中扮演着基础的角色,是 ...

  7. 光纤耦合角度_一种光纤准直器的耦合找光方法与流程

    本发明涉及在线光无源器件的生产制造领域,具体是一种光纤准直器的耦合找光方法. 背景技术: 光纤准直器是在线光无源器件的基本元件,其主要作用是将经由光纤输出的光转换成发散角很小的近似平行光束,以增加光路 ...

  8. led数码显示控制plc实验_一种LED数码显示的PLC控制程序及方法与流程

    本发明涉及程序控制技术领域,特别是一种简单高效.安全可靠.逻辑性强.响应时间短的一种LED数码显示的PLC控制程序及方法. 背景技术: LED数码显示管可以显示数字或字母,通常也用来显示时间.速度.系 ...

  9. 区块如何防篡改_一种区块链防篡改技术的优化方法与流程

    本发明涉及区块链技术领域,具体涉及一种区块链防篡改技术的优化方法. 背景技术: 区块链是比特币等数字虚拟货币的底层技术,通过去中心化的数据记录,由全网所有的节点共同维护数据,实现安全地存储数据,具有不 ...

最新文章

  1. cmder添加到系统变量中_开发环境搭建之VSCode、Cmder
  2. github可以传java吗_如何在github上传本地项目代码(新手使用)----亲测使用
  3. c++ 读取访问权限冲突_Linux系统利用可执行文件的Capabilities实现权限提升
  4. 蚂蚁集团回应两地暂缓上市;​iPhone 有望采用侧面指纹识别;Pyston v2 发布|极客头条
  5. 深度学习caffe:激活函数
  6. 2020软件测试学科全套上课视频教程网盘免费分享
  7. 监督学习-分类模型1-线性分类器(Linear Classifiers)
  8. 小米路由器3g改无线打印机服务器,小米路由器3G怎么设置?
  9. 如何判断自己的手机是山寨机?如何判断山寨机的芯片型号和平台?
  10. 网易前端JavaScript编码规范
  11. 纯CSS自定义checkbox对号
  12. 浏览器缩放时,页面布局发生变化
  13. mongodb数据迁移设置方法
  14. 大数据数据湖之hudi
  15. 高端人才必看,生意人必读
  16. 手把手教你搭建明星脸相似度分析系统
  17. docker-hub OFFICIAL AUTOMATED images
  18. matlab汽车座椅脉冲振动冲击仿真
  19. 中国IDC机房评测分级的标准
  20. 网易云信:通信与视频云服务发展迅猛,或成企业服务中“火箭轨道”

热门文章

  1. 理解JS中的声明式与命令式
  2. 面试题:有限制条件的求和
  3. 小心错误使用EasyUI 让网站性能减半
  4. JAVA验证数字的正则表达式,来一发
  5. 小米手机首发开箱图赏
  6. freetextbox的问题两个
  7. (转)Geoserver基础配图研究
  8. (转)淘淘商城系列——展示后台管理页面
  9. JavaTPoint 数据库教程【翻译完成】
  10. ApacheCN Java 译文集 20211012 更新