一种任务并发控制方法和装置与流程

文档序号:29353928发布日期:2022-03-22 23:11阅读:154来源:国知局
一种任务并发控制方法和装置与流程

1.本发明涉及数据处理领域,尤其涉及一种任务并发控制方法和装置。


背景技术:

2.目前it市场正发生巨大的变化,云计算、大数据、物联网、人工智能等新技术也在逐步更新。主机一直以其高可用性、高吞吐率而备受各企业的青睐,但主机设备依赖单一,不利于自主可控,核心业务快速增长,主机面临着日益严峻的挑战。随着分布式架构的崛起,各企业都在积极探索主机下移的解决方案。
3.高频调度装置作为分布式架构核心系统的一环,具有子任务高并发处理的机制,可根据交易码设置不同并发的能力。但由于下游系统的不稳定和处理能力有限,势必出现部分场景或者部分时段并发过高,造成下游系统负载过高,极端情况可能造成下游系统全面瘫痪的风险,目前采用熔断降级方式解决这一问题。在实现本发明的过程中,发明人发现现有技术至少存在如下问题:
4.1、高频调度装置目前仅设有一种并发控制机制,即固定并发值,若设置不合理将造成业务失败,甚者造成下游系统瘫痪。
5.2、熔断降级方式仅能够保护系统本身,一旦发生并发过高将导致大面积业务报错,高频调度装置作为业务调用的上游发起方,若不动态控制并发,将导致大量业务报错,从而影响企业现有业务。
6.3、当交易量较多时,目前通过高频框架进行批拆单的业务处理,无法通过业务或者技术手段一一分析每支交易的合理并发值。


技术实现要素:

