数据更新控制方法、设备及存储介质与流程

未命名 10-08 阅读:90 评论:0


1.本技术涉及金融领域及其他领域,尤其涉及一种数据更新控制方法、设备及存储介质。


背景技术:

2.spring是一个轻量级开源框架,是为了解决企业级编程开发中的复杂性,实现敏捷开发的应用型框架。spring广泛应用于业务系统中,高效的对各项事务进行管理。在业务系统运行过程中,时常会遇到存在冲突的多个事务。
3.相关技术中,可以在dao层通过设置乐观锁或者悲观锁,来避免数据竞争。
4.然而,实现本技术过程中,发明人发现现有技术中至少存在如下问题:通过上述方式,仍然会出现数据更新结果不符合预期的情况,影响数据库数据更新的准确率。


技术实现要素:

5.本技术实施例提供一种数据更新控制方法、设备及存储介质,以提高据库数据更新的准确率。
6.第一方面,本技术实施例提供一种数据更新控制方法,应用于业务服务器,所述业务服务器包括业务逻辑层service和数据持久层dao,所述方法包括:
7.获取第一事务的第一数据和第二事务的第二数据;所述第一数据和所述第二数据均用于对数据库中的待更新数据进行更新;
8.在所述service层,根据所述待更新数据对应的第一更新条件,从所述第一数据和所述第二数据中筛选获得目标数据,并将所述目标数据传入所述dao层;
9.在所述dao层,根据所述待更新数据对应的第二更新条件和所述目标数据对所述待更新数据进行更新;所述第一更新条件和所述第二更新条件均包括第一事务对应的更新条件和第二事务对应的更新条件。
10.在一种可能的设计中,所述根据所述待更新数据对应的第二更新条件和所述目标数据对所述待更新数据进行更新,包括:
11.基于乐观锁或悲观锁机制,根据所述待更新数据对应的第二更新条件和所述目标数据对所述待更新数据进行更新。
12.在一种可能的设计中,所述根据所述待更新数据对应的第一更新条件,从所述第一数据和所述第二数据中筛选获得目标数据之前,还包括:
13.在所述service层部署所述待更新数据对应的第一更新条件;
14.在所述dao层部署所述待更新数据对应的第二更新条件。
15.在一种可能的设计中,所述在所述service层部署所述待更新数据对应的第一更新条件之前,还包括:
16.获取多个事务;
17.根据多个事务的业务逻辑,梳理获得存在更新冲突的事务对;所述事务对中的各
事务对应的输入数据均用于对数据库中同一数据表的同一数据进行更新;
18.针对同属于一个事务对的第一事务和第二事务,根据所述第一事务和所述第二事务对应的业务逻辑,确定所述第一事务和所述第二事务分别相对于对应的待更新数据的更新规则,并根据所述更新规则确定所述待更新数据在service层对应的第一更新条件和在dao层对应的第二更新条件。
19.在一种可能的设计中,所述根据所述第一事务和所述第二事务对应的业务逻辑,确定所述第一事务和所述第二事务分别相对于对应的待更新数据的更新规则,包括:
20.若所述第一事务和所述第二事务对应的业务逻辑包括同时接收到所述第一事务的第一数据和所述第二事务的第二数据时,以所述第一事务的第一数据为准进行数据更新,则确定所述第一事务相对于对应的待更新数据的更新规则为若接收到所述第一数据时,同时接收到所述第二数据,则将所述第一数据确定为目的数据;
21.所述根据所述待更新数据对应的第一更新条件,从所述第一数据和所述第二数据中筛选获得目标数据,包括:
22.若接收到所述第一数据时,同时接收到所述第二数据,则将所述第一数据确定为目的数据。
23.在一种可能的设计中,所述根据所述第一事务和所述第二事务对应的业务逻辑,确定所述第一事务和所述第二事务分别相对于对应的待更新数据的更新规则,包括:
24.若所述第一事务和所述第二事务对应的业务逻辑是同时接收到所述第一事务的第一数据和所述第二事务的第二数据时,以所述第一事务的第一数据为准进行数据更新,则,确定所述第二事务相对于对应的待更新时数据的更新规则为若接收到所述第二数据时,同时接收到所述第一数据,则将所述第二数据延迟第一预设时间传输至所述dao层,或者,将所述第二数据进行拦截。
25.在一种可能的设计中,所述将所述第二数据延迟第一预设时间传输至所述dao层之前,还包括:
26.根据所述第一数据从所述service层传输至所述dao层的时间确定第一预设时间。
27.在一种可能的设计中,所述根据所述第一数据从所述service层传输至所述dao层的时间确定第一预设时间,包括:
28.将所述第一数据从所述service层传输至所述dao层的时间确定为所述第一预设时间;
29.或者,
30.根据所述第一数据从所述servic层传输至所述dao层的时间和所述第二数据从所述service层传输至所述dao层的预测时间之间的差值确定所述第一预设时间。
31.第二方面,本技术实施例提供一种数据更新控制装置,包括:
32.获取模块,用于获取第一事务的第一数据和第二事务的第二数据;所述第一数据和所述第二数据均用于对数据库中的待更新数据进行更新;
33.筛选模块,用于在所述service层,根据所述待更新数据对应的第一更新条件,从所述第一数据和所述第二数据中筛选获得目标数据,并将所述目标数据传入所述dao层;
34.更新模块,用于在所述dao层,根据所述待更新数据对应的第二更新条件和所述目标数据对所述待更新数据进行更新;所述第一更新条件和所述第二更新条件均包括第一事
务对应的更新条件和第二事务对应的更新条件。
35.第三方面,本技术实施例提供一种电子设备,包括:至少一个处理器和存储器;
36.所述存储器存储计算机执行指令;
37.所述至少一个处理器执行所述存储器存储的计算机执行指令,使得所述至少一个处理器执行如上第一方面以及第一方面各种可能的设计所述的方法。
38.第四方面,本技术实施例提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,实现如上第一方面以及第一方面各种可能的设计所述的方法。
39.第五方面,本技术实施例提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时,实现如上第一方面以及第一方面各种可能的设计所述的方法。
40.本实施例提供的数据更新控制方法、设备及存储介质,该方法包括获取第一事务的第一数据和第二事务的第二数据,所述第一数据和所述第二数据均用于对数据库中的待更新数据进行更新,在所述service层,根据所述待更新数据对应的第一更新条件,从所述第一数据和所述第二数据中筛选获得目标数据,并将所述目标数据传入所述dao层,在所述dao层,根据所述待更新数据对应的第二更新条件和所述目标数据对所述待更新数据进行更新,所述第一更新条件和所述第二更新条件均包括第一事务对应的更新条件和第二事务对应的更新条件。本技术实施例提供的数据更新控制方法通过在service层和dao层分别设置对应的更新条件,能够提前在service层就对数据进行筛选,减少了dao层的数据处理量,避免了数据从service层传输至dao层的过程造成的影响,从而提高了数据库数据更新的准确率。
附图说明
41.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本技术的实施例,并与说明书一起用于解释本技术的原理。
42.图1为本技术实施例提供的数据更新控制方法的应用场景示意图;
43.图2为本技术实施例提供的数据更新控制方法的流程示意图;
44.图3为本技术实施例提供的数据更新控制设备的结构示意图;
45.图4为本技术实施例提供的电子设备的硬件结构示意图。
46.通过上述附图,已示出本技术明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本技术构思的范围,而是通过参考特定实施例为本领域技术人员说明本技术的概念。
具体实施方式
47.这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本技术相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本技术的一些方面相一致的装置和方法的例子。
48.需要说明的是,本技术所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户
授权或者经过各方充分授权的信息和数据,并且相关数据的收集、使用和处理需要遵守相关法律法规和标准,并提供有相应的操作入口,供用户选择授权或者拒绝。
49.需要说明的是,本技术提供的数据更新控制的方法和装置可用于数据更新控制领域,也可用于除金融领域之外的任意领域,本技术数据更新控制的方法和装置的应用领域不做限定。
50.软件框架(software framework),通常指的是为了实现某个业界标准或完成特定基本任务的软件组件规范,也指为了实现某个软件组件规范时,提供规范所要求之基础功能的软件产品。spring是一个轻量级开源框架,是为了解决企业级编程开发中的复杂性,实现敏捷开发的应用型框架。spring广泛应用于业务系统中,高效的对各项事务进行管理。spring致力于提供一种方法管理你的业务对象。spring有分层的体系结构。可以包括模型model(entity)层,数据持久dao层,服务service层,控制controller层。
51.其中,model层用于各个层(dao、mapper、service、controller)之间对象数据的封装和传递。
52.dao层又被成为mapper层,叫数据持久层,先设计接口,然后在配置文件中进行配置其实现的关联。dao层的作用为访问数据库,向数据库发送sql语句,完成数据的增删改查任务。数据持久化操作就是指,把数据放到持久化的介质中,同时提供增删改查操作,比如数据通过hibernate插入到数据库中。
53.service层,对dao层或者controller这样的上层获取的数据进行处理,再传递给controller这样的上层或者dao层。服务层,对一个或多个dao层进行封装,使用一个方法对外表现为实现一个功能。
54.conroller层,负责接收前端传过来的数据和请求并调用service层中定义的方法进行业务操作。
55.在业务系统运行过程中,时常会遇到存在冲突的多个事务。例如两个事务的数据同时对数据库中的某项数据进行更新。
56.相关技术中,可以在dao层通过设置乐观锁或者悲观锁,来避免数据竞争。其中,悲观锁是指独占锁,不管读写都上锁。传统的关系型数据库通常采用该锁机制,例如行锁,表锁等,读锁,写锁等,均是在进行相应操作之前先上锁。乐观锁是指不上锁,读取的时候带版本号,写入的时候带着这个版本号,如果不一致就失败,乐观锁适用于多读的应用类型,因为写多的时候会经常失败。然而,通过上述方式,仍然会出现数据更新结果不符合预期的情况,影响数据库数据更新的准确率。
57.为了解决上述技术问题,本技术发明人研究发现虽然dao层采用锁机制进行了更新条件的判断,一定程度上避免数据竞争,但是还是会出现预期希望a事务和b事务同时接收到新数据时,以a事务的新数据对数据库中的待更新数据进行更新,而实际可能出现待更新数据是基于b事务的新数据进行更新的。后经过研究发现发生该情况的原因是a事务的新数据和b事务的新数据可能同时到达了service层,但是由于a事务和b事务的新数据经过service层的逻辑处理后到达dao层的时间是不同的,可能会出现b事务的新数据先到达,a事务的数据后到达,导致基于dao层的更新条件(例如a事务和b事务同时接收到新数据时,以a事务的新数据对数据库中的待更新数据进行更新,若两者先后到达,以先到的为准),就会采用b事务的新数据对待更新数据进行更新操作,与预期不符合,影响了数据库数据更新
的准确率。因此,为了弥补由于从service层到dao层的时间延迟,可以在service层也添加更新条件的判断,提前完成目标数据的筛选,避免因延迟不同,影响dao层的更新条件的判断,降低数据库数据更新的准确率。基于此,本技术实施例提供一种数据更新控制方法。
58.图1为本技术实施例提供的数据更新控制方法的应用场景示意图。如图1所示,业务服务器与内部服务器和第三方服务器通信,内部服务器用于将来自企业内部的事务数据(例如第一事务的第一数据)发送给业务服务器,第三方服务器用于将来自第三方的事务数据(例如第二事务的第二数据)发送给业务服务器。业务服务器用于接收第一数据和第二数据,并基于第一数据和第二数据对数据库中对应的待更新数据进行更新。
59.在具体实现过程中,业务服务器的数据库中的待更新数据以预设更新周期(例如一天)进行更新,在预设更新周期内可以收到多方的事务数据,例如内部服务器发送的来自企业内部的第一事务的第一数据和第三方服务器发送的来自第三方的第二事务的第二数据。假设根据业务逻辑第一事务和第二事务是相对于数据库中同一待更新数据的存在更新冲突的事务。业务服务器获取第一事务的第一数据和第二事务的第二数据;在所述service层,根据所述待更新数据对应的第一更新条件,从所述第一数据和所述第二数据中筛选获得目标数据,并将所述目标数据传入所述dao层;在所述dao层,根据所述待更新数据对应的第二更新条件和所述目标数据对所述待更新数据进行更新;所述第一更新条件和所述第二更新条件均包括第一事务对应的更新条件和第二事务对应的更新条件。本技术实施例提供的数据更新控制方法通过在service层和dao层分别设置对应的更新条件,能够提前在service层就对数据进行筛选,减少了dao层的数据处理量,避免了数据从service层传输至dao层的过程造成的影响,从而提高了数据库数据更新的准确率。
60.下面以具体地实施例对本技术的技术方案以及本技术的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本技术的实施例进行描述。
61.图2为本技术实施例提供的数据更新控制方法的流程示意图。如图2所示,该方法包括:
62.201、获取第一事务的第一数据和第二事务的第二数据;所述第一数据和所述第二数据均用于对数据库中的待更新数据进行更新。
63.本实施例的执行主体为服务器,如图1所示的业务服务器。
64.以金融领域为例,本实施例中待更新数据可以是金融产品的净值,或年化收益等,第一数据和第二数据是来自各方的影响净值的数据。
65.具体的,在银行的业务系统中存在多个业务数据对数据库中同一条数据进行更新操作的情况。当两个或两个以上业务数据同时发送至业务服务器时,可以基于更新条件确定更新策略。示例性的,可以根据业务逻辑,设定更新条件为当第一事务的第一数据和第二事务的第二数据同时到达时,基于第一数据对待更新数据进行更新。
66.202、在所述service层,根据所述待更新数据对应的第一更新条件,从所述第一数据和所述第二数据中筛选获得目标数据,并将所述目标数据传入所述dao层。
67.具体的,可以预先分别在service层和dao层部署更新条件。例如,在service层部署第一更新条件,在dao层部署第二更新条件。其中,第一更新条件和第二更新条件可以是表征相同的业务规则。以业务规则是当第一事务和第二事务的新数据同时到达时,则以第
一事务的新数据为准,当第一事务和第二事务的新数据先后到达时,则以先到达的事务的数据为准。基于该业务规则可以设定第一更新条件和第二更新条件。以第一更新条件为例,第一更新条件包括对于第一事务的更新条件:若在接收到第一事务的第一数据的同时,接收到了第二事务的第一数据,则将第一事务的第一数据确定为目标数据。将第二事务的第二数据筛选掉(例如可以延迟传送,还可以直接拦截。具体可以根据实际需要进行处理方式的选择。示例性的,若第二数据还有其他用途则可以延迟传送,若在将第一数据确定为目标数据后,第二数据没有其他用途,即没有传输至dao层的必要,则可以拦截,不进行传输,以免第二数据传输到dao层后,再次与第一数据基于dao层的第二更新条件进行判断时出现错误,假设第二数据相对于第一数据线从service层到达dao层,则基于第二更新条件得到的处理结果,就是根据第二数据对待更新数据进行更新了。)
68.在一些实施例中,根据所述待更新数据对应的第一更新条件,从所述第一数据和所述第二数据中筛选获得目标数据之前,还可以包括:在所述service层部署所述待更新数据对应的第一更新条件;在所述dao层部署所述待更新数据对应的第二更新条件。
69.在一些实施例中,在所述service层部署所述待更新数据对应的第一更新条件之前,还可以包括:获取多个事务;根据多个事务的业务逻辑,梳理获得存在更新冲突的事务对;所述事务对中的各事务对应的输入数据均用于对数据库中同一数据表的同一数据进行更新;针对同属于一个事务对的第一事务和第二事务,根据所述第一事务和所述第二事务对应的业务逻辑,确定所述第一事务和所述第二事务分别相对于对应的待更新数据的更新规则,并根据所述更新规则确定所述待更新数据在service层对应的第一更新条件和在dao层对应的第二更新条件。
70.具体的,业务系统中所需要处理的事务有多个,可以预先对多个事务的业务逻辑进行梳理,查找到可能存在更新冲突的事务对(该事务对可能是两个事务,还可能是两个以上的事务),针对于存在更新冲突的事务对,可以基于业务逻辑制定对应的更新规则,进而确定事务对中各事务对应的更新条件,分别在service层和dao层进行部署。
71.在一些实施例中,根据所述第一事务和所述第二事务对应的业务逻辑,确定所述第一事务和所述第二事务分别相对于对应的待更新数据的更新规则,可以包括:若所述第一事务和所述第二事务对应的业务逻辑包括同时接收到所述第一事务的第一数据和所述第二事务的第二数据时,以所述第一事务的第一数据为准进行数据更新,则确定所述第一事务相对于对应的待更新数据的更新规则为若接收到所述第一数据时,同时接收到所述第二数据,则将所述第一数据确定为目的数据。
72.相应的,根据所述待更新数据对应的第一更新条件,从所述第一数据和所述第二数据中筛选获得目标数据,可以包括:若接收到所述第一数据时,同时接收到所述第二数据,则将所述第一数据确定为目的数据。
73.具体的,首先获取可能存在冲突的事务对中各事务的业务逻辑,假设业务逻辑是同时接收到事务对中的第一事务和第二事务对应的新数据后,以第一事务的第一数据为准对待更新数据(例如金融产品的净值)进行更新,进而可以确定第一事务对应的更新规则,进而确定第一事务对应的更新条件。同时可以确定第二事务对应的更新规则,进而确定第二事务对应的更新条件。根据第一事务对应的更新条件和第二事务对应的更新条件确定部署到service层的第一更新条件,和部署到dao层的第二更新条件。
74.在一些实施例中,根据所述第一事务和所述第二事务对应的业务逻辑,确定所述第一事务和所述第二事务分别相对于对应的待更新数据的更新规则,可以包括:若所述第一事务和所述第二事务对应的业务逻辑是同时接收到所述第一事务的第一数据和所述第二事务的第二数据时,以所述第一事务的第一数据为准进行数据更新,则,确定所述第二事务相对于对应的待更新时数据的更新规则为若接收到所述第二数据时,同时接收到所述第一数据,则将所述第二数据延迟第一预设时间传输至所述dao层,或者,将所述第二数据进行拦截。
75.具体的,当基于业务逻辑确定将第一数据作为目标数据后,可以将第二数据筛选掉,一种可实现方式,为了避免发生第二数据从service层传输到dao层的时长小于第一数据从service层传输到dao层的时长的情况下,第二数据早于第一数据到达dao层,在dao层基于第二更新条件误基于第二数据对待更新数据进行更新的情况发生,可以将第二数据延迟发送到dao层,另一种可实现方式是可以将第二数据拦截不进行发送。具体可以根据实际需要进行选定,本实施例对此不作限定。
76.在一些实施例中,将所述第二数据延迟第一预设时间传输至所述dao层之前,还可以包括:根据所述第一数据从所述service层传输至所述dao层的时间确定第一预设时间。
77.具体的,第一数据从所述service层传输至所述dao层的时间的确定方式,可以是获取第一数据从所述service层传输至所述dao层的实际时间,还可以通过测试获得第一事务的数据从所述service层传输至所述dao层的测试时间,经该测试时间确定为第一数据从所述service层传输至所述dao层的时间。
78.在一些实施例中,根据所述第一数据从所述service层传输至所述dao层的时间确定第一预设时间,可以包括:将所述第一数据从所述service层传输至所述dao层的时间确定为所述第一预设时间;或者,根据所述第一数据从所述servic层传输至所述dao层的时间和所述第二数据从所述service层传输至所述dao层的预测时间之间的差值确定所述第一预设时间。
79.具体的,在一种可实现方式中,可以在确定了第一数据从所述service层传输至所述dao层的时间后,将所述第一数据从所述service层传输至所述dao层的时间确定为所述第一预设时间。由于延迟的时间正好是第一数据从所述service层传输至所述dao层的时间,则可以保证第一数据先于第二数据到达dao层。当然为了保险起见,还可以将大于第一数据从所述service层传输至所述dao层的时间的任意时间确定为第一预设时间。
80.在另一种可实现方式中,可以将第一数据从所述servic层传输至所述dao层的时间和所述第二数据从所述service层传输至所述dao层的预测时间之间的差值确定为第一预设时间。当第一数据从所述servic层传输至所述dao层的时间大于第二数据从所述service层传输至所述dao层的预测时间时,将第二数据延迟该差值,则可以使得第一数据和第二数据同时到达dao层,这样基于dao层的第二更新条件还是可以基于第一数据对待更新数据进行更新。
81.203、在所述dao层,根据所述待更新数据对应的第二更新条件和所述目标数据对所述待更新数据进行更新;所述第一更新条件和所述第二更新条件均包括第一事务对应的更新条件和第二事务对应的更新条件。
82.具体的,dao层的第二更新条件可以与service的第一更新条件设置为相同的更新
条件。通过在service层进行更新条件判断后,可以快速筛选出目标数据,使得后面dao层的更新限制可以面对更少的数据量,避免由于service层到dao层之间的传输时间的不同影响dao层的判断,从而能够提高数据库数据更新的准确率。
83.在一些实施例中,根据所述待更新数据对应的第二更新条件和所述目标数据对所述待更新数据进行更新,可以包括:基于乐观锁或悲观锁机制,根据所述待更新数据对应的第二更新条件和所述目标数据对所述待更新数据进行更新。
84.具体的,乐观锁的一种实现方式是假设数据一般情况下不会造成冲突,所以数据在进行提交更新的时候,才会正式对数据的冲突与否进行检测,如果发现冲突,就会返回给用户错误的信息,让用户自己决定如何去做。通过在dao层基于乐观锁或悲观锁,来部署第二更新条件,进而基于该第二更新条件对待更新数据进行更新。
85.从上述描述可知,本技术实施例提供的数据更新控制方法通过在service层和dao层分别设置对应的更新条件,能够提前在service层就对数据进行筛选,减少了dao层的数据处理量,避免了数据从service层传输至dao层的过程造成的影响,从而提高了数据库数据更新的准确率。
86.图3为本技术实施例提供的数据更新控制设备的结构示意图。如图3所示,该数据更新控制设备30包括:获取模块301、筛选模块302及更新模块303。
87.获取模块301,用于获取第一事务的第一数据和第二事务的第二数据;所述第一数据和所述第二数据均用于对数据库中的待更新数据进行更新。
88.筛选模块302,用于在所述service层,根据所述待更新数据对应的第一更新条件,从所述第一数据和所述第二数据中筛选获得目标数据,并将所述目标数据传入所述dao层。
89.更新模块303,用于在所述dao层,根据所述待更新数据对应的第二更新条件和所述目标数据对所述待更新数据进行更新;所述第一更新条件和所述第二更新条件均包括第一事务对应的更新条件和第二事务对应的更新条件。
90.本技术实施例提供的数据更新控制设备,通过在service层和dao层分别设置对应的更新条件,能够提前在service层就对数据进行筛选,减少了dao层的数据处理量,避免了数据从service层传输至dao层的过程造成的影响,从而提高了数据库数据更新的准确率。
91.在一些实施例中,更新模块303具体用于:基于乐观锁或悲观锁机制,根据所述待更新数据对应的第二更新条件和所述目标数据对所述待更新数据进行更新。
92.在一些实施例中,设备30还包括处理模块(未示出)用于:
93.在所述service层部署所述待更新数据对应的第一更新条件;
94.在所述dao层部署所述待更新数据对应的第二更新条件。
95.在一些实施例中,处理模块还用于:获取多个事务;根据多个事务的业务逻辑,梳理获得存在更新冲突的事务对;所述事务对中的各事务对应的输入数据均用于对数据库中同一数据表的同一数据进行更新;针对同属于一个事务对的第一事务和第二事务,根据所述第一事务和所述第二事务对应的业务逻辑,确定所述第一事务和所述第二事务分别相对于对应的待更新数据的更新规则,并根据所述更新规则确定所述待更新数据在service层对应的第一更新条件和在dao层对应的第二更新条件。
96.在一些实施例中,处理模块具体用于:若所述第一事务和所述第二事务对应的业务逻辑包括同时接收到所述第一事务的第一数据和所述第二事务的第二数据时,以所述第
一事务的第一数据为准进行数据更新,则确定所述第一事务相对于对应的待更新数据的更新规则为若接收到所述第一数据时,同时接收到所述第二数据,则将所述第一数据确定为目的数据。
97.筛选模块302具体用于:若接收到所述第一数据时,同时接收到所述第二数据,则将所述第一数据确定为目的数据。
98.在一些实施例中,处理模块具体用于:
99.若所述第一事务和所述第二事务对应的业务逻辑是同时接收到所述第一事务的第一数据和所述第二事务的第二数据时,以所述第一事务的第一数据为准进行数据更新,则,确定所述第二事务相对于对应的待更新时数据的更新规则为若接收到所述第二数据时,同时接收到所述第一数据,则将所述第二数据延迟第一预设时间传输至所述dao层,或者,将所述第二数据进行拦截。
100.在一些实施例中,处理模块具体用于:
101.根据所述第一数据从所述service层传输至所述dao层的时间确定第一预设时间。
102.在一些实施例中,处理模块具体用于:
103.将所述第一数据从所述service层传输至所述dao层的时间确定为所述第一预设时间;
104.或者,
105.根据所述第一数据从所述servic层传输至所述dao层的时间和所述第二数据从所述service层传输至所述dao层的预测时间之间的差值确定所述第一预设时间。
106.本技术实施例提供的数据更新控制设备,可用于执行上述的方法实施例,其实现原理和技术效果类似,本实施例此处不再赘述。
107.图4为本技术实施例提供的电子设备的硬件结构示意图。如图4所示,本实施例提供的电子设备40包括:至少一个处理器401和存储器402。该电子设备40还包括通信部件403。其中,处理器401、存储器402以及通信部件403通过总线404连接。
108.在具体实现过程中,至少一个处理器401执行所述存储器402存储的计算机执行指令,使得至少一个处理器401执行如上电子设备40所执行的数据更新控制方法。
109.处理器401的具体实现过程可参见上述方法实施例,其实现原理和技术效果类似,本实施例此处不再赘述。
110.在上述的图4所示的实施例中,应理解,处理器可以是中央处理单元(英文:central processing unit,简称:cpu),还可以是其他通用处理器、数字信号处理器(英文:digital signal processor,简称:dsp)、专用集成电路(英文:application specific integrated circuit,简称:asic)等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合发明所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
111.存储器可能包含高速ram存储器,也可能还包括非易失性存储nvm,例如至少一个磁盘存储器。
112.总线可以是工业标准体系结构(industry standard architecture,isa)总线、外部设备互连(peripheral component,pci)总线或扩展工业标准体系结构(extended industry standard architecture,eisa)总线等。总线可以分为地址总线、数据总线、控制
总线等。为便于表示,本技术附图中的总线并不限定仅有一根总线或一种类型的总线。
113.本技术还提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,实现如上数据更新控制设备执行的数据更新控制方法。
114.上述的计算机可读存储介质,上述可读存储介质可以是由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(sram),电可擦除可编程只读存储器(eeprom),可擦除可编程只读存储器(eprom),可编程只读存储器(prom),只读存储器(rom),磁存储器,快闪存储器,磁盘或光盘。可读存储介质可以是通用或专用计算机能够存取的任何可用介质。
115.本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本技术的其它实施方案。本技术旨在涵盖本技术的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本技术的一般性原理并包括本技术未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本技术的真正范围和精神由下面的权利要求书指出。
116.应当理解的是,本技术并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本技术的范围仅由所附的权利要求书来限制。

