一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种任务处理方法、装置、电子设备及存储介质与流程

2022-02-22 18:25:28 来源:中国专利 TAG:


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.第五方面,本技术一实施例提供了一种计算机程序产品,包括计算机程序/指令,所述计算机程序/指令被处理器执行时实现如本技术第一方面中提供的任一方法。
62.本技术的实施例提供的技术方案至少带来以下有益效果:对于同一主任务拆分得到的每个子任务,获取子任务的属性信息集合;由于子任务类型不同影响并发冲突的属性信息不同,因此,在确定分组标识时,考虑子任务类型,从属性集合中选一条属性信息作为对应的子任务的分组标识,再按照子任务的分组标识对各个子任务进行分组。由于同一个
子任务组的分组标识相同,不同子任务组的分组标识不同,因此,对于同一个子任务组中的各个子任务顺序执行,可避免并发冲突的问题;对于不同子任务组中的各个子任务并发执行,不会产生并发冲突的问题,还可以提高任务执行速度。
附图说明
63.为了更清楚地说明本技术实施例的技术方案,下面将对本技术实施例中所需要使用的附图作简单地介绍,显而易见地,下面所介绍的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
64.图1为本技术一实施例提供的一种任务处理方法的应用场景示意图;
65.图2为本技术一实施例提供的一种任务处理方法的流程示意图;
66.图3为本技术一实施例提供的一种子任务分组的示意图;
67.图4为本技术一实施例提供的一种顺序执行子任务组内的各个子任务的流程示意图;
68.图5为本技术一实施例提供的另一种顺序执行子任务组内的各个子任务的流程示意图;
69.图6为本技术一实施例提供的一种任务处理装置的结构示意图;
70.图7为本技术一实施例提供的电子设备的结构示意图。
具体实施方式
71.为使本技术实施例的目的、技术方案和优点更加清楚,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述。
72.为了方便理解,下面对本技术实施例中涉及的名词进行解释:
73.附图中的任何元素数量均用于示例而非限制,以及任何命名都仅用于区分,而不具有任何限制含义。
74.在具体实践过程中,在银行的业务场景中,高性能业务处理主机一直以其高可用性、高吞吐率备受各大银行的青睐,单主机设备依赖单一,不利于自主可用,而核心业务量快速增长,主机面临着日益严峻的考验。
75.为了解决上述问题,需要将主机的批处理功能由分布式架构的批处理框架实现。相关技术中,在批处理的框架实现中,各个子任务要么并发执行,比如通过线程池管理,把所有待执行的子任务全部丢进线程池实现并发;要么顺序执行,比如通过线程管理,仅开通一个线程处理子任务,只有当一条子任务完成才能进行下一条子任务,实现了顺序执行。如果全部按照并发执行,则实行速度变慢;如果全部按照顺序执行,则数据库中会出现被频繁执行增删改查的数据行(也即热点行)、死锁和错乱等问题。
76.比如在一个具体的场景中,银行批量代收代付、客户信息拆分归并、入账等业务中,一天约有2000-3000万笔的处理能力,其中发起的批量主任务约200-300万批次,其中包括一些大批量的批拆单任务,往往一个主任务有多达10万笔子任务需要处理。其中,一些子任务有同一客户的卡号、同一账户和同一机构等场景,对于同一主任务内相同卡号、账户或者机构的需要按顺序处理否则会出现数据库热点行、死锁、财务错乱等问题。
77.为此,本技术提供了一种任务处理方法,该方法中,针对每个子任务,获取子任务的属性信息集合;其中,各个子任务由同一主任务拆分得到;根据子任务的类型,确定属性信息集合中的一条属性信息作为子任务的分组标识;按照各个子任务的分组标识,对各个子任务进行分组;其中,每个子任务组中包括若干个子任务;顺序执行每个子任务组内的各个子任务;并发执行不同子任务组内的各个子任务。提高了任务处理速度的同时,避免并发冲突的问题。
78.在介绍完本技术实施例的设计思想之后,下面对本技术实施例的技术方案能够适用的应用场景做一些简单介绍,需要说明的是,以下介绍的应用场景仅用于说明本技术实施例而非限定。在具体实施时,可以根据实际需要灵活地应用本技术实施例提供的技术方案。
79.参考图1,其为本技术实施例提供的任务处理方法的应用场景示意图。该应用场景包括多个终端设备101(包括终端设备101-1、终端设备101-2、
……
终端设备101-n)、服务器102。其中,终端设备101、服务器102之间通过无线或有线网络连接,终端设备101包括但不限于桌面计算机、移动电话、移动电脑、平板电脑、媒体播放器、智能可穿戴设备、智能电视等电子设备。服务器102可以是一台服务器、若干台服务器组成的服务器集群或云计算中心。服务器102可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、cdn、以及大数据和人工智能平台等基础云计算服务的云服务器。
80.服务器102针对每个子任务,获取子任务的属性信息集合;其中,各个子任务由同一主任务拆分得到;根据子任务的类型,确定属性信息集合中的一条属性信息作为子任务的分组标识;按照各个子任务的分组标识,对各个子任务进行分组;其中,每个子任务组中包括若干个子任务;顺序执行每个子任务组内的各个子任务;并发执行不同子任务组内的各个子任务。服务器102还可以将各个子任务的执行结果反馈至终端设备101显示。
81.当然,本技术实施例提供的方法并不限用于图1所示的应用场景中,还可以用于其它可能的应用场景,本技术实施例并不进行限制。对于图1所示的应用场景的各个设备所能实现的功能将在后续的方法实施例中一并进行描述,在此先不过多赘述。
82.为进一步说明本技术实施例提供的技术方案,下面结合附图以及具体实施方式对此进行详细的说明。虽然本技术实施例提供了如下述实施例或附图所示的方法操作步骤,但基于常规或者无需创造性的劳动在方法中可以包括更多或者更少的操作步骤。在逻辑上不存在必要因果关系的步骤中,这些步骤的执行顺序不限于本技术实施例提供的执行顺序。
83.下面结合图1所示的应用场景,对本技术实施例提供的技术方案进行说明。
84.参考图2,本技术实施例提供一种任务处理方法,包括以下步骤:
85.s201,针对每个子任务,获取子任务的属性信息集合;其中,各个子任务由同一主任务拆分得到。
86.s202、根据子任务的类型,确定属性信息集合中的一条属性信息作为子任务的分组标识。
87.s203、按照各个子任务的分组标识,对各个子任务进行分组;其中,每个子任务组
中包括若干个子任务。
88.s204、顺序执行每个子任务组内的各个子任务;并发执行不同子任务组内的各个子任务。
89.本技术实施例,对于同一主任务拆分得到的每个子任务,获取子任务的属性信息集合;由于子任务类型不同影响并发冲突的属性信息不同,因此,在确定分组标识时,考虑子任务类型,从属性集合中选一条属性信息作为对应的子任务的分组标识,再按照子任务的分组标识对各个子任务进行分组。由于同一个子任务组的分组标识相同,不同子任务组的分组标识不同,因此,对于同一个子任务组中的各个子任务顺序执行,可避免并发冲突的问题;对于不同子任务组中的各个子任务并发执行,不会产生并发冲突的问题,还可以提高任务执行速度。
90.示例性的,本技术实施例的任务处理方法可以基于高频处理框架实现,该处理过程可以把主任务的处理过程分为三个阶段,分别为主任务处理阶段、子任务执行阶段和主任务后处理阶段。其中,主任务处理阶段是把主任务拆分为单笔子任务,比如子任务执行阶段,负责子任务的执行,也即单笔联机交易,主任务后处理阶段负责把子任务的执行情况汇总形成报表或者其他需要的形式进行处理。
91.在实际的应用过程中,任务处理设备(比如高频调度装置)通过设置定时巡检器巡检实现,比如,主任务预处理巡检器,筛选出符合条件(比如处于未开始状态)的主任务分发进入预处理阶段,也即,将一个主任务拆分为若干个子任务的阶段;子任务执行完成巡检器,统计某一主任务下的各个子任务的执行情况,执行完成的进入后处理阶段;主任务后处理巡检器,筛选出符合条件(比如全部子任务均已执行完毕)的主任务分发进入后处理阶段。
92.更细化的,在主任务的执行过程中,包括如下各个阶段:未开始、预处理中、预处理完成、子任务处理中、子任务处理完成、后处理中以及完成。在每个阶段中,更新各个子任务或者主任务的状态。比如,如果有未执行完的子任务,则此时的主任务的状态为子任务处理中。在一个具体的例子中,表1示出了一种高频主任务状态表,通过读取状态代码来确定主任务在各个时刻的状态。
93.这样,如果当存在多个主任务时,通过主任务状态标识(比如是状态代码)来筛选处于未处理状态的主任务,如果处于未处理状态的主任务为多个,则可以根据不同主任务的特点来确定先执行哪个主任务。比如确定了一个将要执行的主任务a,则将该主任务拆分为若干个子任务,具体拆分原则可以参考子任务的类型以及属性信息等。
94.表1高频主任务状态表
95.状态状态代码未开始00预处理中10预处理完成11子任务处理中20子任务处理完成21后处理中30完成40
96.以主任务a为例,将主任务a拆分得到若干个子任务,对任务的处理过程进行说明。
97.涉及到s201,针对每个子任务,获取子任务的属性信息集合。
98.其中,以企业批量为员工发工资为例,则每一条子任务的属性信息集合为员工姓名、银行卡账号、付款账户和付款机构代码的集合。
99.涉及到s202,根据子任务的类型,确定属性信息集合中的一条属性信息作为子任务的分组标识。
100.示例性的,子任务的类型不同,造成该条子任务与其他子任务并发执行冲突的属性信息不同,因此,在确定分组标识的过程中,考虑了子任务的类型,这样,不同组之间的子任务不会产生并发冲突问题。比如,子任务为企业批量为员工发工资,则付款账户可能造成子任务之间并发冲突,因此,在这个例子中,可以选择付款账户为该子任务的分组标识。这样,对一个主任务下的全部子任务进行分组,确定了每个子任务的分组标识。
101.涉及到s203,按照各个子任务的分组标识,对各个子任务进行分组;其中,每个子任务组中包括若干个子任务。比如,分组标识为x的为一个子任务组,分组标识为y的为另一个子任务组。
102.涉及到s204,由于前述分组原则,同一组内的子任务需要顺序执行,才不产生冲突问题,对于不同组的各个子任务,由于分组标识不同,所以不会存在并发冲突的因素,因此可并发执行。
103.在任务的执行过程中,针对每一个主任务,确定该主任务中的每个子任务的执行状态;如果该主任务中的全部子任务均执行完毕,则确定该主任务执行完毕,将该主任务执行完毕的消息进行反馈。反馈形式比如可以是语音或者文字的形式在任务执行终端上进行提示。
104.示例性的,可通过如下方式顺序执行每个子任务组内的各个子任务:
105.针对每个子任务组,开启一个线程;基于线程,顺序执行子任务组内的各个子任务。具体的,每个子任务组开启一个线程,这样,应用该线程,可以顺序执行该子任务组内的各个子任务。
106.示例性的,可通过如下方式并发执行不同子任务组内的各个子任务:
107.针对各个子任务组,基于每个线程对应一个子任务组的原则,开启与子任务组数相同数量的线程,以使每个线程执行一个子任务组内的子任务。具体的,比如划分为n个子任务组,则为每个子任务组开启一个线程,这样,每个线程执行一个子任务组内的子任务。由于不同组的子任务的分组标识不同,也即,不同组的子任务之间,不存在并发冲突的情况。
108.在一个具体的例子中,图3示出了一种子任务分组的示意图,其中,主任务n分为n个子任务组,第一子任务中有n1个子任务,第二子任务组中有n2个子任务,
……
,第n个子任务组中有nn个子任务,n和n均为整数。其中,各个子任务组内的子任务顺序执行,不同子任务组之间可并发执行。
109.接下来说明针对每个子任务组,顺序执行子任务组内的各个子任务的具体实现方式;其中,图4示出了一种顺序执行子任务组内的各个子任务的流程示意图;图5示出了另一种顺序执行子任务组内的各个子任务的流程示意图。
110.第一种、参考图4,应用子任务组的状态标志位的方式:
111.s401、确定子任务组的状态标志位。
112.s402、若状态标志位表征子任务组内无子任务处于执行状态,则按照业务配置规则从子任务组中筛选一个未执行的子任务执行,并将子任务组的状态标志位进行更新,其中,更新后的状态标志位表征子任务组内有处于执行状态的子任务。
113.s403、若状态标志位表征子任务组内存在处于执行状态的子任务,则等待子任务执行完毕,并更新子任务组的状态标志位,其中,更新后的状态标志位表征子任务组内无处于执行状态的子任务;按照业务配置规则从子任务组中筛选一个未执行的子任务执行。
114.具体的,每个子任务组对应一个状态标志位,该状态标志位的取值在0和1之间切换,比如,0表示当前没有子任务正在执行,1表示当前有子任务正在执行。在实际的任务状态的监测过程中,确定子任务组的状态标志位,如果状态标志位表征子任务组内无子任务处于执行状态,也即,为0,则按照配置规则从子任务组中筛选一个未执行的子任务执行,再将子任务组的状态标志位更新为表征子任务组内有处于执行状态的子任务,比如更新为1。
115.如果当前状态标志位表征子任务组内存在处于执行状态的子任务,比如为1,则此时无法再执行新的子任务,等待正在执行的子任务执行完毕,将状态标志位更新为0,此时可以按照业务配置规则从子任务组中筛选一个未执行的子任务执行。
116.第二种、参考图5,通过确定子任务的状态的方式:
117.s501、针对每个子任务组,确定子任务组内的各个子任务的状态。
118.s502、若当前不存在处于执行状态的子任务,则按照业务配置规则从子任务组中筛选一个未执行的子任务执行。
119.s503、若当前存在处于执行状态的子任务,则等待子任务执行完毕,按照业务配置规则从子任务组中筛选一个未执行的子任务执行。
120.具体的,针对每个子任务组,直接确定子任务组内的各个子任务的状态,比如,部分子任务已经执行完毕、部分子任务未执行和至多一个子任务正在执行,也即,处于执行状态。如果当前不存在处于执行状态的子任务,此时,可以按照业务配置规则从子任务组中筛选一个未执行的子任务执行;如果当前存在处于执行状态的子任务,则等待该子任务执行完毕后,按照业务配置规则从子任务组中筛选一个未执行的子任务执行。
121.示例性的,业务配置规则可以是按照各个子任务在子任务组中的顺序确定的,顺序靠前的先执行,顺序靠后的后执行。
122.下面用一个例子来说明本技术实施例的任务处理方法的执行过程:
123.根据高频框架的特性在预处理、拆分两个阶段设计了按分组标识进行顺序处理的功能。其中,预处理阶段时,任务拆分过程中,通过插入子任务表的方式,对于有分组顺序执行要求的任务类型,在配置表(hft_tak_cfg)内设计了一个分组标识字段,该字段可以配置需要分组的子任务的属性信息,比如卡号、机构号、账号等的java字段名。
124.在一个具体的例子中,如下配置的机构号,表示该主任务内子任务相同的机构号串行(顺序执行),不同的机构号并行(并发执行)。示例机构号配置如下:
125.lock_ecd
126.ccafinptbo.txninsid。
127.同时,在子任务表(hft_task_sub)内同样设计了lock_ecd字段,在预处理阶段拆分主任务并插入子任务表时,通过读hft_task_cfg表lock_ecd字段发现此任务需要按机构
号分组串行执行,解析文件记录时会把每条记录的分组标识记录到此字段内。这样,在预处理阶段完成了主任务下的各个子任务的分组。
128.完成分组后,是任务的执行过程,示例性的,任务的执行过程可由kafka消息队列实现,在kafka消息队列中,任务的消费过程(执行)中,消费此分片时首先建立一个map,key键值为“主任务id 分组标识”,value值为计数器,计数器的属性为状态标志位,用来表征当前子任务主的执行状态。
129.从子任务表中依次筛选出数据异步执行,当“主任务id 分组标识”的计数器值为0时,代表当前任务可以执行,执行时计数器值为1,后续子任务会等待计数器为0后运行,运行时计数器值设为1,以此机制保证了统一分组标识顺序执行,不同分组标识key值不同,可以并行执行。
130.在一个具体的例子中,表2示出了一种kafka消息状态表,其中,未下发表示任务未执行,已下发表示任务待执行,已消费表示任务已执行。
131.表2kafka消息状态表
132.状态状态代码未下发0已下发1已消费2
133.综上,本技术实施例中,通过配置一个字段(分组标识)即可实现按分组标识顺序执行,配置简单,避免了并发冲突的问题。
134.本技术实施例中的任务调度方法可应用在分布式架构的批处理框架中,这样可以支持原先主机的批处理功能,批处理框架并行计算中的高频调度装置负责核心银行批量拆单笔业务的拆解、分发、执行、汇总等功能。该子任务按分组标识进行顺序处理的机制还可以满足分布式银行核心系统特定业务场景的处理需求。
135.如图6所示,基于与上述任务处理方法相同的发明构思,本技术实施例还提供了一种任务处理装置,包括信息获取模块61、分组标识确定模块62、分组模块63和执行模块64。
136.信息获取模块61,用于针对每个子任务,获取子任务的属性信息集合;其中,各个子任务由同一主任务拆分得到;
137.分组标识确定模块62,用于根据子任务的类型,确定属性信息集合中的一条属性信息作为子任务的分组标识;
138.分组模块63,用于按照各个子任务的分组标识,对各个子任务进行分组;其中,每个子任务组中包括若干个子任务;
139.执行模块64,用于顺序执行每个子任务组内的各个子任务;并发执行不同子任务组内的各个子任务。
140.在一些示例性的实施方式中,执行模块具体用于:针对每个子任务组,开启一个线程;
141.基于线程,顺序执行子任务组内的各个子任务。
142.在一些示例性的实施方式中,执行模块64具体用于:
143.针对各个子任务组,基于每个线程对应一个子任务组的原则,开启与子任务组数相同数量的线程,以使每个线程执行一个子任务组内的子任务。
144.在一些示例性的实施方式中,执行模块64具体用于:
145.确定子任务组的状态标志位;
146.若状态标志位表征子任务组内无子任务处于执行状态,则按照业务配置规则从子任务组中筛选一个未执行的子任务执行,并将子任务组的状态标志位进行更新,其中,更新后的状态标志位表征子任务内有处于执行状态的子任务。
147.在一些示例性的实施方式中,执行模块64具体还用于,在确定子任务组的状态标志位之后,若状态标志位表征子任务组内存在处于执行状态的子任务,则等待子任务执行完毕,并更新子任务组的状态标志位,其中,更新后的状态标志位表征子任务内无处于执行状态的子任务;
148.按照业务配置规则从子任务组中筛选一个未执行的子任务执行。
149.在一些示例性的实施方式中,执行模块64具体还用于:
150.针对每个子任务组,确定子任务组内的各个子任务的状态;
151.若当前不存在处于执行状态的子任务,则按照业务配置规则从子任务组中筛选一个未执行的子任务执行。
152.在一些示例性的实施方式中,执行模块具体还用,针对每个子任务组,确定子任务组内的各个子任务的执行状态之后,若当前存在处于执行状态的子任务,则等待子任务执行完毕,按照业务配置规则从子任务组中筛选一个未执行的子任务执行。
153.在一些示例性的实施方式中,还包括筛选模块,用于在针对每个子任务,获取子任务的属性信息集合之前:
154.通过主任务状态标识筛选处于未处理状态的主任务;
155.将主任务拆分为若干个子任务。
156.在一些示例性的实施方式中,还包括状态反馈模块,用于:
157.针对每一个主任务,确定主任务中的每个子任务的执行状态;
158.若主任务中的全部子任务均执行完毕,则反馈主任务已执行完毕的消息。
159.本技术实施例提的任务处理装置与上述任务处理方法采用了相同的发明构思,能够取得相同的有益效果,在此不再赘述。
160.基于与上述任务处理方法相同的发明构思,本技术实施例还提供了一种电子设备,该电子设备具体(可以为智能设备内部的控制设备或控制系统,也可以是与智能设备通信的外部设备,如)可以为桌面计算机、便携式计算机、智能手机、平板电脑、个人数字助理(personal digital assistant,pda)、服务器等。如图7所示,该电子设备可以包括处理器801和存储器802。
161.处理器701可以是通用处理器,例如中央处理器(cpu)、数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现场可编程门阵列(field programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件,可以实现或者执行本技术实施例中公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本技术实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
162.存储器702作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程
序、非易失性计算机可执行程序以及模块。存储器可以包括至少一种类型的存储介质,例如可以包括闪存、硬盘、多媒体卡、卡型存储器、随机访问存储器(random access memory,ram)、静态随机访问存储器(static random access memory,sram)、可编程只读存储器(programmable read only memory,prom)、只读存储器(read only memory,rom)、带电可擦除可编程只读存储器(electrically erasable programmable read-only memory,eeprom)、磁性存储器、磁盘、光盘等等。存储器是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。本技术实施例中的存储器702还可以是电路或者其它任意能够实现存储功能的装置,用于存储程序指令和/或数据。
163.本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;上述计算机存储介质可以是计算机能够存取的任何可用介质或数据存储设备,包括但不限于:移动存储设备、随机存取存储器(ram,random access memory)、磁性存储器(例如软盘、硬盘、磁带、磁光盘(mo)等)、光学存储器(例如cd、dvd、bd、hvd等)、以及半导体存储器(例如rom、eprom、eeprom、非易失性存储器(nand flash)、固态硬盘(ssd))等各种可以存储程序代码的介质。
164.或者,本技术上述集成的单元如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本技术各个实施例所述方法的全部或部分。而前述的存储介质包括:移动存储设备、随机存取存储器(ram,random access memory)、磁性存储器(例如软盘、硬盘、磁带、磁光盘(mo)等)、光学存储器(例如cd、dvd、bd、hvd等)、以及半导体存储器(例如rom、eprom、eeprom、非易失性存储器(nand flash)、固态硬盘(ssd))等各种可以存储程序代码的介质。
165.以上实施例仅用以对本技术的技术方案进行了详细介绍,但以上实施例的说明只是用于帮助理解本技术实施例的方法,不应理解为对本技术实施例的限制。本技术领域的技术人员可轻易想到的变化或替换,都应涵盖在本技术实施例的保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献