[发明专利]一种业务请求的处理方法及客户端有效
申请号: | 201910532260.6 | 申请日: | 2019-06-19 |
公开(公告)号: | CN110262898B | 公开(公告)日: | 2021-01-29 |
发明(设计)人: | 杨子国 | 申请(专利权)人: | 广州华多网络科技有限公司 |
主分类号: | G06F9/50 | 分类号: | G06F9/50;G06F9/46;G06F9/48;G06F9/54;G06F9/38 |
代理公司: | 北京集佳知识产权代理有限公司 11227 | 代理人: | 古利兰 |
地址: | 511442 广东省广*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 业务 请求 处理 方法 客户端 | ||
本发明提供一种业务请求的处理方法及客户端,该方法为:客户端向N个redis集群发送获取业务锁的请求,业务锁用于锁定客户端需执行的业务;确定是否成功获取所有业务锁;若未成功获取所有业务锁,在预设时间段内向N个redis集群循环发送获取业务锁的请求;若成功获取所有业务锁,执行业务。本方案中,客户端同时向多个redis集群发送获取业务锁的请求,只有获取所有业务锁才能执行客户端需执行的业务,避免多个线程重复执行业务,保证业务数据的一致性。若没有获取所有业务锁,则在预设时间段内循环请求获取所有业务锁,提高获取业务锁的效率和成功率。
技术领域
本发明涉及数据处理技术领域,具体涉及一种业务请求的处理方法及客户端。
背景技术
随着互联网技术的发展,各式各样的互联网应用被开发出来,以满足各类人群的需求。
目前,绝大多数的互联网应用的后台服务都是分布式部署的,对于分布式场景而言,需要保证业务数据的一致性。但是,分布式场景中存在多个线程,在执行用户的业务请求时,多个线程可能出现重复执行用户的业务请求的情况,从而导致业务数据不一致。例如:用户下单购买某一物品,多个线程在执行下单业务时可能出现重复下单的情况。
因此,目前需引入一种新的处理业务请求的方法,以避免在执行用户的业务请求时,多个线程出现重复执行业务请求的情况。
发明内容
有鉴于此,本发明实施例提供一种业务请求的处理方法及客户端,以解决在执行用户的业务请求时,多个线程出现重复执行业务请求的情况。
为实现上述目的,本发明实施例提供如下技术方案:
本发明实施例第一方面公开一种业务请求的处理方法,适用于客户端,所述方法包括:
客户端向N个redis集群发送获取业务锁的请求,所述业务锁用于锁定所述客户端需执行的业务,一个redis集群对应一个业务锁,N为大于等于2的整数,所述请求至少包括业务锁的过期时长;
确定是否成功获取所有业务锁;
若未成功获取所有业务锁,在预设时间段内向N个所述redis集群循环发送获取业务锁的请求;
若成功获取所有业务锁,执行所述业务。
优选的,所述若未成功获取所有业务锁之后,还包括:
所述客户端向所述redis集群发送业务锁释放请求,释放已获取的业务锁。
优选的,所述执行所述业务包括:
所述客户端基于所述过期时长执行所述业务;
若在所述过期时长到达前执行完成业务,确定业务执行成功;
若在所述过期时长到达时未执行完成所述业务,确定业务执行失败或客户端故障。
优选的,确定未成功获取所有所述业务锁的过程,包括:
若所述客户端在预设时长内未接收到所有业务锁,确定未成功获取所有所述业务锁;
或者,
若所述客户端接收每个所述redis集群发送的占用信息,确定未成功获取所有所述业务锁,所述占用信息指示所述业务锁被其它客户端占用。
本发明实施例第二方面公开一种客户端,所述客户端包括:
发送单元,用于向N个redis集群发送获取业务锁的请求,其中,所述业务锁用于锁定所述客户端需执行的业务,一个redis集群对应一个业务锁,N为大于等于2的整数,所述请求至少包括业务锁的过期时长;
确定单元,用于确定是否成功获取所有业务锁;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于广州华多网络科技有限公司,未经广州华多网络科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910532260.6/2.html,转载请声明来源钻瓜专利网。