1.本发明涉及计算机业务过程优化技术领域,尤其涉及一种空回滚的控制方法、装置、计算机设备以及存储介质。
背景技术:
2.目前,微服务软件架构已在计算机领域得到广泛的应用,现今较为常用的微服务软件架构有atomikos、tcc-transaction、bytetcc、支付宝gts等,这些框架中均设置了空回滚机制。具体地,空回滚机制是一种用于处理业务流程中出现的错误的机制,当业务流程出现错误导致业务流程无法顺利完成时,业务流程通常已进行了一部分,系统中的一部分数据已经被修改,通过执行空回滚操作能够将系统中的数据恢复至业务流程尚未进行的状态,更便于系统修复错误。由于空回滚操作的特殊性,空回滚操作并不一定能够执行成功,所以系统在执行空回滚操作时通常都允许多次循环触发空回滚操作。并且为了避免出现空回滚陷入无限循环而导致内存溢出的情况,通常会对空回滚的循环触发次数进行限制。但是,现有的空回滚的循环触发次数通常是通过设置软件框架中相关的全局参数(如,seata server端的conf/nacos-config.txt中的client.tm.commit.retry.count、client.tm.rollback.retry.count这两个参数)来实现限制,导致空回滚的循环触发次数的次数限制通常比较固定(在不同的业务流程中均使用相同的次数限制,如,都是1次或者都是2次),难以很好地适应不同的业务场景。例如,对于创建订单的业务流程,空回滚的原则一般是尽量使客户的订单进来,所以偏向于能够更多次数地循环触发空回滚,也即可以将空回滚的次数限制设置为更高的次数,而对于涉及到锁库存等锁定核心资源动作的业务流程,则偏向于更少次数地循环触发空回滚,也即可以将空回滚的次数限制设置为更少的次数。可见,目前的空回滚的控制方法的空回滚循环次数限制较为固定,难以很好地适应不同的业务场景。
技术实现要素:
3.本发明所要解决的技术问题在于,目前的空回滚的控制方法的空回滚循环次数限制较为固定,难以很好地适应不同的业务场景。
4.为了解决上述技术问题,本发明第一方面公开了一种空回滚的控制方法,所述方法包括:
5.检测是否接收到目标模块的空回滚请求,其中,所述目标模块是指预先确定出的微服务软件架构中的业务模块;
6.当检测到所述空回滚请求时,从预设的空回滚阈值集合中获取所述目标模块对应的目标空回滚阈值;
7.执行所述目标模块的空回滚操作,并检测所述目标模块的空回滚操作是否执行成功;
8.当检测出所述目标模块的空回滚操作执行成功时,停止所述目标模块的空回滚操
作的执行;
9.当检测出所述目标模块的空回滚操作未执行成功时,记录所述目标模块已尝试执行的空回滚操作的次数,并判断所述次数是否大于所述目标空回滚阈值;
10.当判断出所述次数大于所述目标空回滚阈值时,触发执行所述停止所述目标模块的空回滚操作的执行的步骤;
11.当判断出所述次数未大于所述目标空回滚阈值时,触发所述执行所述目标模块的空回滚操作,并检测所述目标模块的空回滚操作是否执行成功的步骤。
12.本发明第二方面公开了一种空回滚的控制装置,所述装置包括:
13.检测模块,用于检测是否接收到目标模块的空回滚请求,其中,所述目标模块是指预先确定出的微服务软件架构中的业务模块;
14.获取模块,用于当检测到所述空回滚请求时,从预设的空回滚阈值集合中获取所述目标模块对应的目标空回滚阈值;
15.执行模块,用于执行所述目标模块的空回滚操作,并检测所述目标模块的空回滚操作是否执行成功;
16.停止模块,用于当检测出所述目标模块的空回滚操作执行成功时,停止所述目标模块的空回滚操作的执行;
17.判断模块,用于当检测出所述目标模块的空回滚操作未执行成功时,记录所述目标模块已尝试执行的空回滚操作的次数,并判断所述次数是否大于所述目标空回滚阈值;当判断出所述次数大于所述目标空回滚阈值时,触发执行所述停止所述目标模块的空回滚操作的执行的步骤;当判断出所述次数未大于所述目标空回滚阈值时,触发所述执行所述目标模块的空回滚操作,并检测所述目标模块的空回滚操作是否执行成功的步骤。
18.本发明第三方面公开了一种计算机设备,所述计算机设备包括:
19.存储有可执行程序代码的存储器;
20.与所述存储器连接的处理器;
21.所述处理器调用所述存储器中存储的所述可执行程序代码,执行本发明第一方面公开的空回滚的控制方法中的部分或全部步骤。
22.本发明第四方面公开了一种计算机存储介质,所述计算机存储介质存储有计算机指令,所述计算机指令被调用时,用于执行本发明第一方面公开的空回滚的控制方法中的部分或全部步骤。
23.本发明实施例中,在检测到目标模块的空回滚请求时,从预设的空回滚阈值集合中获取目标模块对应的目标空回滚阈值,然后执行目标模块的空回滚操作,并检测目标模块的空回滚操作是否执行成功,当检测出目标模块的空回滚操作执行成功时,停止目标模块的空回滚操作的执行,当检测出目标模块的空回滚操作未执行成功时,记录目标模块已尝试执行的空回滚操作的次数,并判断次数是否大于目标空回滚阈值,当判断出次数大于目标空回滚阈值时,停止目标模块的空回滚操作的执行,当判断出次数未大于目标空回滚阈值时,继续执行目标模块的空回滚操作。通过在检测到目标模块的空回滚请求时,从空回滚阈值集合中获取目标模块对应的目标空回滚阈值,最后根据目标回滚阈值对空回滚的循环触发的次数进行控制,从而能够实现针对不同的目标模块设置不同的空回滚循环次数,使得空回滚操作能够灵活地适应不同的应用场景。
附图说明
24.为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
25.图1是本发明实施例公开的一种空回滚的控制方法的流程示意图;
26.图2是本发明实施例公开的一种空回滚的控制装置的结构示意图;
27.图3是本发明实施例公开的一种计算机设备的结构示意图;
28.图4是本发明实施例公开的一种计算机存储介质的结构示意图。
具体实施方式
29.为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
30.本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、装置、产品或端没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或端固有的其他步骤或单元。
31.在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本发明的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
32.本技术实施例可以基于人工智能技术对相关的数据进行获取和处理。其中,人工智能(artificial intelligence,ai)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。
33.人工智能基础技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理技术、操作/交互系统、机电一体化等技术。人工智能软件技术主要包括计算机视觉技术、机器人技术、生物识别技术、语音处理技术、自然语言处理技术以及机器学习/深度学习等几大方向。
34.本发明公开了一种空回滚的控制方法、装置、计算机设备以及存储介质,在检测到目标模块的空回滚请求时,从预设的空回滚阈值集合中获取目标模块对应的目标空回滚阈值,然后执行目标模块的空回滚操作,并检测目标模块的空回滚操作是否执行成功,当检测出目标模块的空回滚操作执行成功时,停止目标模块的空回滚操作的执行,当检测出目标模块的空回滚操作未执行成功时,记录目标模块已尝试执行的空回滚操作的次数,并判断次数是否大于目标空回滚阈值,当判断出次数大于目标空回滚阈值时,停止目标模块的空回滚操作的执行,当判断出次数未大于目标空回滚阈值时,继续执行目标模块的空回滚操
作。通过在检测到目标模块的空回滚请求时,从空回滚阈值集合中获取目标模块对应的目标空回滚阈值,最后根据目标回滚阈值对空回滚的循环触发的次数进行控制,从而能够实现针对不同的目标模块设置不同的空回滚循环次数,使得空回滚操作能够灵活地适应不同的应用场景。以下分别进行详细说明。
35.实施例一
36.请参阅图1,图1是本发明实施例公开的一种空回滚的控制方法的流程示意图。如图1所示,该空回滚的控制方法可以包括以下操作:
37.101、检测是否接收到目标模块的空回滚请求,其中,所述目标模块是指预先确定出的微服务软件架构中的业务模块。
38.在上述步骤101中,在整个微服务软件架构中通常会设置有多个业务模块,不同的业务模块用于实现不同的业务流程。如,创建订单业务模块用于实现创建订单的业务流程,当创建订单的业务流程出现异常时,创建订单业务模块则可以触发空回滚请求,打款业务模块用于实现打款的业务流程,当打款的业务流程出现异常时,打款业务模块则可以触发空回滚请求。
39.102、当检测到所述空回滚请求时,从预设的空回滚阈值集合中获取所述目标模块对应的目标空回滚阈值。
40.103、执行所述目标模块的空回滚操作,并检测所述目标模块的空回滚操作是否执行成功。
41.104、当检测出所述目标模块的空回滚操作执行成功时,停止所述目标模块的空回滚操作的执行。
42.105、当检测出所述目标模块的空回滚操作未执行成功时,记录所述目标模块已尝试执行的空回滚操作的次数,并判断所述次数是否大于所述目标空回滚阈值;当判断出所述次数大于所述目标空回滚阈值时,触发执行所述停止所述目标模块的空回滚操作的执行的步骤;当判断出所述次数未大于所述目标空回滚阈值时,触发所述执行所述目标模块的空回滚操作,并检测所述目标模块的空回滚操作是否执行成功的步骤。
43.在上述步骤102、103、104和105中,在整个微服务软件架构中,空回滚的循环触发的次数可以通过seata server端的conf/nacos-config.txt中的client.tm.commit.retry.count、client.tm.rollback.retry.count这两个全局参数来进行控制。其中,client.tm.commit.retry.count可以用于控制空回滚提交的次数,client.tm.rollback.retry.count可以用于控制空回滚成功执行的次数。可以预先根据各个业务模块的空回滚循环次数需求设置各个业务模块对应的client.tm.commit.retry.count和client.tm.rollback.retry.count全局参数,以形成一个参数集合(即空回滚阈值集合)。当某一业务模块(即目标模块)触发空回滚请求时,即可以从参数集合中查询出目标模块对应的client.tm.commit.retry.count和client.tm.rollback.retry.count两个全局参数的设值,然后将两个查询到的设值设置为client.tm.commit.retry.count和client.tm.rollback.retry.count的值,即可以实现对空回滚的循环触发的次数进行控制。具体地,在每次完成空回滚的执行之后,判断该次空回滚是否执行成功,若成功,则停止空回滚的执行,若不成功,则记录空回滚已经执行失败的次数,若失败的次数未大于目标空回滚阈值,则继续循环触发空回滚的执行,若失败的次数
大于目标空回滚阈值,则停止空回滚的执行,这样即能够实现对空回滚的循环触发的次数的控制。
44.可见,实施图1所描述的空回滚的控制方法,在检测到目标模块的空回滚请求时,从预设的空回滚阈值集合中获取目标模块对应的目标空回滚阈值,然后执行目标模块的空回滚操作,并检测目标模块的空回滚操作是否执行成功,当检测出目标模块的空回滚操作执行成功时,停止目标模块的空回滚操作的执行,当检测出目标模块的空回滚操作未执行成功时,记录目标模块已尝试执行的空回滚操作的次数,并判断次数是否大于目标空回滚阈值,当判断出次数大于目标空回滚阈值时,停止目标模块的空回滚操作的执行,当判断出次数未大于目标空回滚阈值时,继续执行目标模块的空回滚操作。通过在检测到目标模块的空回滚请求时,从空回滚阈值集合中获取目标模块对应的目标空回滚阈值,最后根据目标回滚阈值对空回滚的循环触发的次数进行控制,从而能够实现针对不同的目标模块设置不同的空回滚循环次数,使得空回滚操作能够灵活地适应不同的应用场景。
45.在一个可选的实施例中,所述从预设的空回滚阈值集合中获取所述目标模块对应的目标空回滚阈值,包括:
46.从预设的空回滚阈值集合中获取所述目标模块对应的原始空回滚阈值;
47.判断所述空回滚请求是否满足预设的特殊场景条件;
48.当判断出所述空回滚请求满足所述特殊场景条件时,对所述原始空回滚阈值执行预设的阈值场景化操作以得到所述目标模块对应的目标空回滚阈值;
49.当判断出所述空回滚请求不满足所述特殊场景条件时,将所述原始空回滚阈值作为所述目标模块对应的目标空回滚阈值。
50.在该可选的实施例中,在实际应用中,空回滚执行成功的几率一定程度上会受系统当前的状态影响。如,遇到秒杀场景、双11场景等,系统通常将会运行在高负载的状态,此时空回滚执行成功的几率可能会降低,所以可以相应地调高目标空回滚阈值以调高空回滚循环次数的限制,从而有利于保证系统的高可用。具体地,可以先从空回滚阈值集合中获取到为目标模块预先设置好的空回滚阈值(也即原始空回滚阈值),然后判断系统当前是否处于特殊的场景下(也即判断空回滚请求是否满足预设的特殊场景条件),若判断出系统当前处于特殊的场景(如,秒杀场景、双11场景)下,则可以调高空回滚循环次数的限制(也即对原始空回滚阈值执行预设的阈值场景化操作以得到目标模块对应的目标空回滚阈值)。其中,对原始空回滚阈值所执行的阈值场景化操作可以是将原始空回滚阈值调高预设的固定次数以得到目标空回滚阈值(如,原始空回滚阈值为4,调高固定次数2之后,即得到目标空回滚阈值为6)或者将原始空回滚阈值调高预设的固定比例以得到目标空回滚阈值(如,原始空回滚阈值为4,调高固定比例50%之后,即得到目标空回滚阈值为6)。
51.可见,实施该可选的实施例,在获取目标空回滚阈值时,先从预设的空回滚阈值集合中获取目标模块对应的原始空回滚阈值,然后判断空回滚请求是否满足预设的特殊场景条件,当判断出空回滚请求满足特殊场景条件时,对原始空回滚阈值执行预设的阈值场景化操作以得到目标模块对应的目标空回滚阈值,当判断出空回滚请求不满足特殊场景条件时,将原始空回滚阈值作为目标模块对应的目标空回滚阈值,从而能够实现在特殊场景下,对空回滚循环次数的限制作进一步的调整,使得目标模块的空回滚循环次数的控制更加灵活,从而能够更灵活地适应不同的应用场景,有利于提高系统的高可用性。
52.在一个可选的实施例中,所述判断所述空回滚请求是否满足预设的特殊场景条件,包括:
53.判断所述空回滚请求是否携带预设的特殊场景标识;
54.当判断出所述空回滚请求携带所述特殊场景标识时,确定所述空回滚请求满足预设的特殊场景条件;
55.当判断出所述空回滚请求未携带所述特殊场景标识时,确定所述空回滚请求不满足所述特殊场景条件,或者,
56.获取所述空回滚请求对应的请求时刻;
57.判断所述请求时刻是否在预设的特殊场景时间段内;
58.当判断出所述请求时刻在所述特殊场景时间段内,确定所述空回滚请求满足预设的特殊场景条件;
59.当判断出所述请求时刻不在所述特殊场景时间段内,确定所述空回滚请求不满足所述特殊场景条件。
60.在该可选的实施例中,可以通过在目标模块触发的空回滚请求中设置预设的特殊场景标识,来标识出目标模块是否处于特殊场景下。也可以预先设置好特殊场景时间段,通过判断空回滚请求对应的请求时刻是否在特殊场景时间段内,来判断出目标模块当前是否处于特殊场景下。如,对于双11的特殊场景,可以在空回滚请求中设置预设的双11特殊场景标识,也可以将双11的时间段设置为特殊场景时间段,从而能够确定出目标模块当前处于特殊场景下。
61.可见,实施该可选的实施例,通过在空回滚请求中设置预设的特殊场景标识或者通过判断空回滚请求对应的请求时刻是否在预设的特殊场景时间段,从而能够判断出空回滚请求是否满足特殊场景条件,使得目标模块的空回滚循环次数的控制能够准确地适应特殊场景。
62.在一个可选的实施例中,所述空回滚阈值集合预先存储在redis缓存中;
63.以及,所述从预设的空回滚阈值集合中获取所述目标模块对应的目标空回滚阈值,包括:
64.通过@refreshscope动态刷新从所述redis缓存中的空回滚阈值集合获取所述目标模块对应的目标空回滚阈值。
65.在该可选的实施例中,空回滚的处理速度通常比较快,所以对目标空回滚阈值的获取速度的要求也比较高。将空回滚阈值集合预先存储在redis缓存,从而能够利用redis缓存高速读取的特性,实现对目标空回滚阈值的快速获取,满足空回滚的处理速度的需求。对于普通的读取配置文件的数据获取方式,即使使用apollo之类的实时读取配置文件的框架,仍不能满足高频的动态更改需求,而redis缓存是基于内存实现数据读取的,所以能够实现数据的快速读取,满足对目标空回滚阈值的高频动态更改的需求。另外,还可以结合@refreshscope动态刷新,不断地从redis缓存中获取目标空回滚阈值,从而实现目标空回滚阈值的动态配置。
66.可见,实施该可选的实施例,通过将空回滚阈值集合预先存储在redis缓存中,并通过@refreshscope动态刷新从redis缓存中获取目标模块对应的目标空回滚阈值,从而能够实现目标空回滚阈值的快速动态配置,满足目标空回滚阈值的高频动态更改需求,实现
对空回滚循环次数的动态控制,更灵活地适应不同的应用场景。
67.在一个可选的实施例中,所述当检测到所述空回滚请求时,从预设的空回滚阈值集合中获取所述目标模块对应的目标空回滚阈值之前,所述方法还包括:
68.获取所述目标模块的历史空回滚阈值最大值、历史空回滚阈值最小值和历史空回滚阈值平均值;
69.根据所述目标模块的历史空回滚阈值最大值、历史空回滚阈值最小值和历史空回滚阈值平均值,计算所述目标模块对应的目标空回滚阈值;
70.将所述目标模块对应的目标空回滚阈值添加至所述空回滚阈值集合。
71.在该可选的实施例中,还可以在系统中记录目标模块的空回滚阈值的历史设值,然后根据空回滚阈值的历史设值计算出空回滚阈值的经验值(也即目标空回滚阈值),最后将空回滚阈值的经验值存储至空回滚阈值集合,从而能够实现对空回滚阈值集合的自动计算。具体地,可以获取空回滚阈值的历史设值中的最大值、最小值和平均值,然后根据最大值、最小值和平均值计算出目标模块对应的目标空回滚阈值,具体的计算过程稍后进行具体描述。可选地,空回滚阈值的历史设值可以取过去一年、一个月、一个星期内的设值。
72.可见,实施该可选的实施例,在从空回滚阈值集合中获取目标模块对应的目标空回滚阈值之前,先获取目标模块的历史空回滚阈值最大值、历史空回滚阈值最小值和历史空回滚阈值平均值,然后根据目标模块的历史空回滚阈值最大值、历史空回滚阈值最小值和历史空回滚阈值平均值,计算目标模块对应的目标空回滚阈值,从而能够根据空回滚阈值的历史设值自动计算空回滚阈值集合,有利于目标空回滚阈值的不断优化,有利于系统的长久运行。
73.在一个可选的实施例中,所述根据所述目标模块的历史空回滚阈值最大值、历史空回滚阈值最小值和历史空回滚阈值平均值,计算所述目标模块对应的目标空回滚阈值,包括:
74.通过以下公式计算所述目标模块对应的目标空回滚阈值:
[0075][0076]
其中,x为所述目标模块对应的目标空回滚阈值,a为所述目标模块的历史空回滚阈值最大值,b为所述目标模块的历史空回滚阈值最小值,c为所述目标模块的历史空回滚阈值平均值。
[0077]
在该可选的实施例中,通过上述公式合理地设置最大值、最小值和平均值的权值,从而能够最终计算出合理的经验值作为目标空回滚阈值,使得目标空回滚阈值的自动计算更加准确,有利于保证空回滚的顺利执行。
[0078]
在一个可选的实施例中,所述当检测到所述空回滚请求时,从预设的空回滚阈值集合中获取所述目标模块对应的目标空回滚阈值之前,所述方法还包括:
[0079]
获取由用户输入的所述目标模块对应的目标空回滚阈值;
[0080]
判断所述目标空回滚阈值是否小于预先确定出的系统空回滚极限值,其中,所述系统空回滚极限值是根据所述微服务软件架构的硬件配置确定的;
[0081]
当判断出所述目标空回滚阈值小于所述系统空回滚极限值时,将所述目标模块对应的目标空回滚阈值添加至所述空回滚阈值集合;
[0082]
当判断出所述目标空回滚阈值未小于所述系统空回滚极限值时,向所述用户发送警告提示,以提示所述用户重新输入所述目标空回滚阈值。
[0083]
在该可选的实施例中,目标模块对应的目标空回滚阈值还可以是由用户根据自身的经验自由设置的。系统空回滚极限值会受系统的硬件配置(系统的硬件配置水平决定着系统的最大承载能力)的限制,若用户设置的目标空回滚阈值过高,超出了系统的最大承载能力,将容易影响系统的稳定性。因此,可以先通过系统的压力测试计算出系统空回滚极限值,然后在用户输入目标空回滚阈值时,判断输入的目标空回滚阈值是否小于系统空回滚极限值,若小于,则可以完成目标空回滚阈值的设置,若不小于,则可以向用户发送警告提示,提示用户重新输入合适的目标空回滚阈值。在实现用户自由设置目标空回滚阈值的同时,对用户设置的目标空回滚阈值进行自动检查,从而有利于提高系统的稳定性。
[0084]
可见,实施该可选的实施例,在从空回滚阈值集合中获取目标模块对应的目标空回滚阈值之前,先获取用户输入的目标空回滚阈值,然后判断目标空回滚阈值是否小于系统空回滚极限值,若小于,则将目标空回滚阈值添加至空回滚阈值集合,若不小于,则向用户发送警告提示以提示用户重新输入目标空回滚阈值,从而能够在实现用户自由设置目标空回滚阈值的同时,对用户设置的目标空回滚阈值进行自动检查,从而有利于提高系统的稳定性。
[0085]
可选地,还可以:将所述空回滚的控制方法的空回滚的控制信息上传至区块链中。
[0086]
具体来说,空回滚的控制信息是通过运行所述空回滚的控制方法后得到的,用于记录空回滚的控制情况,例如,空回滚请求的接收时间、获取到的目标空回滚阈值、空回滚操作的执行次数等等。将空回滚的控制信息上传至区块链可保证其安全性和对用户的公正透明性。用户可以从区块链中下载得到该空回滚的控制信息,以便查证所述空回滚的控制方法的空回滚的控制信息是否被篡改。本示例所指区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层等。
[0087]
实施例二
[0088]
请参阅图2,图2是本发明实施例公开的一种空回滚的控制装置的结构示意图。如图2所示,该空回滚的控制装置可以包括:
[0089]
检测模块201,用于检测是否接收到目标模块的空回滚请求,其中,所述目标模块是指预先确定出的微服务软件架构中的业务模块;
[0090]
获取模块202,用于当检测到所述空回滚请求时,从预设的空回滚阈值集合中获取所述目标模块对应的目标空回滚阈值;
[0091]
执行模块203,用于执行所述目标模块的空回滚操作,并检测所述目标模块的空回滚操作是否执行成功;
[0092]
停止模块204,用于当检测出所述目标模块的空回滚操作执行成功时,停止所述目标模块的空回滚操作的执行;
[0093]
判断模块205,用于当检测出所述目标模块的空回滚操作未执行成功时,记录所述目标模块已尝试执行的空回滚操作的次数,并判断所述次数是否大于所述目标空回滚阈
值;当判断出所述次数大于所述目标空回滚阈值时,触发执行所述停止所述目标模块的空回滚操作的执行的步骤;当判断出所述次数未大于所述目标空回滚阈值时,触发所述执行所述目标模块的空回滚操作,并检测所述目标模块的空回滚操作是否执行成功的步骤。
[0094]
对于上述空回滚的控制装置的具体描述可以参照上述空回滚的控制方法的具体描述,为避免重复,在此不再一一赘述。
[0095]
实施例三
[0096]
请参阅图3,图3是本发明实施例公开的一种计算机设备的结构示意图。如图3所示,该计算机设备可以包括:
[0097]
存储有可执行程序代码的存储器301;
[0098]
与存储器301连接的处理器302;
[0099]
处理器302调用存储器301中存储的可执行程序代码,执行本发明实施例一公开的空回滚的控制方法中的步骤。
[0100]
实施例四
[0101]
请参阅图4,本发明实施例公开了一种计算机存储介质401,计算机存储介质401存储有计算机指令,该计算机指令被调用时,用于执行本发明实施例一公开的空回滚的控制方法中的步骤。
[0102]
以上所描述的装置实施例仅是示意性的,其中所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
[0103]
通过以上的实施例的具体描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,存储介质包括只读存储器(read-only memory,rom)、随机存储器(random access memory,ram)、可编程只读存储器(programmable read-only memory,prom)、可擦除可编程只读存储器(erasable programmable read only memory,eprom)、一次可编程只读存储器(one-time programmable read-only memory,otprom)、电子抹除式可复写只读存储器(electrically-erasable programmable read-only memory,eeprom)、只读光盘(compact disc read-only memory,cd-rom)或其他光盘存储器、磁盘存储器、磁带存储器、或者能够用于携带或存储数据的计算机可读的任何其他介质。
[0104]
最后应说明的是:本发明实施例公开的一种空回滚的控制方法、装置、计算机设备以及存储介质所揭露的仅为本发明较佳实施例而已,仅用于说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解;其依然可以对前述各项实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或替换,并不使相应的技术方案的本质脱离本发明各项实施例技术方案的精神和范围。