一种基于自适应线程池的业务处理方法及装置与流程

未命名 08-07 阅读:63 评论:0


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.进一步地,所述按照所述调整数量调整所述线程池中的线程,包括:
26.若所述调整数量为增加的数量,确定各流程任务对应的线程池中的线程数量总和是否超过预设最大值;
27.若未超过所述预设最大值,按照所述增加的数量增加所述线程池中的线程;
28.否则,在通过扩展线程节点提高所述预设最大值后,按照所述增加的数量增加所述线程池中的线程。
29.进一步地,所述按照所述调整数量调整所述线程池中的线程,包括:
30.若所述调整数量为减少的数量,直接按照所述减少的数量减少所述线程池中的线程。
31.第二方面,本技术提供一种基于自适应线程池的业务处理装置,包括:
32.业务流程建立单元,用于根据业务类型建立对应的业务流程;其中,所述业务流程由多个流程任务串联组成;各流程任务由对应的线程池中的线程执行;
33.线程数量调整单元,用于利用预先构建的自适应动态调整模型在预设时刻调整各流程任务对应的线程池中的线程数量;
34.流程任务执行单元,用于根据所述流程任务中上游流程任务的执行状态及调整后的线程数量执行所述上游流程任务对应的下游流程任务;其中,所述上游流程任务与所述下游流程任务为所述流程任务中相邻的两流程任务。
35.进一步地,所述业务流程建立单元,包括:
36.业务流程确定模块,用于根据所述业务类型确定对应的基础业务流程与待选取的附加业务流程;
37.业务流程组合模块,用于将选取的附加业务流程与所述基础业务流程组合,得到所述对应的业务流程。
38.进一步地,所述流程任务执行单元,包括:
39.空闲线程判断模块,用于若所述上游流程任务的执行状态为成功,判断所述下游流程任务对应的线程池中是否有空闲的线程;
40.空闲线程调用模块,用于当有时,调用所述空闲的线程执行所述下游流程任务;
41.线程等待模块,用于当无时,循环等待,直至确定所述下游流程任务对应的线程池中有空闲的线程后,调用所述空闲的线程执行所述下游流程任务。
42.进一步地,基于自适应线程池的业务处理装置,还包括:
43.任务计时单元,用于启动流程任务计时,以确定所述下游流程任务的执行时长。
44.进一步地,基于自适应线程池的业务处理装置,还包括:
45.任务优先级确定单元,用于根据各流程任务在预设时段内的执行时长均值确定各流程任务的优先级;
46.自适应模型建立单元,用于根据各流程任务对应的线程池中的线程数量初值、所述执行时长均值及所述优先级确定所述自适应动态调整模型。
47.进一步地,所述线程数量调整单元,包括:
48.调整数量确定模块,用于在预设时刻利用所述自适应动态调整模型确定所述线程池中线程的调整数量;
49.线程数量调整模块,用于按照所述调整数量调整所述线程池中的线程。
50.进一步地,所述线程数量调整模块,包括:
51.阈值达到判断模块,用于若所述调整数量为增加的数量,确定各流程任务对应的线程池中的线程数量总和是否超过预设最大值;
52.线程直接增加模块,用于若未超过所述预设最大值,按照所述增加的数量增加所述线程池中的线程;
53.线程扩展增加模块,用于在通过扩展线程节点提高所述预设最大值后,按照所述增加的数量增加所述线程池中的线程。
54.进一步地,所述基于自适应线程池的业务处理装置,包括:
55.线程减少模块,用于若所述调整数量为减少的数量,直接按照所述减少的数量减少所述线程池中的线程。
56.第三方面,本技术提供一种电子设备包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现所述基于自适应线程池的业务处理方法的步骤。
57.第四方面,本技术提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现所述基于自适应线程池的业务处理方法的步骤。
58.第五方面,本技术提供一种计算机程序产品,包括计算机程序/指令,该计算机程序/指令被处理器执行时实现所述基于自适应线程池的业务处理方法的步骤。
59.针对现有技术中的问题,本技术提供的基于自适应线程池的业务处理方法及装置,能够对线程池中的线程数量进行自适应地调整,即基于自适应线程池进行业务处理,提升了线程资源的利用率,提高了业务处理的整体效率及并发量,从而使得单个业务流程的执行时间由原来的分钟级提高到秒级,对原有的业务系统具有良好的兼容性,对业务开展保持无感,提高了金融科技的服务质量。
附图说明
60.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
61.图1为本技术实施例中基于自适应线程池的业务处理方法的流程图;
62.图2为本技术实施例中建立对应的业务流程的流程图;
63.图3为本技术实施例中执行下游流程任务的流程图;
64.图4为本技术实施例中构建自适应动态调整模型的流程图;
65.图5为本技术实施例中调整线程数量的流程图之一;
66.图6为本技术实施例中调整线程数量的流程图之二;
67.图7为本技术实施例中基于自适应线程池的业务处理装置的结构图之一;
68.图8为本技术实施例中业务流程建立单元的结构图;
69.图9为本技术实施例中流程任务执行单元的结构图;
70.图10为本技术实施例中基于自适应线程池的业务处理装置的结构图之二;
71.图11为本技术实施例中线程数量调整单元的结构图;
72.图12为本技术实施例中线程数量调整模块的结构图;
73.图13为本技术实施例中的电子设备的结构示意图;
74.图14为本技术实施例中的整体流程图。
具体实施方式
75.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
76.需要说明的是,本技术提供的基于自适应线程池的业务处理方法及装置,可用于金融领域,也可用于除金融领域之外的任意领域,本技术提供的基于自适应线程池的业务处理方法及装置的应用领域不做限定。
77.本技术技术方案中对数据的获取、存储、使用及处理等均符合法律法规的相关规定。
78.一实施例中,参见图1,为了能够对线程池中的线程数量进行自适应地调整,即基于自适应线程池进行业务处理,提升了线程资源的利用率,提高了业务处理的整体效率,本技术提供一种基于自适应线程池的业务处理方法,包括:
79.s101:根据业务类型建立对应的业务流程;其中,所述业务流程由多个流程任务串联组成;各流程任务由对应的线程池中的线程执行;
80.s102:利用预先构建的自适应动态调整模型在预设时刻调整各流程任务对应的线程池中的线程数量;
81.s103:根据所述流程任务中上游流程任务的执行状态及调整后的线程数量执行所述上游流程任务对应的下游流程任务;其中,所述上游流程任务与所述下游流程任务为所述流程任务中相邻的两流程任务。
82.可以理解的是,本技术实施例提供一种基于自适应线程池的业务处理方法,其中包括一种基于自适应学习的线程池动态管理方法。其会对单个流程任务的执行时间进行实时监控,根据执行时间的长短,结合自适应动态调整模型计算出的线程调整数量,动态调整所属任务的线程池大小(也就是线程池中包括的线程数量),从而较好地解决业务处理效率瓶颈,提高业务处理的并发量,提升智能运维的能力。
83.参见图14,该方法在不改变现有银行业务处理流程的基础上,通过计算流程任务
执行的时长,可以动态调整该流程任务对应线程池的大小,有效缓解业务处理过程中因某个流程任务执行效率缓慢,导致整个业务等待、滞后的现象,尤其针对批量类型的业务,可有效提高业务并发量。
84.具体地,每种业务类型(例如代发业务)通常对应有不同的业务流程,因此,首先需要根据业务类型建立对应的业务流程;业务流程由多个流程任务(例如划款流程任务、退款流程任务等)串联组成;各流程任务都有其对应的线程池,各流程任务由对应的线程池中的线程执行。
85.一般地,多个流程任务中,先执行的称为上游流程任务,后执行的称为上游流程任务。本技术实施例中,上游流程任务(也成前一流程任务)与下游流程任务(也成后一流程任务)为流程任务中相邻的两流程任务。
86.为了对线程池的大小(也就是线程池内的线程数量)进行自适应动态调整,本技术实施例将全天划分为若干时段(例如将23:00至次日7:00作为一个时段)。一般地,在每个时段的末尾(例如次日7:00)会利用预先构建的自适应动态调整模型调整各流程任务对应的线程池中的线程数量。对于该实施例,每个时段的末尾就是预设时刻。因此,可理解为利用预先构建的自适应动态调整模型在预设时刻调整各流程任务对应的线程池中的线程数量。最后,在线程数量被调整后,根据流程任务中上游流程任务的执行状态及调整后的线程数量执行上游流程任务对应的下游流程任务。换而言之,该实施例可以根据不同时段所需线程数量的多少去调整各流程任务对应的线程池中的线程数量,让合适的线程数量去执行流程任务,从而既不造成线程资源紧张,也不造成线程资源浪费。
87.从上述描述可知,本技术提供的基于自适应线程池的业务处理方法,能够对线程池中的线程数量进行自适应地调整,即基于自适应线程池进行业务处理,提升了线程资源的利用率,提高了业务处理的整体效率及并发量,从而使得单个业务流程的执行时间由原来的分钟级提高到秒级,对原有的业务系统具有良好的兼容性,对业务开展保持无感,提高了金融科技的服务质量。
88.下面对步骤s101至步骤s103分别进行详细说明。
89.步骤s101:根据业务类型建立对应的业务流程;其中,所述业务流程由多个流程任务串联组成;各流程任务由对应的线程池中的线程执行。
90.图2为本技术实施例实现基于自适应线程池的业务处理方法的一具体实施例。
91.一实施例中,参见图2,所述根据业务类型建立对应的业务流程,包括:
92.s201:根据所述业务类型确定对应的基础业务流程与待选取的附加业务流程;
93.s202:将选取的附加业务流程与所述基础业务流程组合,得到所述对应的业务流程。
94.可以理解的是,每个流程任务按分工不同,划分成不同类型,任务编号记为i。流程任务依据状态机进行流转,每个流程任务分配一个线程池,不同的业务类型可由一个或多个流程任务组成。
95.业务流转可按以下步骤执行:
96.当业务流转进来,会依据不同的业务类型(业务类型往往由业务人员定义几类基础流程任务与附加流程任务),组合不同的流程任务。
97.每个流程任务定义四个状态机,分别是初始(b)、抢占(o)、成功(s)及失败(e)。不
同流程任务通过状态机实现串接,业务流转时会依据状态机,依次进入流程任务中。
98.以代发业务(一种业务类型)为例,其包含基础流程任务:入库、划款、代发、退款、出库,以及附加流程任务回单打印、通知第三方等,按状态机将流程任务定义如下:
99.入库:{b:f;o:fa;s:0;e:e},任务编号1;
100.划款:{b:0;o:a;s:1;e:0e},任务编号2;
101.代发:{b:1;o:1a;s:4;e:1e},任务编号3;
102.退款:{b:4;o:4a;s:5;e:4e},任务编号4;
103.出库:{b:5;o:5a;s:[6:7];e:5e},任务编号5;
[0104]
回单打印:{b:6;o:6a;s:9;e:6e},任务编号6;
[0105]
通知第三方:{b:7;o:7a;s:9;e:7e},任务编号7。
[0106]
例如,含“回单打印”的代发业务由入库、划款、代发、退款、出库、回单打印等流程任务串行组成。含“通知第三方”的代发业务由入库、划款、代发、退款、出库、通知第三方等流程任务串行组成。
[0107]
后一流程任务的初始态即为前一流程任务的成功态。在稍复杂的情形中,出库流程任务为分叉流程任务,其对应的后一流程任务可依据业务类型配置不同的处理方向,到达出库流程任务后可置为不同的成功态。
[0108]
从上述描述可知,本技术提供的基于自适应线程池的业务处理方法,能够根据业务类型建立对应的业务流程。
[0109]
步骤s103:根据所述流程任务中上游流程任务的执行状态及调整后的线程数量执行所述上游流程任务对应的下游流程任务;其中,所述上游流程任务与所述下游流程任务为所述流程任务中相邻的两流程任务。
[0110]
图3为本技术实施例实现基于自适应线程池的业务处理方法的一具体实施例。
[0111]
一实施例中,参见图3,所述根据所述流程任务中上游流程任务的执行状态及调整后的线程数量执行所述上游流程任务对应的下游流程任务,包括:
[0112]
s301:若所述上游流程任务的执行状态为成功,判断所述下游流程任务对应的线程池中是否有空闲的线程;
[0113]
s302:若有,调用所述空闲的线程执行所述下游流程任务;
[0114]
s303:若无,循环等待,直至确定所述下游流程任务对应的线程池中有空闲的线程后,调用所述空闲的线程执行所述下游流程任务。
[0115]
一实施例中,在调用所述空闲的线程执行所述下游流程任务之后,还包括:
[0116]
启动流程任务计时,以确定所述下游流程任务的执行时长。
[0117]
可以理解的是,参见图14,每个流程任务会依次判断所在线程池的运行状态、空闲程度以及整个系统线程的阈值,以此来判断是循环等待,还是流转。一旦进入流转,会判断当前时间点在哪个业务时段tj内,并记录进入时间tb,同时创建新的线程,该线程结束后记录时间te,计算流程任务执行时长t=t
e-tb。此处计时的目前在于为后续的自适应动态调整模型构建提供数据依据。
[0118]
具体的,参见图14,若上游流程任务的执行状态为成功,则需要判断下游流程任务对应的线程池中是否有空闲的线程;若有空闲的线程,则可以直接调用空闲的线程执行该下游流程任务;若没有空闲的线程,则进入循环等待,直至确定下游流程任务对应的线程池
中有空闲的线程后,调用空闲的线程执行所述下游流程任务。
[0119]
需要说明的是,优选地,在进入循环等待之前,还可以判断一下各流程任务对应的线程池中的线程数量总和是否超过预设最大值(max),若是,则进入循环等待,若否,后续可以根据自适应动态调整模型的计算结果去增加线程,具体详见下文阐述。
[0120]
从上述描述可知,本技术提供的基于自适应线程池的业务处理方法,能够根据所述流程任务中上游流程任务的执行状态及调整后的线程数量执行所述上游流程任务对应的下游流程任务。
[0121]
步骤s102:利用预先构建的自适应动态调整模型在预设时刻调整各流程任务对应的线程池中的线程数量。
[0122]
图4为本技术实施例实现基于自适应线程池的业务处理方法的一具体实施例。
[0123]
一实施例中,参见图4,构建自适应动态调整模型的步骤,包括:
[0124]
s401:根据各流程任务在预设时段内的执行时长均值确定各流程任务的优先级;
[0125]
s402:根据各流程任务对应的线程池中的线程数量初值、所述执行时长均值及所述优先级确定所述自适应动态调整模型。
[0126]
可以理解的是,根据不同业务类型的流程任务i,建立自适应动态调整模型(简称模型)。依据业务低峰期流程任务的平均耗时流程任务优先级p
ij
、业务高低峰时段tj以及当前流程一定时间tb内任务执行时长t的平均时长等指标,构建以下公式(作为模型)。其可在不同业务时间段动态调定线程池的大小。
[0127][0128]
其中
[0129][0130][0131]
其中,符号表示向下取整(下同),m
ij
表示任务类型i在业务时段tj内需要调整到的线程池阈值,ni表示流程任务i默认的线程池大小,p
ij
公式中的n表示该业务流程中包括n个流程任务,k表示第k个流程任务。
[0132]
以基础代发业务为例,在t1时间段(凌晨时间段),该业务处在低峰,则m
ij
公式变成各流程任务线程池较为空闲,线程池大小为ni,则在t1时间段,流程任务i
的优先级为(假设基础代发业务一共5个流程任务)。
[0133]
从上述描述可知,本技术提供的基于自适应线程池的业务处理方法,能够构建自适应动态调整模型。
[0134]
一实施例中,参见图5,所述利用预先构建的自适应动态调整模型在预设时刻调整各流程任务对应的线程池中的线程数量,包括:
[0135]
s501:在预设时刻利用所述自适应动态调整模型确定所述线程池中线程的调整数量;
[0136]
s502:按照所述调整数量调整所述线程池中的线程。
[0137]
可以理解的是,以t2时段为例,首先计算刚进入该时间段一段时间tb内(例如前30分钟内,具体不限),流程任务i的平均耗时则该流程任务的线程池大小调整为t3至t5也以t1为基础,按t2模式计算线程池大小,以此来动态调整。
[0138]
从上述描述可知,本技术提供的基于自适应线程池的业务处理方法,能够利用预先构建的自适应动态调整模型在预设时刻调整各流程任务对应的线程池中的线程数量。
[0139]
一实施例中,参见图6,所述按照所述调整数量调整所述线程池中的线程,包括:
[0140]
s601:若所述调整数量为增加的数量,确定各流程任务对应的线程池中的线程数量总和是否超过预设最大值;
[0141]
s602:若未超过所述预设最大值,按照所述增加的数量增加所述线程池中的线程;
[0142]
s603:否则,在通过扩展线程节点提高所述预设最大值后,按照所述增加的数量增加所述线程池中的线程。
[0143]
可以理解的是,参见图14,若自适应动态调整模型已经计算得到线程池中线程的调整数量,并且这个数量是向上增加的数量,则说明系统整体的线程池大小需要增加。由于图14中显示已经设置了线程数量的max阈值(也称预设最大值),无法直接增加线程数量,因此,需要先扩展系统整体的线程池大小,也就是说,调高max阈值。具体方法是,将整个系统paas(平台即服务)化部署,一旦系统触发线程池阈值报警,则通过扩展paas节点来提高线程池阈值。
[0144]
在调高max阈值后,可按照模型计算出的线程增加的数量增加线程池中的线程。并且基于前述实施例可知,这个增加的动作是可以精细化到每个流程任务i的。
[0145]
从上述描述可知,本技术提供的基于自适应线程池的业务处理方法,能够按照所述调整数量调整所述线程池中的线程。
[0146]
一实施例中,所述按照所述调整数量调整所述线程池中的线程,包括:
[0147]
若所述调整数量为减少的数量,直接按照所述减少的数量减少所述线程池中的线程。
[0148]
可以理解的是,当需要减少线程数量时,可以直接减少,无需先检查max阈值。
[0149]
综上所述,当创建的新线程完成任务流转、计时,依据调定的线程池大小,判定是否需要重置该流程任务所在线程池大小(相当于调整线程池的大小),同时将该业务当前的
流程任务置为成功,即为后一流程任务的初始态,继续业务的流转,最后完成线程回收。
[0150]
从上述描述可知,本技术提供的基于自适应线程池的业务处理方法,能够按照所述调整数量调整所述线程池中的线程。
[0151]
基于同一发明构思,本技术实施例还提供了一种基于自适应线程池的业务处理装置,可以用于实现上述实施例所描述的方法,如下面的实施例所述。由于基于自适应线程池的业务处理装置解决问题的原理与基于自适应线程池的业务处理方法相似,因此基于自适应线程池的业务处理装置的实施可以参见基于软件性能基准确定方法的实施,重复之处不再赘述。以下所使用的,术语“单元”或者“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的系统较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
[0152]
一实施例中,参见图7,为了能够对线程池中的线程数量进行自适应地调整,即基于自适应线程池进行业务处理,提升了线程资源的利用率,提高了业务处理的整体效率,本技术提供一种基于自适应线程池的业务处理装置,包括:业务流程建立单元701、线程数量调整单元702及流程任务执行单元703。
[0153]
业务流程建立单元701,用于根据业务类型建立对应的业务流程;其中,所述业务流程由多个流程任务串联组成;各流程任务由对应的线程池中的线程执行;
[0154]
线程数量调整单元702,用于利用预先构建的自适应动态调整模型在预设时刻调整各流程任务对应的线程池中的线程数量;
[0155]
流程任务执行单元703,用于根据所述流程任务中上游流程任务的执行状态及调整后的线程数量执行所述上游流程任务对应的下游流程任务;其中,所述上游流程任务与所述下游流程任务为所述流程任务中相邻的两流程任务。
[0156]
一实施例中,参见图8,所述业务流程建立单元701,包括:业务流程确定模块801及业务流程组合模块802。
[0157]
业务流程确定模块801,用于根据所述业务类型确定对应的基础业务流程与待选取的附加业务流程;
[0158]
业务流程组合模块802,用于将选取的附加业务流程与所述基础业务流程组合,得到所述对应的业务流程。
[0159]
一实施例中,参见图9,所述流程任务执行单元703,包括:空闲线程判断模块901、空闲线程调用模块902及线程等待模块903。
[0160]
空闲线程判断模块901,用于若所述上游流程任务的执行状态为成功,判断所述下游流程任务对应的线程池中是否有空闲的线程;
[0161]
空闲线程调用模块902,用于当有时,调用所述空闲的线程执行所述下游流程任务;
[0162]
线程等待模块903,用于当无时,循环等待,直至确定所述下游流程任务对应的线程池中有空闲的线程后,调用所述空闲的线程执行所述下游流程任务。
[0163]
一实施例中,基于自适应线程池的业务处理装置,还包括:
[0164]
任务计时单元,用于启动流程任务计时,以确定所述下游流程任务的执行时长。
[0165]
一实施例中,参见图10,基于自适应线程池的业务处理装置,还包括:任务优先级确定单元1001及自适应模型建立单元1002。
[0166]
任务优先级确定单元1001,用于根据各流程任务在预设时段内的执行时长均值确定各流程任务的优先级;
[0167]
自适应模型建立单元1002,用于根据各流程任务对应的线程池中的线程数量初值、所述执行时长均值及所述优先级确定所述自适应动态调整模型。
[0168]
一实施例中,参见图11,所述线程数量调整单元702,包括:
[0169]
调整数量确定模块1101,用于在预设时刻利用所述自适应动态调整模型确定所述线程池中线程的调整数量;
[0170]
线程数量调整模块1102,用于按照所述调整数量调整所述线程池中的线程。
[0171]
一实施例中,参见图12,所述线程数量调整模块1102,包括:阈值达到判断模块1201、线程直接增加模块1202及线程扩展增加模块1203。
[0172]
阈值达到判断模块1201,用于若所述调整数量为增加的数量,确定各流程任务对应的线程池中的线程数量总和是否超过预设最大值;
[0173]
线程直接增加模块1202,用于若未超过所述预设最大值,按照所述增加的数量增加所述线程池中的线程;
[0174]
线程扩展增加模块1203,用于在通过扩展线程节点提高所述预设最大值后,按照所述增加的数量增加所述线程池中的线程。
[0175]
一实施例中,所述基于自适应线程池的业务处理装置,包括:
[0176]
线程减少模块,用于若所述调整数量为减少的数量,直接按照所述减少的数量减少所述线程池中的线程。
[0177]
从硬件层面来说,为了能够对线程池中的线程数量进行自适应地调整,即基于自适应线程池进行业务处理,提升了线程资源的利用率,提高了业务处理的整体效率,本技术提供一种用于实现所述基于自适应线程池的业务处理方法中的全部或部分内容的电子设备的实施例,所述电子设备具体包含有如下内容:
[0178]
处理器(processor)、存储器(memory)、通讯接口(communications interface)和总线;其中,所述处理器、存储器、通讯接口通过所述总线完成相互间的通讯;所述通讯接口用于实现所述基于自适应线程池的业务处理装置与核心业务系统、用户终端以及相关数据库等相关设备之间的信息传输;该逻辑控制器可以是台式计算机、平板电脑及移动终端等,本实施例不限于此。在本实施例中,该逻辑控制器可以参照实施例中的基于自适应线程池的业务处理方法的实施例,以及基于自适应线程池的业务处理装置的实施例进行实施,其内容被合并于此,重复之处不再赘述。
[0179]
可以理解的是,所述用户终端可以包括智能手机、平板电子设备、网络机顶盒、便携式计算机、台式电脑、个人数字助理(pda)、车载设备、智能穿戴设备等。其中,所述智能穿戴设备可以包括智能眼镜、智能手表、智能手环等。
[0180]
在实际应用中,基于自适应线程池的业务处理方法的部分可以在如上述内容所述的电子设备侧执行,也可以所有的操作都在所述客户端设备中完成。具体可以根据所述客户端设备的处理能力,以及用户使用场景的限制等进行选择。本技术对此不作限定。若所有的操作都在所述客户端设备中完成,所述客户端设备还可以包括处理器。
[0181]
上述的客户端设备可以具有通讯模块(即通讯单元),可以与远程的服务器进行通讯连接,实现与所述服务器的数据传输。所述服务器可以包括任务调度中心一侧的服务器,
其他的实施场景中也可以包括中间平台的服务器,例如与任务调度中心服务器有通讯链接的第三方服务器平台的服务器。所述的服务器可以包括单台计算机设备,也可以包括多个服务器组成的服务器集群,或者分布式装置的服务器结构。
[0182]
图13为本技术实施例的电子设备9600的系统构成的示意框图。如图13所示,该电子设备9600可以包括中央处理器9100和存储器9140;存储器9140耦合到中央处理器9100。值得注意的是,该图13是示例性的;还可以使用其他类型的结构,来补充或代替该结构,以实现电信功能或其他功能。
[0183]
一实施例中,基于自适应线程池的业务处理方法功能可以被集成到中央处理器9100中。其中,中央处理器9100可以被配置为进行如下控制:
[0184]
s101:根据业务类型建立对应的业务流程;其中,所述业务流程由多个流程任务串联组成;各流程任务由对应的线程池中的线程执行;
[0185]
s102:利用预先构建的自适应动态调整模型在预设时刻调整各流程任务对应的线程池中的线程数量;
[0186]
s103:根据所述流程任务中上游流程任务的执行状态及调整后的线程数量执行所述上游流程任务对应的下游流程任务;其中,所述上游流程任务与所述下游流程任务为所述流程任务中相邻的两流程任务。
[0187]
从上述描述可知,本技术提供的基于自适应线程池的业务处理方法及装置,能够对线程池中的线程数量进行自适应地调整,即基于自适应线程池进行业务处理,提升了线程资源的利用率,提高了业务处理的整体效率及并发量,从而使得单个业务流程的执行时间由原来的分钟级提高到秒级,对原有的业务系统具有良好的兼容性,对业务开展保持无感,提高了金融科技的服务质量。
[0188]
在另一个实施方式中,基于自适应线程池的业务处理装置可以与中央处理器9100分开配置,例如可以将数据复合传输装置基于自适应线程池的业务处理装置配置为与中央处理器9100连接的芯片,通过中央处理器的控制来实现基于自适应线程池的业务处理方法的功能。
[0189]
如图13所示,该电子设备9600还可以包括:通讯模块9110、输入单元9120、音频处理器9130、显示器9160、电源9170。值得注意的是,电子设备9600也并不是必须要包括图13中所示的所有部件;此外,电子设备9600还可以包括图13中没有示出的部件,可以参考现有技术。
[0190]
如图13所示,中央处理器9100有时也称为控制器或操作控件,可以包括微处理器或其他处理器装置和/或逻辑装置,该中央处理器9100接收输入并控制电子设备9600的各个部件的操作。
[0191]
其中,存储器9140,例如可以是缓存器、闪存、硬驱、可移动介质、易失性存储器、非易失性存储器或其它合适装置中的一种或更多种。可储存上述与失败有关的信息,此外还可存储执行有关信息的程序。并且中央处理器9100可执行该存储器9140存储的该程序,以实现信息存储或处理等。
[0192]
输入单元9120向中央处理器9100提供输入。该输入单元9120例如为按键或触摸输入装置。电源9170用于向电子设备9600提供电力。显示器9160用于进行图像和文字等显示对象的显示。该显示器例如可为lcd显示器,但并不限于此。
[0193]
该存储器9140可以是固态存储器,例如,只读存储器(rom)、随机存取存储器(ram)、sim卡等。还可以是这样的存储器,其即使在断电时也保存信息,可被选择性地擦除且设有更多数据,该存储器的示例有时被称为eprom等。存储器9140还可以是某种其它类型的装置。存储器9140包括缓冲存储器9141(有时被称为缓冲器)。存储器9140可以包括应用/功能存储部9142,该应用/功能存储部9142用于存储应用程序和功能程序或用于通过中央处理器9100执行电子设备9600的操作的流程。
[0194]
存储器9140还可以包括数据存储部9143,该数据存储部9143用于存储数据,例如联系人、数字数据、图片、声音和/或任何其他由电子设备使用的数据。存储器9140的驱动程序存储部9144可以包括电子设备的用于通讯功能和/或用于执行电子设备的其他功能(如消息传送应用、通讯录应用等)的各种驱动程序。
[0195]
通讯模块9110即为经由天线9111发送和接收信号的发送机/接收机9110。通讯模块(发送机/接收机)9110耦合到中央处理器9100,以提供输入信号和接收输出信号,这可以和常规移动通讯终端的情况相同。
[0196]
基于不同的通讯技术,在同一电子设备中,可以设置有多个通讯模块9110,如蜂窝网络模块、蓝牙模块和/或无线局域网模块等。通讯模块(发送机/接收机)9110还经由音频处理器9130耦合到扬声器9131和麦克风9132,以经由扬声器9131提供音频输出,并接收来自麦克风9132的音频输入,从而实现通常的电信功能。音频处理器9130可以包括任何合适的缓冲器、解码器、放大器等。另外,音频处理器9130还耦合到中央处理器9100,从而使得可以通过麦克风9132能够在本机上录音,且使得可以通过扬声器9131来播放本机上存储的声音。
[0197]
本技术的实施例还提供能够实现上述实施例中的执行主体为服务器或客户端的基于自适应线程池的业务处理方法中全部步骤的一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述实施例中的执行主体为服务器或客户端的基于自适应线程池的业务处理方法的全部步骤,例如,所述处理器执行所述计算机程序时实现下述步骤:
[0198]
s101:根据业务类型建立对应的业务流程;其中,所述业务流程由多个流程任务串联组成;各流程任务由对应的线程池中的线程执行;
[0199]
s102:利用预先构建的自适应动态调整模型在预设时刻调整各流程任务对应的线程池中的线程数量;
[0200]
s103:根据所述流程任务中上游流程任务的执行状态及调整后的线程数量执行所述上游流程任务对应的下游流程任务;其中,所述上游流程任务与所述下游流程任务为所述流程任务中相邻的两流程任务。
[0201]
从上述描述可知,本技术提供的基于自适应线程池的业务处理方法及装置,能够对线程池中的线程数量进行自适应地调整,即基于自适应线程池进行业务处理,提升了线程资源的利用率,提高了业务处理的整体效率及并发量,从而使得单个业务流程的执行时间由原来的分钟级提高到秒级,对原有的业务系统具有良好的兼容性,对业务开展保持无感,提高了金融科技的服务质量。
[0202]
本领域内的技术人员应明白,本发明的实施例可提供为方法、装置、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实
施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
[0203]
本发明是参照根据本发明实施例的方法、设备(装置)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0204]
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0205]
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0206]
本发明中应用了具体实施例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