技术特征:
1.一种数据更新控制方法,应用于业务服务器,所述业务服务器包括业务逻辑service层和数据持久dao层,所述方法包括:获取第一事务的第一数据和第二事务的第二数据;所述第一数据和所述第二数据均用于对数据库中的待更新数据进行更新;在所述service层,根据所述待更新数据对应的第一更新条件,从所述第一数据和所述第二数据中筛选获得目标数据,并将所述目标数据传入所述dao层;在所述dao层,根据所述待更新数据对应的第二更新条件和所述目标数据对所述待更新数据进行更新;所述第一更新条件和所述第二更新条件均包括第一事务对应的更新条件和第二事务对应的更新条件。2.根据权利要求1所述的方法,其特征在于,所述根据所述待更新数据对应的第二更新条件和所述目标数据对所述待更新数据进行更新,包括:基于乐观锁或悲观锁机制,根据所述待更新数据对应的第二更新条件和所述目标数据对所述待更新数据进行更新。3.根据权利要求1所述的方法,其特征在于,所述根据所述待更新数据对应的第一更新条件,从所述第一数据和所述第二数据中筛选获得目标数据之前,还包括:在所述service层部署所述待更新数据对应的第一更新条件;在所述dao层部署所述待更新数据对应的第二更新条件。4.根据权利要求1-3任一项所述的方法,其特征在于,所述在所述service层部署所述待更新数据对应的第一更新条件之前,还包括:获取多个事务;根据多个事务的业务逻辑,梳理获得存在更新冲突的事务对;所述事务对中的各事务对应的输入数据均用于对数据库中同一数据表的同一数据进行更新;针对同属于一个事务对的第一事务和第二事务,根据所述第一事务和所述第二事务对应的业务逻辑,确定所述第一事务和所述第二事务分别相对于对应的待更新数据的更新规则,并根据所述更新规则确定所述待更新数据在service层对应的第一更新条件和在dao层对应的第二更新条件。5.根据权利要求4所述的方法,其特征在于,所述根据所述第一事务和所述第二事务对应的业务逻辑,确定所述第一事务和所述第二事务分别相对于对应的待更新数据的更新规则,包括:若所述第一事务和所述第二事务对应的业务逻辑包括同时接收到所述第一事务的第一数据和所述第二事务的第二数据时,以所述第一事务的第一数据为准进行数据更新,则确定所述第一事务相对于对应的待更新数据的更新规则为若接收到所述第一数据时,同时接收到所述第二数据,则将所述第一数据确定为目的数据;所述根据所述待更新数据对应的第一更新条件,从所述第一数据和所述第二数据中筛选获得目标数据,包括:若接收到所述第一数据时,同时接收到所述第二数据,则将所述第一数据确定为目的数据。6.根据权利要求4所述的方法,其特征在于,所述根据所述第一事务和所述第二事务对应的业务逻辑,确定所述第一事务和所述第二事务分别相对于对应的待更新数据的更新规
则,包括:若所述第一事务和所述第二事务对应的业务逻辑是同时接收到所述第一事务的第一数据和所述第二事务的第二数据时,以所述第一事务的第一数据为准进行数据更新,则,确定所述第二事务相对于对应的待更新时数据的更新规则为若接收到所述第二数据时,同时接收到所述第一数据,则将所述第二数据延迟第一预设时间传输至所述dao层,或者,将所述第二数据进行拦截。7.根据权利要求6所述的方法,其特征在于,所述将所述第二数据延迟第一预设时间传输至所述dao层之前,还包括:根据所述第一数据从所述service层传输至所述dao层的时间确定第一预设时间。8.根据权利要求7所述的方法,其特征在于,所述根据所述第一数据从所述service层传输至所述dao层的时间确定第一预设时间,包括:将所述第一数据从所述service层传输至所述dao层的时间确定为所述第一预设时间;或者,根据所述第一数据从所述servic层传输至所述dao层的时间和所述第二数据从所述service层传输至所述dao层的预测时间之间的差值确定所述第一预设时间。9.一种数据更新控制设备,包括:获取模块,用于获取第一事务的第一数据和第二事务的第二数据;所述第一数据和所述第二数据均用于对数据库中的待更新数据进行更新;筛选模块,用于在service层,根据所述待更新数据对应的第一更新条件,从所述第一数据和所述第二数据中筛选获得目标数据,并将所述目标数据传入dao层;更新模块,用于在所述dao层,根据所述待更新数据对应的第二更新条件和所述目标数据对所述待更新数据进行更新;所述第一更新条件和所述第二更新条件均包括第一事务对应的更新条件和第二事务对应的更新条件。10.一种电子设备,其特征在于,包括:处理器,以及与所述处理器通信连接的存储器;所述存储器存储计算机执行指令;所述处理器执行所述存储器存储的计算机执行指令,以实现如权利要求1至8任一项所述的方法。11.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现如权利要求1至8任一项所述的方法。

技术总结
本申请提供一种数据更新控制方法、设备及存储介质,可用于金融领域及其他领域。该方法包括:获取第一事务的第一数据和第二事务的第二数据,所述第一数据和所述第二数据均用于对数据库中的待更新数据进行更新,在所述Service层,根据所述待更新数据对应的第一更新条件,从所述第一数据和所述第二数据中筛选获得目标数据,并将所述目标数据传入所述DAO层,在所述DAO层,根据所述待更新数据对应的第二更新条件和所述目标数据对所述待更新数据进行更新,所述第一更新条件和所述第二更新条件均包括第一事务对应的更新条件和第二事务对应的更新条件。本申请实施例提供的方法提高了数据库数据更新的准确率。了数据库数据更新的准确率。了数据库数据更新的准确率。


技术研发人员:孙浩然
受保护的技术使用者:中国银行股份有限公司
技术研发日:2023.07.03
技术公布日:2023/10/5
版权声明

本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

航空之家 https://www.aerohome.com.cn/

飞机超市 https://mall.aerohome.com.cn/

航空资讯 https://news.aerohome.com.cn/

分享:

扫一扫在手机阅读、分享本文

相关推荐