System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种业务数据处理方法、装置、存储介质及电子装置制造方法及图纸_技高网

一种业务数据处理方法、装置、存储介质及电子装置制造方法及图纸

技术编号:40064468 阅读:7 留言:0更新日期:2024-01-16 23:12
本申请实施例提供了一种业务数据处理方法、装置、存储介质及电子装置,该方法包括:拦截多个业务请求,并为多个业务请求创建多个业务实体锁列表,将多个业务实体锁列表添加到阻塞队列中,并从阻塞队列中获取待处理业务实体锁列表,将待处理业务实体锁列表记录到内部锁列表或互斥表,对内部锁列表内的全部目标业务实体锁列表进行并行处理。通过该方法,可以解决相关技术中将并发控制与业务处理混合在一起,导致业务处理代码很难理解,维护性和扩展性差的问题。

【技术实现步骤摘要】

本申请实施例涉及业务数据一致性领域,具体而言,涉及一种业务数据处理方法、装置、存储介质及电子装置


技术介绍

1、业务数据在并发操作时,会产生数据一致性问题。例如银行转账,a账户同时出现两笔转账,a账户初始金额10000元,第一笔是a账户向b账户转账9000元,第二笔是a账户向c账户转账5000元,并发操作流程如下表所示:

2、 a转账b a转账c 步骤1 从数据库查询到a账户当前金额10000元 从数据库查询到a账户当前金额10000元 步骤2 a账户金额修改为1000元,保存数据库 a账户金额修改为5000元,保存数据库 步骤3 b账户金额增加9000元,保存数据库 c账户金额增加5000元,保存数据库

3、账户a最终金额可能是1000元或5000元,结果都是不正确的,这就是并发操作业务数据不一致性问题。

4、针对并发操作业务数据不一致性问题,现有技术中主要有两大类解决方案,数据库悲观锁和数据库乐观锁:数据库悲观锁是利用数据库提供的锁机制,查询数据时加锁,强迫并发操作顺序执行,保证业务数据一致性;数据库乐观锁是在数据库表中增加一个标识字段,提交时检查是否存在冲突,如果存在冲突则操作失效,重新执行操作。

5、然而,数据库悲观锁和数据库乐观锁的技术方案中还存在以下缺点:1.实现很复杂,业务处理和并发控制纠缠在一起,业务处理代码很难理解,导致维护性很差;2.完全依赖底层数据库,一旦更换数据库就需要大量修改程序代码,导致扩展性很差;3.数据库悲观锁数据库加锁,容易影响数据库的并发操作性能,且容易造成死锁。

6、相关技术还使用编程语言自身的锁来解决数据一致性的问题,例如java语言的并发关键字synchronized,但该方法的缺点是编程语言提供的并发控制机制是通用型的,直接使用效率存在问题,例如在转账方法上增加关键字synchronized会导致其他的账户转账操作均被阻塞,性能很差。

7、针对相关技术中将并发控制与业务处理混合在一起,导致业务处理代码很难理解,维护性和扩展性差的问题,尚未提出解决方案。


技术实现思路

1、本申请实施例提供了一种业务数据处理方法、装置、存储介质及电子装置,以至少解决相关技术中将并发控制与业务处理混合在一起,导致业务处理代码很难理解,维护性和扩展性差的问题。

2、根据本申请的一个实施例,提供了一种业务数据处理方法,所述方法包括:

3、拦截多个业务请求,并为所述多个业务请求创建多个业务实体锁列表,其中,每个业务请求对应一个业务实体锁列表,每个业务实体锁列表包括多个业务实体锁,所述业务实体锁用于控制业务处理线程;

4、将所述多个业务实体锁列表添加到阻塞队列中,并从所述阻塞队列中获取待处理业务实体锁列表;

5、将所述待处理业务实体锁列表记录到内部锁列表或互斥表,其中,所述内部锁列表用于记录当前正在执行的目标业务实体锁列表,所述互斥表用于记录与所述目标业务实体锁列表互斥的业务实体锁列表,所述内部锁列表和所述互斥表中包含一个或多个所述业务实体锁列表;

