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

文档序号:31854019发布日期:2022-10-19 02:08阅读:76来源:国知局
一种任务处理方法、装置、电子设备及存储介质与流程

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.图1示出了本公开实施例所提供的一种任务处理方法的流程图;
53.图2示出了本公开实施例所提供的一种任务处理阵列的初始示意图;
54.图3示出了本公开实施例所提供的一种任务处理阵列的更新示意图;
55.图4示出了本公开实施例所提供的一种任务处理装置的示意图;
56.图5示出了本公开实施例所提供的一种电子设备的示意图。
具体实施方式
57.为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例中附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本公开实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本公开的实施例的详细描述并非旨在限制要求保护的本公开的范围,而是仅仅表示本公开的选定实施例。基于本公开的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。
58.应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
59.本文中术语“和/或”,仅仅是描述一种关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。另外,本文中术语“至少一种”表示多种中的任意一种或多种中的至少两种的任意组合,例如,包括a、b、c中的至少一种,可以表示包括从a、b和c构成的集合中选择的任意一个或多个元素。
60.经研究发现,在现有的大并发定时任务处理方式中,通常采用基于小顶堆算法和时间轮算法,而定时任务要支持大并发任务量,往往需要满足存取复杂度要求、资源占用要求、算法实现复杂度等多种要求,而现有的大并发定时任务处理方式仍存在算法复杂程度高、资源占用比较大的问题。
61.基于上述研究,本公开提供了一种任务处理方法、装置、电子设备及存储介质,通过获取包括多个任务节点的待处理任务,确定每个任务节点对应的触发时间以及触发周
期;根据触发时间的先后顺序,将具有相同触发周期的任务节点依次纵向排列,生成多个任务处理队列,其中,具有最早触发时间的任务节点作为任务处理队列的头节点;根据头节点对应的触发时间的先后顺序,将全部任务处理队列依次横向排列,生成待处理任务对应的任务处理阵列;按照时序依次处理任务处理阵列中,到达触发时间的目标头节点;根据目标头节点对应的触发周期,确定目标头节点对应的更新触发时间;根据更新触发时间,更新目标头节点对应的任务处理队列中,任务节点的排列顺序,并将更新后的任务处理队列中,具有最早触发时间的任务节点作为更新后的头节点;重复按照时序依次处理任务处理阵列中,到达触发时间的目标头节点的步骤,直至到达待处理任务对应的预设任务处理时限。可以减少处理大并发定时任务的资源占用比,同时算法复杂度低,具有较高的数据处理效率。
62.为便于对本实施例进行理解,首先对本公开实施例所公开的一种任务处理方法进行详细介绍,本公开实施例所提供的任务处理方法的执行主体一般为具有一定计算能力的计算机设备,该计算机设备例如包括:终端设备或服务器或其它处理设备,终端设备可以为用户设备(user equipment,ue)、移动设备、用户终端、终端、蜂窝电话、无绳电话、个人数字助理(personal digital assistant,pda)、手持设备、计算设备、车载设备、可穿戴设备等。在一些可能的实现方式中,该任务处理方法可以通过处理器调用存储器中存储的计算机可读指令的方式来实现。
63.参见图1所示,为本公开实施例提供的一种任务处理方法的流程图,所述方法包括步骤s101~s106,其中:
64.s101、获取包括多个任务节点的待处理任务,确定每个所述任务节点对应的触发时间以及触发周期。
65.在具体实施中,获取大并发的待处理任务,在待处理任务中具有多个周期性的需要执行的任务节点,在这些任务节点中,各个任务节点均具有对应的触发时间以及触发周期,确定待处理任务中,每个任务节点对应的触发时间以及触发周期。
66.这里,触发时间为一个时间点,代表某一任务节点在到达该时间点后,需要执行该任务节点对应的任务事项,即,需要触发针对任务节点处理的时间点。与之相对应的,待处理任务中的各个任务节点均是周期性触发的,即针对某一任务节点,在到达触发时间触发处理之后,等待一个触发周期之后,再次触发针对该任务节点的处理。
67.需要说明的是,触发时间可以以开始处理待处理任务的时间点为基准,例如,以开始处理待处理任务的时间点为基准0s开始,针对触发时间为1s的任务节点,那么开始处理待处理任务1s时,需要处理待处理任务中,全部触发时间为1s的任务节点。进一步的,若针对某一触发时间为1s的任务节点,其对应的触发周期为5s,那么开始处理待处理任务1s时,该任务节点被触发处理,下一次的触发时间则需要加上一个触发周期,即为1s+5s=6s,也就是说在开始处理待处理任务6s时,该任务节点被再次触发处理。
68.s102、根据所述触发时间的先后顺序,将具有相同所述触发周期的所述任务节点依次纵向排列,生成多个任务处理队列,其中,具有最早所述触发时间的所述任务节点作为所述任务处理队列的头节点。
69.在具体实施中,在待处理任务中,将具有相同触发周期的任务节点划分成一类,针对每一类中的全部任务节点,按照触发时间的先后顺序,由依次纵向排列构成任务处理队列,这样,在每一个任务处理队列中,所有任务节点均具有相同的触发周期,同时,将具有最
早触发时间的任务节点作为任务处理队列的头节点。
70.需要说明的是,任务处理队列中,任务节点的排列顺序可以为按照触发时间的到达先后,由下至上依次纵向排列,也可以为按照触发时间的到达先后,由上至下依次纵向排列,可以根据实际需要进行选择,在此不做具体限制。针对下至上依次纵向排列的任务处理队列,处于任务处理队列最下方的任务节点的触发时间最早到达,因此,处于任务处理队列最下方的任务节点为该任务处理队列的头节点;针对上至下依次纵向排列的任务处理队列,处于任务处理队列最上方的任务节点的触发时间最早到达,因此,处于任务处理队列最上方的任务节点为该任务处理队列的头节点。
71.示例性的,针对某一触发周期为1s的任务处理队列,其中依次纵向排列有触发时间为2s的任务节点、触发时间为3s的任务节点、触发时间为4s的任务节点以及触发时间为5s的任务节点,其中,触发时间为2s的任务节点即为该任务处理队列的头节点。
72.进一步的,若待处理任务中,具有某一触发周期的任务节点仅有一个,则对应的任务处理队列中仅包含这一个任务节点,该任务节点作为任务处理队列的头节点。
73.作为一种可能的实施方式,在步骤s102之后,本公开实施例提供的任务处理方法还可以包括:确定所述任务处理队列中,是否存在具有相同所述触发时间的所述任务节点;若存在,则将具有相同所述触发时间的所述任务节点,在所述任务处理队列中的对应顺序处并列设置。
74.在具体实施中,在同一任务处理队列中可能存在多个具有相同触发时间以及触发周期的任务节点,针对这些任务节点,在这些任务节点的触发时间在任务处理队列中的顺序位置处,并列设置具有相同触发时间的任务节点,以便于触发执行的过程中一并处理这些任务节点。
75.示例性的,针对某一触发周期为1s的任务处理队列,其中包括有触发时间为2s的任务节点、两个触发时间为3s的任务节点以及触发时间为4s的任务节点,其中,触发时间为2s的任务节点即为该任务处理队列的头节点,对应设置在任务处理队列第一位,两个触发时间为3s的任务节点并列设置在任务处理队列第二位,触发时间为4s的任务节点设置在任务处理队列第三位。
76.s103、根据所述头节点对应的所述触发时间的先后顺序,将全部所述任务处理队列依次横向排列,生成所述待处理任务对应的任务处理阵列。
77.在具体实施中,将划分好的全部任务处理队列,按照每个任务处理队列中头节点对应的触发时间的大小顺序,依次将全部任务处理队列依次横向进行排列,将待处理任务转换为任务处理阵列。
78.具体的,参见图2所示,为本公开实施例提供的一种任务处理阵列的初始示意图。图2所示的任务处理阵列为初始状态,即在开始处理待处理任务的时间点的基准0s时,待处理任务对应的任务处理阵列,其中每个方框代表一个任务节点,框内数字代表对应的触发时间。
79.需要说明的是,图2所示的任务处理阵列的示意图作为便于对本实施例的示意图,仅展示任务处理阵列的一种可能性,其中所标注的触发周期以及触发时间等均不作为对本公开实施例的限制。
80.如图2中所示,任务处理阵列中分别包括触发周期为1s、触发周期为5s、触发周期
为10s以及触发周期为30s的四个任务处理队列。针对触发周期为1s的任务处理队列,其中包括4个触发时间在1s处的任务节点;针对触发周期为5s的任务处理队列,其中包括1个触发时间在2s处的任务节点、2个触发时间在4s处的任务节点以及2个触发时间在5s处的任务节点,以此类推,触发周期为10s的任务处理队列中分别包括触发时间在2s、3s、6s、9s以及10s处的任务节点;触发周期为30s的任务处理队列中分别包括触发时间在20s、25s处的任务节点。触发周期为1s的任务处理队列的头节点为触发时间在1s处的任务节点;触发周期为5s的任务处理队列的头节点为触发时间在2s处的任务节点;触发周期为10s的任务处理队列的头节点为触发时间在2s处的任务节点;触发周期为30s的任务处理队列的头节点为触发时间在20s处的任务节点。
81.这样,在任务处理阵列中,每个任务处理队列中的头节点所在行中,依次按照触发时间的大小顺序横向排列,每个任务处理队列中,任务节点同样按照触发时间的大小顺序依次进行纵向排列。
82.s104、按照时序依次处理所述任务处理阵列中,到达所述触发时间的目标头节点;根据所述目标头节点对应的所述触发周期,确定所述目标头节点对应的更新触发时间。
83.在具体实施中,在构建完成任务处理阵列之后开始针对待处理任务的处理过程,其具体处理过程依赖于步骤s103中构建的任务处理阵列,由于任务处理阵列中,每个任务处理队列中的头节点所在行中,依次按照触发时间的大小顺序横向排列,因此,头节点所在行对应的触发时间为任务处理队列中最早的,仅需按照时序,每过预设的检查周期之后,依次检查头节点所在行中是否有到达触发时间的目标头节点,处理全部目标头节点,即可完成任务处理阵列中,全部到达触发时间的任务节点的处理工作。
84.这里,针对尚未到达触发时间的头结点则跳过处理。
85.需要说明的是,预设的检查周期可以根据待处理任务中,任务节点对应的触发周期的最小单位进行设置,在此不作具体限制,优选的可以为1s,即,以开始处理待处理任务的时间点为基准0s,1s时检查头节点所在行中是否有触发时间为1s的目标头节点,2s时检查头节点所在行中是否有触发时间为2s的目标头节点,依次进行类推。
86.作为一种可能的实施方式,时序处理任务处理阵列中,到达触发时间的目标头节点的过程具体可以包括:确定当前任务处理时刻;遍历所述任务处理阵列中,将与所述当前任务处理时刻相匹配的所述头节点作为所述目标头节点;确定所述目标头节点对应的所述任务处理队列中,是否存在与所述目标头节点具有相同所述触发时间的并行任务节点;若存在,则分别执行所述目标头节点对应的任务事项,以及所述并行任务节点对应的任务事项;若不存在,则执行所述目标头节点对应的任务事项。
87.这里,以图2示出的任务处理阵列的示意图为例,说明时序处理任务处理阵列中,到达触发时间的目标头节点的过程。在处理待处理任务的时间点来到1s时,触发周期为1s的任务处理队列的头节点到达了对应的触发时间,即为目标头节点,其余任务处理队列的头节点均未到达触发时间不进行处理,因此执行触发周期为1s的任务处理队列的头节点对应的任务事项,但是,触发周期为1s的任务处理队列中包括多个与头节点的触发时间相同的并行任务节点,即图2中多个触发时间在1s处的任务节点,此时则处理全部触发时间在1s处的任务节点对应的任务事项,体现在图2中,则是完成触发周期为1s的任务处理队列对应的全部任务事项。
88.进一步的,在处理完成目标头节点对应的任务事项之后,目标头节点的下一触发时间则发生了改变,需要将目标头节点对应的触发时间加上对应的触发周期,构成目标头节点对应的更新触发时间。
89.需要说明的是,针对目标头节点对应的任务处理队列中,与目标头节点具有相同触发时间的并行任务节点,同样根据对应的触发周期,确定并行任务节点对应的更新触发时间,即,将并行任务节点对应的触发时间加上对应的触发周期,构成并行任务节点对应的更新触发时间。
90.这里,同样以图2示出的任务处理阵列的示意图为例,在处理待处理任务的时间点来到1s时,处理触发周期为1s的任务处理队列中的全部任务节点之后,需要将任务处理队列中的全部任务节点的触发时间加上触发周期,即,触发周期为1s的任务处理队列中的全部任务节点对应的触发时间更新为1s+1s=2s。
91.s105、根据所述更新触发时间,更新所述目标头节点对应的所述任务处理队列中,所述任务节点的排列顺序,并将更新后的所述任务处理队列中,具有最早所述触发时间的所述任务节点作为更新后的所述头节点。
92.在具体实施中,由于更新触发时间是由目标头节点的触发时间加上触发周期构成的,因此,更新触发时间很有可能会打破任务处理队列中,触发时间的先后顺序进行排列的顺序,因此需要将目标头节点对应的更新触发时间与剩余其他任务节点的触发时间重新按照先后顺序进行排列,并将更新后具有最早所述触发时间的任务节点作为更新后的头节点。
93.具体的,可以参见图3所示,为本公开实施例提供的一种任务处理阵列的更新示意图。
94.这里,图3为图2所示的任务处理阵列的初始示意图在处理待处理任务的时间点由1s处到2s处进行排列顺序以及触发时间更新的示意图,由于在1s处,触发周期为1s的任务处理队列中的全部任务节点对应的触发时间更新为2s,而其他任务节点的并未触发处理,且无需进行排列顺序更新,因此在处理待处理任务的时间点来到2s时,触发周期为1s的任务处理队列、触发周期为5s的任务处理队列以及触发周期为10s的任务处理队列的头节点均到达触发时间,相对应的更新触发时间分别为2s+1s=3s、2s+5s=7s、2s+10s=12s,针对触发周期为5s的任务处理队列,头节点的更新触发时间7s大于全部其他任务节点的触发时间,因此将触发时间7s的任务节点转移至任务处理队列末尾,将此时具有最早触发时间4s的任务节点作为更新后的头节点。同理,针对触发周期为10s的任务处理队列,头节点的更新触发时间12s大于全部其他任务节点的触发时间,因此将触发时间12s的任务节点转移至任务处理队列末尾,将此时具有最早触发时间3s的任务节点作为更新后的头节点。
95.需要注意的是,此时触发周期为5s的任务处理队列的头节点触发时间为4s;触发周期为10s的任务处理队列的头节点触发时间为3s,这种情况已经不符合任务处理阵列中,针对各个任务处理队列需要按照头节点对应的触发时间的先后顺序依次横向排列的要求,因此需要将触发周期为5s的任务处理队列与触发周期为10s的任务处理队列进行位置对调,以维持各个任务处理队列需要按照头节点对应的触发时间的先后顺序依次横向排列的要求。
96.因此,作为一种可能的实施方式,在步骤s105之后,所述方法还包括:确定所述任
务处理阵列中,更新后的所述头节点所在行是否按照对应的所述触发时间的先后顺序依次横向排列;若是,则维持所述任务处理阵列中,各个所述任务处理队列之间的排列顺序;若不是,按照所述头节点对应的所述触发时间的先后顺序,更新所述任务处理阵列中,各个所述任务处理队列之间的排列顺序。
97.s106、重复所述按照时序依次处理所述任务处理阵列中,到达所述触发时间的目标头节点的步骤,直至到达所述待处理任务对应的预设任务处理时限。
98.在具体实施中,循环进行步骤s104-步骤s105,直至到达待处理任务对应的预设任务处理时限,针对待处理任务的处理过程完毕。
99.这里,预设任务处理时限可以根据不同待处理任务的需求确定,在此不作具体限制。
100.本公开实施例提供的一种任务处理方法,通过获取包括多个任务节点的待处理任务,确定每个任务节点对应的触发时间以及触发周期;根据触发时间的先后顺序,将具有相同触发周期的任务节点依次纵向排列,生成多个任务处理队列,其中,具有最早触发时间的任务节点作为任务处理队列的头节点;根据头节点对应的触发时间的先后顺序,将全部任务处理队列依次横向排列,生成待处理任务对应的任务处理阵列;按照时序依次处理任务处理阵列中,到达触发时间的目标头节点;根据目标头节点对应的触发周期,确定目标头节点对应的更新触发时间;根据更新触发时间,更新目标头节点对应的任务处理队列中,任务节点的排列顺序,并将更新后的任务处理队列中,具有最早触发时间的任务节点作为更新后的头节点;重复按照时序依次处理任务处理阵列中,到达触发时间的目标头节点的步骤,直至到达待处理任务对应的预设任务处理时限。可以减少处理大并发定时任务的资源占用比,同时算法复杂度低,具有较高的数据处理效率。
101.本领域技术人员可以理解,在具体实施方式的上述方法中,各步骤的撰写顺序并不意味着严格的执行顺序而对实施过程构成任何限定,各步骤的具体执行顺序应当以其功能和可能的内在逻辑确定。
102.基于同一发明构思,本公开实施例中还提供了与任务处理方法对应的任务处理装置,由于本公开实施例中的装置解决问题的原理与本公开实施例上述任务处理方法相似,因此装置的实施可以参见方法的实施,重复之处不再赘述。
103.请参阅图4为本公开实施例提供的一种任务处理装置400的结构示意图。如图4中所示,本公开实施例提供的任务处理装置400包括:
104.获取模块410,用于获取包括多个任务节点的待处理任务,确定每个所述任务节点对应的触发时间以及触发周期。
105.任务处理队列生成模块420,用于根据所述触发时间的先后顺序,将具有相同所述触发周期的所述任务节点依次纵向排列,生成多个任务处理队列,其中,具有最早所述触发时间的所述任务节点作为所述任务处理队列的头节点。
106.任务处理阵列生成模块430,用于根据所述头节点对应的所述触发时间的先后顺序,将全部所述任务处理队列依次横向排列,生成所述待处理任务对应的任务处理阵列。
107.任务执行模块440,用于按照时序依次处理所述任务处理阵列中,到达所述触发时间的目标头节点;根据所述目标头节点对应的所述触发周期,确定所述目标头节点对应的更新触发时间。
108.更新模块450,用于根据所述更新触发时间,更新所述目标头节点对应的所述任务处理队列中,所述任务节点的排列顺序,并将更新后的所述任务处理队列中,具有最早所述触发时间的所述任务节点作为更新后的所述头节点。
109.循环模块460,用于重复所述按照时序依次处理所述任务处理阵列中,到达所述触发时间的目标头节点的步骤,直至到达所述待处理任务对应的预设任务处理时限。
110.关于装置中的各模块的处理流程、以及各模块之间的交互流程的描述可以参照上述方法实施例中的相关说明,这里不再详述。
111.本公开实施例提供的一种任务处理装置,通过获取包括多个任务节点的待处理任务,确定每个任务节点对应的触发时间以及触发周期;根据触发时间的先后顺序,将具有相同触发周期的任务节点依次纵向排列,生成多个任务处理队列,其中,具有最早触发时间的任务节点作为任务处理队列的头节点;根据头节点对应的触发时间的先后顺序,将全部任务处理队列依次横向排列,生成待处理任务对应的任务处理阵列;按照时序依次处理任务处理阵列中,到达触发时间的目标头节点;根据目标头节点对应的触发周期,确定目标头节点对应的更新触发时间;根据更新触发时间,更新目标头节点对应的任务处理队列中,任务节点的排列顺序,并将更新后的任务处理队列中,具有最早触发时间的任务节点作为更新后的头节点;重复按照时序依次处理任务处理阵列中,到达触发时间的目标头节点的步骤,直至到达待处理任务对应的预设任务处理时限。可以减少处理大并发定时任务的资源占用比,同时算法复杂度低,具有较高的数据处理效率。
112.对应于图1中的任务处理方法,本公开实施例还提供了一种电子设备500,如图5所示,为本公开实施例提供的电子设备500结构示意图,包括:
113.处理器51、存储器52、和总线53;存储器52用于存储执行指令,包括内存521和外部存储器522;这里的内存521也称内存储器,用于暂时存放处理器51中的运算数据,以及与硬盘等外部存储器522交换的数据,处理器51通过内存521与外部存储器522进行数据交换,当所述电子设备500运行时,所述处理器51与所述存储器52之间通过总线53通信,使得所述处理器51执行图1中的任务处理方法的步骤。
114.本公开实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述方法实施例中所述的任务处理方法的步骤。其中,该存储介质可以是易失性或非易失的计算机可读取存储介质。
115.本公开实施例还提供一种计算机程序产品,该计算机程序产品包括有计算机指令,所述计算机指令被处理器执行时可以执行上述方法实施例中所述的任务处理方法的步骤,具体可参见上述方法实施例,在此不再赘述。
116.其中,上述计算机程序产品可以具体通过硬件、软件或其结合的方式实现。在一个可选实施例中,所述计算机程序产品具体体现为计算机存储介质,在另一个可选实施例中,计算机程序产品具体体现为软件产品,例如软件开发包(software development kit,sdk)等等。
117.所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。在本公开所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际
实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
118.所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
119.另外,在本公开各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
120.所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本公开的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本公开各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
121.最后应说明的是:以上所述实施例,仅为本公开的具体实施方式,用以说明本公开的技术方案,而非对其限制,本公开的保护范围并不局限于此,尽管参照前述实施例对本公开进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本公开揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本公开实施例技术方案的精神和范围,都应涵盖在本公开的保护范围之内。因此,本公开的保护范围应所述以权利要求的保护范围为准。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1