技术特征:
1.一种基于自适应线程池的业务处理方法,其特征在于,包括:根据业务类型建立对应的业务流程;其中,所述业务流程由多个流程任务串联组成;各流程任务由对应的线程池中的线程执行;利用预先构建的自适应动态调整模型在预设时刻调整各流程任务对应的线程池中的线程数量;根据所述流程任务中上游流程任务的执行状态及调整后的线程数量执行所述上游流程任务对应的下游流程任务;其中,所述上游流程任务与所述下游流程任务为所述流程任务中相邻的两流程任务。2.根据权利要求1所述的基于自适应线程池的业务处理方法,其特征在于,所述根据业务类型建立对应的业务流程,包括:根据所述业务类型确定对应的基础业务流程与待选取的附加业务流程;将选取的附加业务流程与所述基础业务流程组合,得到所述对应的业务流程。3.根据权利要求1所述的基于自适应线程池的业务处理方法,其特征在于,所述根据所述流程任务中上游流程任务的执行状态及调整后的线程数量执行所述上游流程任务对应的下游流程任务,包括:若所述上游流程任务的执行状态为成功,判断所述下游流程任务对应的线程池中是否有空闲的线程;若有,调用所述空闲的线程执行所述下游流程任务;若无,循环等待,直至确定所述下游流程任务对应的线程池中有空闲的线程后,调用所述空闲的线程执行所述下游流程任务。4.根据权利要求3所述的基于自适应线程池的业务处理方法,其特征在于,在调用所述空闲的线程执行所述下游流程任务之后,还包括:启动流程任务计时,以确定所述下游流程任务的执行时长。5.根据权利要求1所述的基于自适应线程池的业务处理方法,其特征在于,构建自适应动态调整模型的步骤,包括:根据各流程任务在预设时段内的执行时长均值确定各流程任务的优先级;根据各流程任务对应的线程池中的线程数量初值、所述执行时长均值及所述优先级确定所述自适应动态调整模型。6.根据权利要求1所述的基于自适应线程池的业务处理方法,其特征在于,所述利用预先构建的自适应动态调整模型在预设时刻调整各流程任务对应的线程池中的线程数量,包括:在预设时刻利用所述自适应动态调整模型确定所述线程池中线程的调整数量;按照所述调整数量调整所述线程池中的线程。7.根据权利要求6所述的基于自适应线程池的业务处理方法,其特征在于,所述按照所述调整数量调整所述线程池中的线程,包括:若所述调整数量为增加的数量,确定各流程任务对应的线程池中的线程数量总和是否超过预设最大值;若未超过所述预设最大值,按照所述增加的数量增加所述线程池中的线程;否则,在通过扩展线程节点提高所述预设最大值后,按照所述增加的数量增加所述线
程池中的线程。8.根据权利要求6所述的基于自适应线程池的业务处理方法,其特征在于,所述按照所述调整数量调整所述线程池中的线程,包括:若所述调整数量为减少的数量,直接按照所述减少的数量减少所述线程池中的线程。9.一种基于自适应线程池的业务处理装置,其特征在于,包括:业务流程建立单元,用于根据业务类型建立对应的业务流程;其中,所述业务流程由多个流程任务串联组成;各流程任务由对应的线程池中的线程执行;线程数量调整单元,用于利用预先构建的自适应动态调整模型在预设时刻调整各流程任务对应的线程池中的线程数量;流程任务执行单元,用于根据所述流程任务中上游流程任务的执行状态及调整后的线程数量执行所述上游流程任务对应的下游流程任务;其中,所述上游流程任务与所述下游流程任务为所述流程任务中相邻的两流程任务。10.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现权利要求1至8任一项所述的基于自适应线程池的业务处理方法的步骤。11.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1至8任一项所述的基于自适应线程池的业务处理方法的步骤。12.一种计算机程序产品,包括计算机程序/指令,其特征在于,该计算机程序/指令被处理器执行时实现权利要求1至8任一项所述的基于自适应线程池的业务处理方法的步骤。

技术总结
本申请提供一种基于自适应线程池的业务处理方法及装置,涉及系统资源调度领域,也可用于金融领域,包括:根据业务类型建立对应的业务流程;其中,所述业务流程由多个流程任务串联组成;各流程任务由对应的线程池中的线程执行;利用预先构建的自适应动态调整模型在预设时刻调整各流程任务对应的线程池中的线程数量;根据所述流程任务中上游流程任务的执行状态及调整后的线程数量执行所述上游流程任务对应的下游流程任务;其中,所述上游流程任务与所述下游流程任务为所述流程任务中相邻的两流程任务。本申请能够对线程池中的线程数量进行自适应地调整,即基于自适应线程池进行业务处理,提升了线程资源的利用率,提高了业务处理的整体效率。务处理的整体效率。务处理的整体效率。


技术研发人员:鲁栋栋 张伟 倪丹 孙博文
受保护的技术使用者:中国工商银行股份有限公司
技术研发日:2023.05.09
技术公布日:2023/8/6
版权声明

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

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

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

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

分享:

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

相关推荐