6、对所述内部锁列表内的全部目标业务实体锁列表进行并行处理。

7、根据本申请的又一个实施例,提供了一种业务数据处理装置,所述装置包括:

8、拦截模块,用于拦截多个业务请求,并为所述多个业务请求创建多个业务实体锁列表,其中,每个业务请求对应一个业务实体锁列表,每个业务实体锁列表包括多个业务实体锁,所述业务实体锁用于控制业务处理线程;

9、队列模块,用于将所述多个业务实体锁列表添加到阻塞队列中,并从所述阻塞队列中获取待处理业务实体锁列表;

10、记录模块,用于将所述待处理业务实体锁列表记录到内部锁列表或互斥表,其中,所述内部锁列表用于记录当前正在执行的目标业务实体锁列表,所述互斥表用于记录与所述目标业务实体锁列表互斥的业务实体锁列表,所述内部锁列表和所述互斥表中包含一个或多个所述业务实体锁列表;

11、并行处理模块,用于对所述内部锁列表内的全部目标业务实体锁列表进行并行处理。

12、根据本申请的又一个实施例,还提供了一种计算机可读的存储介质,所述存储介质中存储有计算机程序,其中,所述计算机程序被处理器运行时执行上述任一项方法实施例中的步骤。

13、根据本申请的又一个实施例,还提供了一种电子装置,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行上述任一项方法实施例中的步骤。

14、本申请实施例,拦截多个业务请求,为多个业务请求创建多个业务实体锁列表,通过阻塞队列获取待处理业务实体锁列表,并通过内部锁列表和互斥表进行并发控制,对内部锁列表内的业务实体锁列表进行并行业务处理,从而将实现了并发控制机制与业务处理相分离。通过该方法,可以解决相关技术中将并发控制与业务处理混合在一起,导致业务处理代码很难理解,维护性和扩展性差的问题。

本文档来自技高网...

【技术保护点】

1.一种业务数据处理方法,其特征在于,所述方法包括:

2.根据权利要求1所述的方法,其特征在于,为所述多个业务请求创建多个业务实体锁列表,包括:

3.根据权利要求1所述的方法,其特征在于,将所述多个业务实体锁列表添加到阻塞队列中,包括:

4.根据权利要求1所述的方法,其特征在于,将所述待处理业务实体锁列表记录到内部锁列表或互斥表,包括:

5.根据权利要求3所述的方法,其特征在于,对所述待处理业务实体锁列表与所述内部锁列表进行互斥检查,包括:

6.根据权利要求1所述的方法,其特征在于,对所述内部锁列表内的全部目标业务实体锁列表进行并行处理,包括:

7.根据权利要求1所述的方法,其特征在于,在对所述内部锁列表内的全部目标业务实体锁列表进行并行处理之后,所述方法还包括:

8.根据权利要求7所述的方法,其特征在于,所述方法还包括:

9.一种业务数据处理装置,其特征在于,所述装置包括:

10.一种计算机可读的存储介质,所述存储介质中存储有计算机程序,其中,所述计算机程序被处理器运行时执行所述权利要求1至9任一项中所述的方法。

11.一种电子装置,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行所述权利要求1至9任一项中所述的方法。

...

【技术特征摘要】

1.一种业务数据处理方法,其特征在于,所述方法包括:

2.根据权利要求1所述的方法,其特征在于,为所述多个业务请求创建多个业务实体锁列表,包括:

3.根据权利要求1所述的方法,其特征在于,将所述多个业务实体锁列表添加到阻塞队列中,包括:

4.根据权利要求1所述的方法,其特征在于,将所述待处理业务实体锁列表记录到内部锁列表或互斥表,包括:

5.根据权利要求3所述的方法,其特征在于,对所述待处理业务实体锁列表与所述内部锁列表进行互斥检查,包括:

6.根据权利要求1所述的方法,其特征在于,对所述内部锁列表内的全部目标业务实体锁列表进行并行处...

【专利技术属性】
技术研发人员:张毅
申请(专利权)人:中兴通讯股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1