[发明专利]基于Redis分布式锁的超时时间动态调整方法及系统有效
申请号: | 201910318260.6 | 申请日: | 2019-04-19 |
公开(公告)号: | CN110162384B | 公开(公告)日: | 2023-04-28 |
发明(设计)人: | 段火强 | 申请(专利权)人: | 深圳壹账通智能科技有限公司 |
主分类号: | G06F9/46 | 分类号: | G06F9/46;G06F16/182 |
代理公司: | 深圳市联鼎知识产权代理有限公司 44232 | 代理人: | 刘抗美 |
地址: | 518000 广东省深圳市前海深港合作区*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 redis 分布式 超时 时间 动态 调整 方法 系统 | ||
本发明涉及分布式存储技术领域,揭示了一种基于Redis分布式锁的超时时间动态调整方法及系统,该方法包括:获取目标业务逻辑对应的目标预估执行耗时值;根据目标预估执行耗时值与预设超时时间生成规则生成目标业务逻辑对应的超时时间;当目标业务逻辑按照超时时间执行加锁操作时,获取目标业务逻辑对应的目标业务逻辑执行开始时间和目标业务逻辑执行结束时间;将目标业务逻辑执行开始时间与目标业务逻辑执行结束时间的时间差值确定为目标业务逻辑的目标执行耗时;根据目标执行耗时调整超时时间。此方法下,基于分布式存储技术,可以实现超时时间的动态调整。
技术领域
本发明涉及分布式存储技术领域,特别涉及一种基于Redis分布式锁的超时时间动态调整方法及系统。
背景技术
目前,大多数应用采用集群部署的方式进行部署,在集群部署的环境下,为了保证多个线程访问共享资源时的数据一致性,往往设置有分布式锁,分布式锁用于限制一个方法在超时时间内只能被同一个线程执行,以使多个线程不会在超时时间内同时重复执行某一方法,避免了由于多个线程同时重复执行某一方法导致共享资源非正常修改以至于数据不一致的现象发生。
针对最为常见的基于Redis的分布式锁,如何设置其超时时间一直受到开发者的关注。常见的设置超时时间的方式为事先预估业务逻辑的执行耗时,再根据事先预估的业务逻辑的执行耗时设置分布式锁的超时时间。在实践中发现,随着业务的增长,业务逻辑的执行耗时会越来越长,由于超时时间无法实现动态调整,因而可能存在业务逻辑的执行耗时超过之前设置的超时时间的情况,从而导致分布式锁过早失效,进而影响多个线程访问共享资源时的数据一致性。
可见,如何实现超时时间的动态调整成为了一个亟需解决的问题。
发明内容
为了解决相关技术中存在的无法实现超时时间的动态调整以至于影响多个线程访问共享资源时的数据一致性的问题,本发明提供了一种基于Redis分布式锁的超时时间动态调整方法及系统。
本发明实施例第一方面公开一种基于Redis分布式锁的超时时间动态调整方法,所述方法包括:
获取目标业务逻辑对应的目标预估执行耗时值;
根据所述目标预估执行耗时值与预设超时时间生成规则生成所述目标业务逻辑对应的超时时间;
当所述目标业务逻辑按照所述超时时间执行加锁操作时,获取所述目标业务逻辑对应的目标业务逻辑执行开始时间和目标业务逻辑执行结束时间;
将所述目标业务逻辑执行开始时间与所述目标业务逻辑执行结束时间的时间差值确定为所述目标业务逻辑的目标执行耗时;
根据所述目标执行耗时调整所述超时时间。
作为一种可选的实施方式,在本发明实施例第一方面中,在所述获取目标业务逻辑对应的目标预估执行耗时值之前,所述方法还包括:
当业务逻辑对应的业务上线时长处于预设时长范围内时,根据所述执行耗时确定每一业务逻辑对应的预估执行耗时;
将每一所述业务逻辑与所述业务逻辑对应的所述预估执行耗时对应存储至预置数据库。
作为一种可选的实施方式,在本发明实施例第一方面中,所述获取目标业务逻辑对应的目标预估执行耗时值,包括:
在所述预置数据库中查询所述目标业务逻辑对应的目标预估执行耗时。
作为一种可选的实施方式,在本发明实施例第一方面中,在所述根据所述目标预估执行耗时值与预设超时时间生成规则生成所述目标业务逻辑对应的超时时间之后,所述方法还包括:
记录生成所述目标业务逻辑对应的所述超时时间的生成时间;
判断当前时间与所述生成时间的时间差值是否大于预设时间差值;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于深圳壹账通智能科技有限公司,未经深圳壹账通智能科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910318260.6/2.html,转载请声明来源钻瓜专利网。