7.有鉴于此,本发明实施例提供一种任务并发控制方法和装置,至少能够解决现有技术中高频调度装置不具备动态调整当前并发的能力、无法获得合理并发值的问题。
8.为实现上述目的,根据本发明实施例的一个方面,提供了一种任务并发控制方法,包括:
9.接收下游系统传输的处理异常报文,获取所述处理异常报文中的错误参数;其中,下游系统用于接收下发的子任务并处理,子任务通过拆分主任务得到;
10.通过查询与所述错误参数对应的历史报错记录,确定最新错误发生次数,进而获取与所述最新错误发生次数对应的调整比率;
11.将所述调整比率与当前并发值的乘积,作为调整后的并发值,以对下发给下游系统的子任务量进行并发调整控制。
12.可选的,错误参数包括错误码,在所述查询与所述错误参数对应的历史报错记录之前,还包括:
13.若错误清单中存在所述错误码,则判断任务并发控制功能当前是否处于开启状态,若不处于,则下发开启指令,以将任务并发控制功能由关闭状态切换为开启状态。
14.可选的,错误参数还包括交易码,所述查询与所述错误参数对应的历史报错记录,包括:
15.查询与所述交易码对应的历史报错记录;或
16.在与所述交易码对应的历史报错记录中,查询与所述错误码对应的历史报错记录。
17.可选的,最新错误发生次数为历史错误发生次数+1,错误参数还包括本次错误发生时间,在所述获取与所述最新错误发生次数对应的调整比率之前,还包括:
18.在所述最新错误发生次数大于1的情况下,获取上一次错误发生时间,以计算上一次错误发生时间和本次错误发生时间的时间差;
19.判断所述时间差是否大于第一预设时间差阈值,若判断结果为是,则获取与所述最新错误发生次数对应的调整比率,否则结束流程。
20.可选的,所述上一次错误发生时间存储于任务并发控制缓存参数内,所述方法还包括:
21.在确定调整后的并发值后,将所述错误参数、最新错误发生次数和调整后的并发值,记录在任务并发控制缓存参数内。
22.可选的,所述对下发给下游系统的子任务量进行并发调整控制,包括:
23.若在任务并发控制缓存参数内检测到所述交易码,则使用任务并发控制缓存参数内的调整后的并发值,对下发给下游系统的子任务量进行并发调整控制。
24.可选的,在所述对下发给下游系统的子任务量进行并发调整控制之后,还包括:
25.获取任务并发控制缓存参数内的最新错误发生时间和调整后的并发值;
26.计算当前时间和最新错误发生时间的时间差,在时间差达到第二预设时间差阈值时,确定与所述交易码对应的最新并发恢复次数,以获取与所述最新并发恢复次数对应的恢复比率;
27.将上一并发值与恢复比率的乘积,作为调整后的并发值,以对下发给下游系统的子任务量进行并发恢复控制。
28.可选的,在所述获取与所述最新错误发生次数对应的调整比率之前,还包括:若所述最新错误发生次数大于预设错误发生次数阈值,则停止进行任务并发调整操作;
29.在所述获取与所述最新并发恢复次数对应的恢复比率之前,还包括:若所述最新并发恢复次数大于预设恢复次数阈值,则停止进行任务并发恢复操作。
30.可选的,所述获取与所述最新错误发生次数对应的调整比率,包括:获取调整比率表中,排列位置为所述最新错误发生次数的调整比率;其中,调整比率表中的调整比率按照从小到大的顺序排列;
31.所述获取与所述最新并发恢复次数对应的恢复比率,包括:获取恢复比率表中,排列位置为所述最新并发恢复次数的恢复比率;其中,恢复比率表中的恢复比率按照从大到小的顺序排列。
32.可选的,在所述将上一并发值与恢复比率的乘积,作为调整后的并发值之后,还包括:在确定调整后的并发值后,将所述最新并发恢复次数、交易码和调整后的并发值,记录在任务并发控制缓存参数内。
33.为实现上述目的,根据本发明实施例的另一方面,提供了一种任务并发控制装置,
包括:
34.接收模块,用于接收下游系统传输的处理异常报文,获取所述处理异常报文中的错误参数;其中,下游系统用于接收下发的子任务并处理,子任务通过拆分主任务得到;
35.获取模块,用于通过查询与所述错误参数对应的历史报错记录,确定最新错误发生次数,进而获取与所述最新错误发生次数对应的调整比率;
36.调整模块,用于将所述调整比率与当前并发值的乘积,作为调整后的并发值,以对下发给下游系统的子任务量进行并发调整控制。
37.可选的,错误参数包括错误码,所述装置还包括开启模块,用于:
38.若错误清单中存在所述错误码,则判断任务并发控制功能当前是否处于开启状态,若不处于,则下发开启指令,以将任务并发控制功能由关闭状态切换为开启状态。
39.可选的,错误参数还包括交易码,所述获取模块,用于:
40.查询与所述交易码对应的历史报错记录;或
41.在与所述交易码对应的历史报错记录中,查询与所述错误码对应的历史报错记录。
42.可选的,最新错误发生次数为历史错误发生次数+1,错误参数还包括本次错误发生时间,所述装置还包括第一判断模块,用于:
43.在所述最新错误发生次数大于1的情况下,获取上一次错误发生时间,以计算上一次错误发生时间和本次错误发生时间的时间差;
44.判断所述时间差是否大于第一预设时间差阈值,若判断结果为是,则获取与所述最新错误发生次数对应的调整比率,否则结束流程。
45.可选的,所述上一次错误发生时间存储于任务并发控制缓存参数内,所述装置还包括记录模块,用于:
46.在确定调整后的并发值后,将所述错误参数、最新错误发生次数和调整后的并发值,记录在任务并发控制缓存参数内。
47.可选的,所述调整模块,用于:
48.若在任务并发控制缓存参数内检测到所述交易码,则使用任务并发控制缓存参数内的调整后的并发值,对下发给下游系统的子任务量进行并发调整控制。
49.可选的,还包括恢复模块,用于:
50.获取任务并发控制缓存参数内的最新错误发生时间和调整后的并发值;
51.计算当前时间和最新错误发生时间的时间差,在时间差达到第二预设时间差阈值时,确定与所述交易码对应的最新并发恢复次数,以获取与所述最新并发恢复次数对应的恢复比率;
52.将上一并发值与恢复比率的乘积,作为调整后的并发值,以对下发给下游系统的子任务量进行并发恢复控制。
53.可选的,还包括第二判断模块,用于:
54.若所述最新错误发生次数大于预设错误发生次数阈值,则停止进行任务并发调整操作;以及
55.若所述最新并发恢复次数大于预设恢复次数阈值,则停止进行任务并发恢复操作。
56.可选的,所述获取模块,用于:获取调整比率表中,排列位置为所述最新错误发生次数的调整比率;其中,调整比率表中的调整比率按照从小到大的顺序排列;
57.所述恢复模块,用于:获取恢复比率表中,排列位置为所述最新并发恢复次数的恢复比率;其中,恢复比率表中的恢复比率按照从大到小的顺序排列。
58.可选的,所述记录模块,还用于:在确定调整后的并发值后,将所述最新并发恢复次数、交易码和调整后的并发值,记录在任务并发控制缓存参数内。
59.为实现上述目的,根据本发明实施例的再一方面,提供了一种任务并发控制电子设备。
60.本发明实施例的电子设备包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现上述任一所述的任务并发控制方法。
61.为实现上述目的,根据本发明实施例的再一方面,提供了一种计算机可读介质,其上存储有计算机程序,所述程序被处理器执行时实现上述任一所述的任务并发控制方法。
62.为实现上述目的,根据本发明实施例的又一个方面,提供了一种计算程序产品。本发明实施例的一种计算程序产品,包括计算机程序,所述程序被处理器执行时实现本发明实施例提供的任务并发控制方法。
63.根据本发明所述提供的方案,上述发明中的一个实施例具有如下优点或有益效果:在高并发情况下,可以自适应较少任务请求量,从而减少业务报错量,减少客户投诉风险且能够保护下游系统,降低一段时间后,又可以通过恢复机制提升并发值,使得目前在高频调节装置上运行的交易,都能自适应找到合理的并发值。且随着业务调整和版本迭代,并发值的控制能够自行调节而无需人工干预,为企业在未来发展中掌握主动权。
64.上述的非惯用的可选方式所具有的进一步效果将在下文中结合具体实施方式加以说明。
附图说明
65.附图用于更好地理解本发明,不构成对本发明的不当限定。其中:
66.图1是根据本发明实施例的一种任务并发控制方法的主要流程示意图;
67.图2是根据本发明实施例的一具体地任务并发控制方法的流程示意图;
68.图3是根据本发明实施例的一种可选的任务并发控制方法的流程示意图;
69.图4(a)是并发设置明显过高不合理的调整结果示意图;
70.图4(b)是下游偶发性能波动的调整结果示意图;
71.图5是根据本发明实施例的一种任务并发控制装置的主要模块示意图;
72.图6是本发明实施例可以应用于其中的示例性系统架构图;
73.图7是适于用来实现本发明实施例的移动设备或服务器的计算机系统的结构示意图。
具体实施方式
74.以下结合附图对本发明的示范性实施例做出说明,其中包括本发明实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识
到,可以对这里描述的实施例做出各种改变和修改,而不会背离本发明的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
75.以下介绍下高频调度装置的整体处理流程:
76.高频调度装置将批量拆单笔任务分为三个阶段:主任务预处理阶段、子任务执行处理阶段、主任务后处理阶段。主任务预处理阶段负责将主任务拆分为单笔子任务,子任务执行处理负责执行单笔联机交易,主任务后处理负责将子任务执行状况汇总形成报表或进行其他需要的处理。
77.高频调度装置通过定时巡检器巡检各主任务、子任务的状态,负责批处理任务的分发、调度。定时巡检器包括主任务预处理巡检器:筛选出符合条件的主任务分发进入预处理阶段;子任务执行完成巡检器:统计某一主任务下各个子任务的执行情况,执行完成的主任务分发进入后处理阶段;主任务后处理巡检器:筛选出符合条件的主任务分发进入后处理阶段。
78.在高频调度装置内,有两种模式的子任务执行处理,分别为并行处理和顺序处理。并行处理通过线程池管理,将所有待执行的子任务全部丢进线程池实现并发,以快速完成子任务处理。顺序处理通过线程管理,仅开通一个线程处理子任务,只有前一条子任务完成才能进行下一条子任务,以此实现顺序执行。
79.由此可知,目前并行处理的并发量管理较为单一,仅为控制一个固定并发数,作为分布式的开放系统,局部故障是不可避免且经常发生的。业界为保护系统一般采用熔断降级方式,熔断降级指当前系统判断下游系统或数据库亦或者其他中间件,在短时间内无响应或者响应显著变差时,当有请求接入,直接拒绝请求以此来保护系统本身,不至于系统被大量请求冲垮导致服务不可用。这种策略是十分必要的,因为在分布式系统中单点故障会蔓延至整个系统导致雪崩效应。
80.基于上述问题,需要高频调度装置具有动态调整当前并发的能力,此种能力包含两个层面:
81.1、在下游系统偶发性能抖动的情况下,在一段时间内降低并发,下游系统性能恢复后并发值保持原状。
82.2、在下游系统明显不能承受当前并发大小的情况下,计算下游系统可以承受的并发值,且此值不能过小造成高频调度处理任务缓慢。
83.为此亟需设计一套适用于分布式架构的批处理框架,以支持原先主机的批处理功能,批处理框架并行计算中的高频调度装置负责核心批量拆单笔业务的拆解、分发、执行、汇总等功能,需要支撑核心企业如批量代收代付、客户信息拆分归并、入账等业务的处理能力,其中不乏一些大批量的批拆单任务,往往一个主任务有多个子任务需要处理,因而需设计一种子任务高并发处理机制,以快速执行完批处理任务。
84.参见图1,示出的是本发明实施例提供的一种任务并发控制方法的主要流程图,包括如下步骤:
85.s101:接收下游系统传输的处理异常报文,获取所述处理异常报文中的错误参数;其中,下游系统用于接收下发的子任务并处理,子任务通过拆分主任务得到;
86.s102:通过查询与所述错误参数对应的历史报错记录,确定最新错误发生次数,进而获取与所述最新错误发生次数对应的调整比率;
87.s103:将所述调整比率与当前并发值的乘积,作为调整后的并发值,以对下发给下游系统的子任务量进行并发调整控制。
88.上述实施方式中,对于步骤s101,本方案在高频调度装置现有机制的基础上,设计加入动态并发值的功能,以此快速执行批处理任务。
89.子任务外呼:高频调度装置将一个批次的主任务拆分为多个子任务,主任务表示一个批次,子任务表示一个批次内的单笔记录。以代发工资为例,企业发起一个批次需要发放公司员工本月工资,此为一个主任务,高频调度装置收到主任务后把每个员工需发的工资信息拆为一个个单笔子任务,子任务外呼即为把这些单笔子任务外呼下游系统,以通过下游系统进行发工资账务处理。
90.下游系统接收子任务外呼下发的子任务并处理,但处理过程中可能出现错误,由此返回处理结果。子任务外呼下游系统结束后,对返回结果做判断分析,用以确定是否需触发动态任务并发控制功能。
91.1、预先设置errcodelist列表,用以维护错误码清单。需要说明的是,由于高频调度装置调用的下游系统均遵从企业统一规定,因此可以筛选出一些系统异常的错误码维护在列表内,如“xfcf30100aa”,错误描述“资源并发数超过限制,流控检查不通过,拒绝当前交易请求”。此错误码代表下游系统开启熔断,此时应降低并发值,以减少业务报错并保护下游系统。
92.2、子任务外呼接收下游系统传返回的处理异常报文,处理异常报文包括错误码和交易码,首先判断错误码清单中是否存在该错误码;其中,错误码为企业与下游系统预先约定的限流错误码,其他系统异常不会报此错误码,也无需调整高频并发。
93.3、当错误码清单中存在该错误码时,表示目前高频调度装置并发过高或下游系统出现有异常。判断动态任务并发控制功能当前是否处于开启状态(设计有开关功能以随时开/关该功能),若为关闭状态,则下发开启指令,以将该功能切换为开启状态。
94.4、在动态任务并发控制功能开启后,触发动态任务并发控制功能,查询是否存在与该交易码对应的报错记录,或者在与交易码对应的报错记录中,查询是否存在与该错误码对应的报错记录(不同错误码可能对应不同的报错记录):
95.1)若不存在,则表明该下游系统第一次发生该错误,将最新错误发生次数记为1,此时没有上一次错误发生时间,此字段赋值为空。
96.获取首次调整比率,基于首次调整比例*当前并发值进行任务动态并发控制。例如,并发值调整为调整比率表的50%,即当前并发为10时,发生动态任务并发控制后调整为5。
97.2)若存在,则表明该下游系统非首次发生该错误。以第二次发生为例,最新错误发生次数为历史错误发生次数+1=2,查询调整比率表中排序第二的调整比率,假设为60%,计算当前并发值*当前调整比率=5*60%=3,即调整后并发值为3。需要说明的是,此处并发值调整,是以上一个调整后的并发值为基础进行调整,并非在原始并发值上调整。
98.表1
99.错误发生次数调整比率10.520.6
30.740.850.960.95
100.另外,每个交易码可进行并发调整的次数有限,如调整比率表中仅设置有6个调整比率,因而最多可调整6次并发值,最终能够确定一个较为合理的并发值,大于6次则不做调整。有些情况下,计算结果可能包含半个任务或其他不为一个任务的情况,此时会向上取整,最小并发值为1。
101.进一步的,对于非首次发生错误的情况,可以从任务并发控制缓存参数内,获取上一次并发调整的时间或者上一次错误发生时间,以计算当前错误发生时间与其时间差,判断超过预设时间差阈值,如10s,若超出,则表明该交易码并非频繁发生错误,继续后续流程,否则结束流程,具体参见图2所示。
102.5、之后将最新错误发生次数、交易码、错误码、本次错误发生时间、调整后的并发值等重要信息,记录在任务并发控制缓存参数内(如程序里的hftconfigcache.setmemorycache)。
103.6、使用方使用并发线程控制的逻辑模块,即checkuseablethead方法,若发现当前发生错误的交易码(或需要控制并发的交易码),存在于任务并发控制缓存参数内,则会使用缓存内计算后的并发值,而非原有默认并发值,以此实现任务并发调整控制。由于读取的是缓存,当并发降低后,该方法将几乎无延迟的感知到并发需要降低。
104.上述实施例所提供的方法,以实现高频调度装置的子任务并发值动态调节为目的,及时感知下游故障或负载情况,根据最新错误发生次数,自适应调整并发值,无需人工干预,大幅减少业务处理失败数。且整体是在原有高频调度装置的调度流程上进行的,实现与业务解耦,与高频调度装置的调度流程解耦。
105.参见图2所示,示出了本发明实施例一具体的任务并发控制方法流程示意图,包括如下步骤:
106.s201:接收下游系统传输的处理异常报文,获取所述处理异常报文中的错误参数;其中,下游系统用于接收下发的子任务并处理,子任务通过拆分主任务得到;错误参数包括交易码、错误码、本次错误发生时间;
107.s202:若错误清单中存在所述错误码,则判断任务并发控制功能当前是否处于开启状态,若不处于,则下发开启指令,以将任务并发控制功能由关闭状态切换为开启状态;
108.s203:通过查询与所述交易码、或交易码和错误码对应的历史报错记录,确定最新错误发生次数;其中,最新错误发生次数为历史错误发生次数+1;
109.s204:在所述最新错误发生次数大于1的情况下,若所述最新错误发生次数大于预设错误发生次数阈值,则停止进行任务并发调整操作;
110.s205:若不大于,则获取上一次错误发生时间,以计算上一次错误发生时间和本次错误发生时间的时间差;
111.s206:判断所述时间差是否大于第一预设时间差阈值,若判断结果为是,则获取与所述最新错误发生次数对应的调整比率,否则结束流程;
112.s207:将所述调整比率与当前并发值的乘积,作为调整后的并发值;
113.s208:在确定调整后的并发值后,将所述错误参数、最新错误发生次数和调整后的并发值,记录在任务并发控制缓存参数内;
114.s209:若在任务并发控制缓存参数内检测到所述交易码,则使用任务并发控制缓存参数内的调整后的并发值,对下发给下游系统的子任务量进行并发调整控制。
115.上述实施例所提供的方法,设置一套动态控制任务并发值的流程,并发值的波动方式和波动幅度经过不断调优,可以自适应找到合理的并发值,且随着业务调整和版本迭代,并发值的控制能够自行调节而无需人工干预。
116.参见图3,示出了根据本发明实施例的一种可选的任务并发控制方法流程示意图,包括如下步骤:
117.s301:获取任务并发控制缓存参数内的最新错误发生时间和调整后的并发值;
118.s302:计算当前时间和最新错误发生时间的时间差,在时间差达到预设时间阈值时,确定与所述交易码对应的最新并发恢复次数;
119.s303:若所述最新并发恢复次数大于预设恢复次数阈值,则停止进行任务并发恢复操作,否则获取与所述最新并发恢复次数对应的恢复比率;
120.s304:将上一并发值与恢复比率的乘积,作为调整后的并发值,以对下发给下游系统的子任务量进行并发恢复控制。
121.上述实施方式中,对于步骤s301~s304,预设一个定时器,通过定时(如5秒)遍历任务并发控制缓存参数内的交易码并发控制情况,以判断是否可以执行恢复并发值逻辑。具体地,获取任务并发控制缓存参数内的最新错误发生时间,计算当前时间和最新错误发生时间的时间差,判断该时间差是否达到第二预设时间差阈值,如30秒。当任务并发控制发生30秒后,触发执行恢复并发值逻辑。
122.根据交易码确定最新并发恢复次数,进而从并发恢复比率表中获取与该最新并发恢复次数对应的恢复比率,见表2:
123.表2
[0124][0125][0126]
若为第一次并发恢复,则恢复并发值为控制后值的1.5倍,若多次发生并发控制,则依次类推乘以对应次数的恢复比率,最多不超过6次(仅为示例,实际可调),以此实现了并发值的自动恢复,与图1所示并发下降形成了一组控制机制。同样,此时的并发调整,是以上一个调整后的并发值为基础进行调整,并非在原始并发值上调整。
[0127]
在获取到恢复的并发值后,也可以将最新并发恢复次数、调整后的并发值、恢复发生时间、交易码等重要信息,存入任务并发控制缓存参数内。
[0128]
上述实施例所提供的方法,通过定时器定期检查任务并发控制缓存参数内的交易
码,以在距离并发调整控制一定时长后,适当恢复并发值,达到并发波动效果,最终可以自适应找到合理的并发值。
[0129]
本发明实施例所提供的方法,主要适用于两种场景(并发值实际会以波状型变化):
[0130]
1、参见图4(a)所示,并发值设置不合理导致下游处理能力不能够处理,通过本方案会以波动形式最终达到并发值的平衡点;
[0131]
2、参见图4(b)所示,并发设置合理但下游偶尔性能下降时,并发值会大幅降低,之后通过本方案恢复机制实现恢复。
[0132]
以上两种场景,均可以自适应、无需人工干预的动态控制任务并发控值,在高并发情况下,可以自适应较少任务请求量,从而减少业务报错量,减少客户投诉风险且能够保护下游系统,降低一段时间后,又可以通过恢复机制提升并发值,使得目前在高频调节装置上运行的交易,都能自适应找到合理的并发值。
[0133]
参见图5,示出了本发明实施例提供的一种任务并发控制装置500的主要模块示意图,包括:
[0134]
接收模块501,用于接收下游系统传输的处理异常报文,获取所述处理异常报文中的错误参数;其中,下游系统用于接收下发的子任务并处理,子任务通过拆分主任务得到;
[0135]
获取模块502,用于通过查询与所述错误参数对应的历史报错记录,确定最新错误发生次数,进而获取与所述最新错误发生次数对应的调整比率;
[0136]
调整模块503,用于将所述调整比率与当前并发值的乘积,作为调整后的并发值,以对下发给下游系统的子任务量进行并发调整控制。
[0137]
本发明实施装置中,错误参数包括错误码,所述装置还包括开启模块,用于:
[0138]
若错误清单中存在所述错误码,则判断任务并发控制功能当前是否处于开启状态,若不处于,则下发开启指令,以将任务并发控制功能由关闭状态切换为开启状态。
[0139]
本发明实施装置中,错误参数还包括交易码,所述获取模块502,用于:
[0140]
查询与所述交易码对应的历史报错记录;或
[0141]
在与所述交易码对应的历史报错记录中,查询与所述错误码对应的历史报错记录。
[0142]
本发明实施装置中,最新错误发生次数为历史错误发生次数+1,错误参数还包括本次错误发生时间,所述装置还包括第一判断模块,用于:
[0143]
在所述最新错误发生次数大于1的情况下,获取上一次错误发生时间,以计算上一次错误发生时间和本次错误发生时间的时间差;
[0144]
判断所述时间差是否大于第一预设时间差阈值,若判断结果为是,则获取与所述最新错误发生次数对应的调整比率,否则结束流程。
[0145]
本发明实施装置中,所述上一次错误发生时间存储于任务并发控制缓存参数内,所述装置还包括记录模块,用于:
[0146]
在确定调整后的并发值后,将所述错误参数、最新错误发生次数和调整后的并发值,记录在任务并发控制缓存参数内。
[0147]
本发明实施装置中,所述调整模块503,用于:
[0148]
若在任务并发控制缓存参数内检测到所述交易码,则使用任务并发控制缓存参数
内的调整后的并发值,对下发给下游系统的子任务量进行并发调整控制。
[0149]
本发明实施装置还包括恢复模块,用于:
[0150]
获取任务并发控制缓存参数内的最新错误发生时间和调整后的并发值;
[0151]
计算当前时间和最新错误发生时间的时间差,在时间差达到第二预设时间差阈值时,确定与所述交易码对应的最新并发恢复次数,以获取与所述最新并发恢复次数对应的恢复比率;
[0152]
将上一并发值与恢复比率的乘积,作为调整后的并发值,以对下发给下游系统的子任务量进行并发恢复控制。
[0153]
本发明实施装置还包括第二判断模块,用于:
[0154]
若所述最新错误发生次数大于预设错误发生次数阈值,则停止进行任务并发调整操作;以及
[0155]
若所述最新并发恢复次数大于预设恢复次数阈值,则停止进行任务并发恢复操作。
[0156]
本发明实施装置中,所述获取模块502,用于:获取调整比率表中,排列位置为所述最新错误发生次数的调整比率;其中,调整比率表中的调整比率按照从小到大的顺序排列;
[0157]
所述恢复模块,用于:获取恢复比率表中,排列位置为所述最新并发恢复次数的恢复比率;其中,恢复比率表中的恢复比率按照从大到小的顺序排列。
[0158]
本发明实施装置中,所述记录模块,还用于:在确定调整后的并发值后,将所述最新并发恢复次数、交易码和调整后的并发值,记录在任务并发控制缓存参数内。
[0159]
另外,在本发明实施例中所述装置的具体实施内容,在上面所述方法中已经详细说明了,故在此重复内容不再说明。
[0160]
图6示出了可以应用本发明实施例的示例性系统架构600,包括终端设备601、602、603,网络604和服务器605(仅仅是示例)。
[0161]
终端设备601、602、603可以是具有显示屏并且支持网页浏览的各种电子设备,安装有各种通讯客户端应用,用户可以使用终端设备601、602、603通过网络604与服务器605交互,以接收或发送消息等。
[0162]
网络604用以在终端设备601、602、603和服务器605之间提供通信链路的介质。网络604可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
[0163]
服务器605可以是提供各种服务的服务器,需要说明的是,本发明实施例所提供的方法一般由服务器605执行,相应地,装置一般设置于服务器605中。
[0164]
应该理解,图6中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
[0165]
下面参考图7,其示出了适于用来实现本发明实施例的终端设备的计算机系统700的结构示意图。图7示出的终端设备仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
[0166]
如图7所示,计算机系统700包括中央处理单元(cpu)701,其可以根据存储在只读存储器(rom)702中的程序或者从存储部分708加载到随机访问存储器(ram)703中的程序而执行各种适当的动作和处理。在ram 703中,还存储有系统700操作所需的各种程序和数据。cpu 701、rom 702以及ram 703通过总线704彼此相连。输入/输出(i/o)接口705也连接至总
线704。
[0167]
以下部件连接至i/o接口705:包括键盘、鼠标等的输入部分706;包括诸如阴极射线管(crt)、液晶显示器(lcd)等以及扬声器等的输出部分707;包括硬盘等的存储部分708;以及包括诸如lan卡、调制解调器等的网络接口卡的通信部分709。通信部分709经由诸如因特网的网络执行通信处理。驱动器710也根据需要连接至i/o接口705。可拆卸介质711,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器710上,以便于从其上读出的计算机程序根据需要被安装入存储部分708。
[0168]
特别地,根据本发明公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本发明公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分709从网络上被下载和安装,和/或从可拆卸介质711被安装。在该计算机程序被中央处理单元(cpu)701执行时,执行本发明的系统中限定的上述功能。
[0169]
需要说明的是,本发明所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑磁盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本发明中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本发明中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、rf等等,或者上述的任意合适的组合。
[0170]
附图中的流程图和框图,图示了按照本发明各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
[0171]
描述于本发明实施例中所涉及到的模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的模块也可以设置在处理器中,例如,可以描述为:一种处理器包
括接收模块、获取模块、调整模块。其中,这些模块的名称在某种情况下并不构成对该模块本身的限定,例如,调整模块还可以被描述为“调整控制模块”。
[0172]
作为另一方面,本发明还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的设备中所包含的;也可以是单独存在,而未装配入该设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该设备执行时,使得该设备包括:
[0173]
接收下游系统传输的处理异常报文,获取所述处理异常报文中的错误参数;其中,下游系统用于接收下发的子任务并处理,子任务通过拆分主任务得到;
[0174]
通过查询与所述错误参数对应的历史报错记录,确定最新错误发生次数,进而获取与所述最新错误发生次数对应的调整比率;
[0175]
将所述调整比率与当前并发值的乘积,作为调整后的并发值,以对下发给下游系统的子任务量进行并发调整控制。
[0176]
本发明的计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现本发明实施例中的任务并发控制方法。
[0177]
根据本发明实施例的技术方案,在高并发情况下,可以自适应较少任务请求量,从而减少业务报错量,减少客户投诉风险且能够保护下游系统,降低一段时间后,又可以通过恢复机制提升并发值,使得目前在高频调节装置上运行的交易,都能自适应找到合理的并发值。且随着业务调整和版本迭代,并发值的控制能够自行调节而无需人工干预,为企业在未来发展中掌握主动权。
[0178]
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1