1.本技术涉及人工智能技术领域,尤其涉及一种基于人工智能的任务流精准调度方法、装置、电子设备及存储介质。
背景技术:2.随着互联网、电子商务、金融等行业的飞速发展,往往需要海量的任务流对大量数据进行分析处理以为商业决策提供支持,在相同时间往往同时存在很多的任务流等待执行,为了使得每一个工作任务都能得到最优解决实现工作任务的智能执行,对工作任务进行调度是一个重要工作。
3.目前,通常根据任务流的等待时间和周期类型计算不同任务流的优先级,根据优先级的大小实现多种任务流的自动调度,然而这种方式忽略了不同任务流之间的依赖关系,不能根据应用场景的需求实现多种任务流的自适应调度,任务流调度的精准度不高。
技术实现要素:4.鉴于以上内容,有必要提出一种基于人工智能的任务流精准调度方法及相关设备,以解决如何提高任务流调度的精准度这一技术问题,其中,相关设备包括基于人工智能的任务流精准调度装置、电子设备及存储介质。
5.本技术提供基于人工智能的任务流精准调度方法,所述方法包括:
6.构建每一个预设任务流的任务链路图,所述预设任务流包括多个任务节点,所述任务链路图包括所述预设任务的预设id、周期类型和任务节点的上下游关系;
7.判断不同任务链路图中任意两个任务节点之间的依赖关系以绘制依赖图,所述依赖关系包括依赖任务节点和依赖周期数;
8.监控所有任务节点的执行状态以获取每一个任务节点的状态信息,所述任务节点的状态信息包括运行队列和运行周期数,所述运行队列包括不同运行周期下所述任务节点的输出结果;
9.基于所述状态信息、所述依赖图、所述周期类型和预设优先级计算每一个任务链路图的调度优先级;
10.按照所述调度优先级从大到小的顺序调度任务链路图对应的预设任务流以获取调度结果。
11.在一些实施例中,所述判断不同任务链路图中任意两个任务节点之间的依赖关系以绘制依赖图,所述依赖关系包括依赖任务节点和依赖周期数,包括:
12.获取目标任务链路图中目标节点的输入信息作为目标输入,所述目标任务链路图为所有任务链路图中的任意一个,所述目标节点为所述目标任务链路图中所有任务节点中的任意一个;
13.基于所述目标输入和所述目标任务链路图判断所述目标节点是否存在外部依赖,所述外部依赖是指所述目标输入中包括除目标任务链路图之外的任务节点的输出结果;
14.若所述目标节点不存在外部依赖,则所述目标节点不存在依赖关系,若所述目标节点存在外部依赖,则基于所述目标输入在除所述目标任务链路图之外每一个任务链路图的所有任务节点中查询所述目标节点的依赖关系,所述依赖关系包括依赖任务节点和依赖周期数;
15.当获取所述目标节点的依赖关系时,绘制一条从依赖任务节点指向所述目标节点的有向边并将所述依赖周期数作为所述有向边的边权值,得到初始依赖图;
16.遍历所述目标任务链路图中所有任务节点以更新所述初始依赖图;
17.遍历所有任务链路图不断更新所述初始依赖图,当遍历完所有任务链路图的任务节点时,停止所述初始依赖图的更新得到依赖图。
18.在一些实施例中,所述任务节点的执行状态包括未开始、进行中和已完成三种,所述监控所有任务节点的执行状态以获取每一个任务节点的状态信息之前,所述方法还包括:
19.当任务节点的执行状态变更为进行中时,触发所述任务节点的计时器;
20.依据所述计时器获取所述任务节点的执行状态为进行中的持续时间;
21.对比所述持续时间和预设时间段以获取对比结果,若所述持续时间大于预设时间段,则说明所述任务节点执行任务超时,所述对比结果为异常节点,若所述持续时间不大于预设时间段,则所述对比结果为正常节点;
22.若所述对比结果为异常节点,则依据所述任务节点所在任务链路图的预设优先级确定警示策略,并执行所述警示策略得到警示结果。
23.在一些实施例中,所述基于所述状态信息、所述依赖图、所述周期类型和预设优先级计算每一个任务链路图的调度优先级,包括:
24.计算当前时刻和任务链路图的调用时刻的时间间隔作为每一个任务链路图的等待时间;
25.基于所述周期类型和所述等待时间计算每一个任务链路图的初始优先级,所述初始优先级满足关系式:
[0026][0027]
其中,ri为任务链路图i的预设优先级,max(r)为预设优先级的最大值,di为任务链路图i的等待时间,所述等待时间的单位为秒;zi为依据任务链路图i周期类型获取的周期时间,所述周期时间的单位为秒;ri为任务链路图i的初始优先级;
[0028]
基于所述状态信息和所述依赖图对所述初始优先级进行调节以获取每一个任务链路图的调度优先级。
[0029]
在一些实施例中,所述基于所述状态信息和所述依赖图对所述初始优先级进行调节以获取每一个任务链路图的调度优先级包括:
[0030]
选取任意一个任务链路图作为待调节任务链路图;
[0031]
基于所述依赖图判断所述待调节任务链路图的所有任务节点是否存在依赖关系以获取判断结果;
[0032]
若所述待调节任务链路图的所有任务节点均不存在依赖关系,则所述判断结果为不需要调节,将所述待调节任务链路图的初始优先级作为调度优先级;
[0033]
若所述待调节任务链路图中至少有一个任务节点存在依赖关系,则所述判断结果为需要调节,储存所述待调节任务链路图中所有任务节点的依赖关系得到所述待调节任务链路图的依赖关系集合,每个依赖关系包括依赖任务节点和依赖周期数;
[0034]
基于所述状态信息、所述依赖关系集合和预设调节函数对所述待调节任务链路图的初始优先级进行调节以获取调度优先级;
[0035]
遍历所有任务链路图以获取每一个任务链路图的调度优先级。
[0036]
在一些实施例中,所述预设调节函数满足关系式:
[0037][0038]
其中,n表示待调节任务链路图的依赖关系集合中依赖关系的数量,bj为依赖关系j中的依赖周期数,numj为所述依赖关系j中依赖任务节点的状态信息中的运行周期数;ri为待调节任务链路图的初始优先级,r
′i为待调节任务链路图的调度优先级,其中,f(x)为自定义函数,所述自定义函数满足关系式:
[0039]
在一些实施例中,所述按照所述调度优先级从大到小的顺序调度任务链路图对应的预设任务流以获取调度结果包括:
[0040]
按照调度优先级从大到小的顺序执行任务链路图对应的预设任务流,所述任务链路图与预设任务流一一对应;
[0041]
若任务链路图中所有任务节点均不存在依赖关系,则直接执行所述任务链路图的预设任务流得到调度结果;
[0042]
若任务链路图中至少有一个任务节点存在依赖关系,则针对存在依赖关系的任务节点,获取所述依赖关系中的依赖任务节点的状态信息中的运行队列,同时获取所述依赖关系中的依赖周期数,从所述运行队列中按照获取时间从后到前的顺序提取数量为所述依赖周期数的输出结果作为所述任务节点的输入信息,再执行所述任务链路图的预设任务流得到调度结果;
[0043]
按照调用顺序执行所有预设任务流以得到调度结果。
[0044]
本技术实施例还提供一种基于人工智能的任务流精准调度装置,所述装置包括:
[0045]
构建单元,用于构建每一个预设任务流的任务链路图,所述预设任务流包括多个任务节点,所述任务链路图包括所述预设任务的预设id、周期类型和任务节点的上下游关系;
[0046]
绘制单元,用于判断不同任务链路图中任意两个任务节点之间的依赖关系以绘制依赖图,所述依赖关系包括依赖任务节点和依赖周期数;
[0047]
监控单元,用于监控所有任务节点的执行状态以获取每一个任务节点的状态信息,所述任务节点的状态信息包括运行队列和运行周期数,所述运行队列包括不同运行周期下所述任务节点的输出结果;
[0048]
计算单元,用于基于所述状态信息、所述依赖图、所述周期类型和预设优先级计算
每一个任务链路图的调度优先级;
[0049]
调度单元,用于按照所述调度优先级从大到小的顺序调度任务链路图对应的预设任务流以获取调度结果。
[0050]
本技术实施例还提供一种电子设备,所述电子设备包括:
[0051]
存储器,存储至少一个指令;
[0052]
处理器,执行所述存储器中存储的指令以实现所述的基于人工智能的任务流精准调度方法。
[0053]
本技术实施例还提供一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一个指令,所述至少一个指令被电子设备中的处理器执行以实现所述的基于人工智能的任务流精准调度方法。
[0054]
综上,本技术能够将预设任务流以任务链路图的形式进行展示,同时根据不同任务链路图中任务节点的依赖信息构建依赖图,进一步监控每一个任务节点的状态信息,基于状态信息、依赖图、预设任务流的周期类型和等待时间等多方面因素计算每一个预设任务流的调度优先级,实现所有预设任务流的精准调度。
附图说明
[0055]
图1是本技术所涉及的基于人工智能的任务流精准调度方法的较佳实施例的流程图。
[0056]
图2是本技术所涉及的任务链路图的结构示意图。
[0057]
图3是本技术所涉及的依赖图的结构示意图。
[0058]
图4是本技术所涉及的基于人工智能的任务流精准调度装置的较佳实施例的功能模块图。
[0059]
图5是本技术所涉及的基于人工智能的任务流精准调度方法的较佳实施例的电子设备的结构示意图。
具体实施方式
[0060]
为了能够更清楚地理解本技术的目的、特征和优点,下面结合附图和具体实施例对本技术进行详细描述。需要说明的是,在不冲突的情况下,本技术的实施例及实施例中的特征可以相互结合。在下面的描述中阐述了很多具体细节以便于充分理解本技术,所述描述的实施例仅是本技术一部分实施例,而不是全部的实施例。
[0061]
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个所述特征。在本技术的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。
[0062]
除非另有定义,本文所使用的所有的技术和科学术语与属于本技术的技术领域的技术人员通常理解的含义相同。本文中在本技术的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本技术。本文所使用的术语“和/或”包括一个或多个相关的所列项目的任意的和所有的组合。
[0063]
本技术实施例提供一种基于人工智能的任务流精准调度方法,可应用于一个或者
多个电子设备中,电子设备是一种能够按照事先设定或存储的指令,自动进行数值计算和/或信息处理的设备,其硬件包括但不限于微处理器、专用集成电路(application specific integrated circuit,asic)、可编程门阵列(field-programmable gate array,fpga)、数字处理器(digital signal processor,dsp)、嵌入式设备等。
[0064]
电子设备可以是任何一种可与客户进行人机交互的电子产品,例如,个人计算机、平板电脑、智能手机、个人数字助理(personal digital assistant,pda)、游戏机、交互式网络电视(internet protocol television,iptv)、智能式穿戴式设备等。
[0065]
电子设备还可以包括网络设备和/或客户设备。其中,所述网络设备包括,但不限于单个网络服务器、多个网络服务器组成的服务器组或基于云计算(cloud computing)的由大量主机或网络服务器构成的云。
[0066]
电子设备所处的网络包括但不限于互联网、广域网、城域网、局域网、虚拟专用网络(virtual private network,vpn)等。
[0067]
如图1所示,是本技术基于人工智能的任务流精准调度方法的较佳实施例的流程图。根据不同的需求,该流程图中步骤的顺序可以改变,某些步骤可以省略。
[0068]
s10,构建每一个预设任务流的任务链路图,所述预设任务流包括多个任务节点,所述任务链路图包括所述预设任务的预设id、周期类型和任务节点的上下游关系。
[0069]
在一个可选的实施例中,针对业务系统的业务功能设置一个或多个预设任务流,每一个预设任务流均对应一个预设id,所述预设id为预设任务流的唯一标识;预设任务流是指为了实现具体的业务功能而将多个任务节点串联在一起形成的操作流程,所述任务流可以反应多个任务节点的上下游关系,只有当上游的任务节点结束后,才能开启下游的任务节点,所述预设任务流与业务功能一一对应,示例性的,针对用户注册这一业务功能,所述用户注册的预设任务流可以为“输入注册名
→
输入密码
→
确认密码
→
确认注册”,用户按照所述用户注册的预设任务流中的先后顺序执行相应的任务节点,即可实现用户注册这一业务功能,其中,输入注册名、输入密码、确认密码和确认注册均为任务节点。需要说明的是,不同预设任务流中可以包含相同的任务节点。
[0070]
该可选的实施例中,预设任务流与具体的业务功能息息相关,预设任务流的准确性直接影响业务系统的正常运行,故在任务流调度和日常维护中,需要对业务系统内的不同预设任务流针对不同用户分配不同的权限种类,防止预设任务流被篡改以影响业务系统的运行,所述权限种类包括查看、修改、调用等。需要说明的是,当有修权限的用户对预设任务流进行修改并测试完毕后,将修改后的预设任务流上传至分布式文件管理系统的指定目录中,所述分布式文件管理系统储存所有预设任务流以及修改过程中的产生的日志信息。
[0071]
该可选的实施例中,为了让用户直观的查看或修改预设任务流,同时为了方便后续对预设任务流的分析处理,进一步构建每一个预设任务流的任务链路图,所述任务链路图包括所述预设任务的预设id、周期类型和任务节点的上下游关系,所述周期类型反应完成一次所述预设任务所需要的时间,所述周期类型包括小时、天、周、月等等,所述任务链路图与所述预设任务流一一对应,以包含6个任务节点的周期类型为天的任务流为示例,所述任务链路图的结构示意图如图2所示。
[0072]
如此,能够得到每一个预设任务流的任务链路图,可以直观的展示预设任务流中多个任务节点的上下游关系,同时为后续预设任务流的精准调度提供数据基础。
[0073]
s11,判断不同任务链路图中任意两个任务节点之间的依赖关系以绘制依赖图,所述依赖关系包括依赖任务节点和依赖周期数。
[0074]
在一个可选的实施例中,得到每一个预设任务流的任务链路图之后,依据在不同任务链路图的任意两个任务节点之间的依赖关系得到依赖图,所述依赖图包括所有任务链路图之间任务节点的依赖关系,所述依赖关系包括依赖任务节点和依赖周期数,示例性的,若任务节点c需要任务节点a连续2个周期的输出结果作为输入信息,则所述任务节点c的依赖任务节点为所述任务节点a,且依赖周期数为2。
[0075]
在一个可选的实施例中,所述判断不同任务链路图中任意两个任务节点之间的依赖关系以绘制依赖图,所述依赖关系包括依赖任务节点和依赖周期数,包括:
[0076]
获取目标任务链路图中目标节点的输入信息作为目标输入,所述目标任务链路图为所有任务链路图中的任意一个,所述目标节点为所述目标任务链路图中所有任务节点中的任意一个;
[0077]
基于所述目标输入和所述目标任务链路图判断所述目标节点是否存在外部依赖,所述外部依赖是指所述目标输入中包括除目标任务链路图之外的任务节点的输出结果;
[0078]
若所述目标节点不存在外部依赖,则所述目标节点不存在依赖关系,若所述目标节点存在外部依赖,则基于所述目标输入在除所述目标任务链路图之外每一个任务链路图的所有任务节点中查询所述目标节点的依赖关系,所述依赖关系包括依赖任务节点和依赖周期数;
[0079]
当获取所述目标节点的依赖关系时,绘制一条从依赖任务节点指向所述目标节点的有向边并将所述依赖周期数作为所述有向边的边权值,得到初始依赖图;
[0080]
遍历所述目标任务链路图中所有任务节点以更新所述初始依赖图;
[0081]
遍历所有任务链路图不断更新所述初始依赖图,当遍历完所有任务链路图的任务节点时,停止所述初始依赖图的更新得到依赖图。
[0082]
需要说明的是,若任务节点的所有输入信息均来自于自身所属的任务链路图,即若任务节点不存在外部依赖,则认为所述任务节点不存在依赖关系。
[0083]
该可选的实施例中,所述基于所述目标输入和所述目标任务链路图判断所述目标节点是否存在外部依赖,所述外部依赖是指所述目标输入中包括除目标任务链路图之外的任务节点的输出结果,包括:
[0084]
在所述目标任务链路图中,将所述目标节点所有相邻的上游任务节点的输出结果作为所述目标节点的供给输入;
[0085]
对比所述目标节点的供给输入和目标输入以获取判断结果;
[0086]
若所述供给输入和所述目标输入相同,则说明所述目标任务链路图可以为所述目标节点提供所需要的输入信息,所述判断结果为所述目标节点不存在外部依赖;
[0087]
若所述供给输入和所述目标输入不相同,则说明所述目标任务链路图不能为所述目标节点提供所需要的输入信息,所述判断结果为所述目标节点存在外部依赖。
[0088]
示例性的,假设任务链路图仅包括第一任务链路图和第二任务链路图,且假设存在外部依赖的任务节点为所述第二任务链路图中的任务节点c和任务节点h,所述第一任务链路图和所述第二任务链路图参见图3;以目标节点为所述第二任务链路图中的任务节点c为示例,目标输入为所述任务节点c的输入信息:目标任务链路图中任务节点e的输出结果、
所述第一任务链路图中任务节点a连续2个周期的输出结果;由于目标节点存在外部依赖,故所述目标节点存在依赖关系;在所述第一任务链路图中的所有节点中查询到任务节点a,绘制从任务节点a指向所述目标节点的有向边ac,且有向边ac的边权值b(a,c)取值为2;遍历所有任务链路图的所有任务节点得到依赖图,所述依赖图的结构示意图如图3所示。
[0089]
如此,基于所有任务链路图得到依赖图,所述依赖图可以直观反应不同任务连路图中任意任务节点之间的依赖关系,为实现任务流精准调度提供数据基础。
[0090]
s12,监控所有任务节点的执行状态以获取每一个任务节点的状态信息,所述任务节点的状态信息包括运行队列和运行周期数,所述运行队列包括不同运行周期下所述任务节点的输出结果。
[0091]
在一个可选的实施例中,监控每一个任务链路图中所有任务节点的执行状态,所述任务节点的执行状态包括未开始、进行中和已完成三种;当任务节点的执行状态为已完成时,表示所述任务节点产生一个新的输出结果,将新的输出结果存入所述任务节点的运行队列中,同时将所述任务节点的运行周期数加一,将所述运行队列和所述运行周期数作为所述任务节点的状态信息,其中,所述运行队列中的输出结果是按照获取时间的先后顺序排列的;按照上述方法可以得到每一个任务链路图中所有任务节点的状态信息。
[0092]
需要说明的是,所述运行队列储存的输出结果的数量是固定的,且运行队列符合先进先出的原则,当新的输出结果存入任务队列时,将所述运行队列中最早存入的输出结果从所述运行队列中删除。
[0093]
该可选的实施例中,所述任务节点的执行状态包括未开始、进行中和已完成三种,所述监控所有任务节点的执行状态以获取每一个任务节点的状态信息之前,所述方法还包括:
[0094]
当任务节点的执行状态变更为进行中时,触发所述任务节点的计时器;
[0095]
依据所述计时器获取所述任务节点的执行状态为进行中的持续时间;
[0096]
对比所述持续时间和预设时间段以获取对比结果,若所述持续时间大于预设时间段,则说明所述任务节点执行任务超时,所述对比结果为异常节点,若所述持续时间不大于预设时间段,则所述对比结果为正常节点;
[0097]
若所述对比结果为异常节点,则依据所述任务节点所在任务链路图的预设优先级确定警示策略,并执行所述警示策略得到警示结果。
[0098]
其中,所述预设时间段为1分钟。
[0099]
该可选的实施例中,任务链路图的预设优先级可以反应不同应用场景下不同任务链路图的重要程度,在特定应用场景中,任务链路图越重要则所对应的预设优先级越大,同时,拥有权限的管理员可以修改不同任务链路图的预设优先级以适用不同的应用场景;针对任务链路图的预设优先级设置不同的警示策略,所述警示策略包括电话告警、邮件告警、内部沟通软件告警等;依据所述任务节点所在任务链路图的预设优先级确定警示策略,并执行所述警示策略得到警示结果,提醒工作人员对异常节点进行检查。
[0100]
如此,通过监控所有任务节点的执行状态得到每一个任务节点的状态信息,所述状态信息包括运行周期数和不同周期的输出结果,为实现任务流精准调度提供数据基础,同时,当任务节点出现异常时可及时发出警示,提醒工作人员进行检查。
[0101]
s13,基于所述状态信息、所述依赖图、所述周期类型和预设优先级计算每一个任
务链路图的调度优先级。
[0102]
在一个可选的实施例中,所述周期类型可以反应不同任务链路图的耗时信息,预设优先级可以反应不同应用场景下不同任务链路图的重要程度,预设优先级越大则任务链路图的调度优先级越大;所述依赖图可以反应不同任务链路图的任意任务节点之间的依赖关系,所述状态信息可以用来判断任务节点的运行周期数是否满足任务节点之间的依赖关系。
[0103]
该可选的实施例中,用户需要调用不同任务链路图以完成业务需求,在相同时刻会存在多种任务链路图等待被执行,为了实现任务流的精准调度,需要计算每一个任务链路图的调度优先级。
[0104]
该可选的实施例中,所述基于所述状态信息、所述依赖图、所述周期类型和预设优先级计算每一个任务链路图的调度优先级,包括:
[0105]
计算当前时刻和任务链路图的调用时刻的时间间隔作为每一个任务链路图的等待时间;
[0106]
基于所述周期类型和所述等待时间计算每一个任务链路图的初始优先级,所述初始优先级满足关系式:
[0107][0108]
其中,ri为任务链路图i的预设优先级,max(r)为预设优先级的最大值,di为任务链路图i的等待时间,所述等待时间的单位为秒;zi为依据任务链路图i周期类型获取的周期时间,所述周期时间的单位为秒;ri为任务链路图i的初始优先级;
[0109]
基于所述状态信息和所述依赖图对所述初始优先级进行调节以获取每一个任务链路图的调度优先级。
[0110]
其中,随着等待时间的增大,任务链路图的初始优先级也随着增大。
[0111]
该可选的实施例中,由于不同任务链路图中任务节点之间的依赖关系,存在依赖关系任务节点只有在依赖任务节点的输出结果满足依赖周期数时,存在依赖关系任务节点才能够获取所有输入信息。
[0112]
该可选的实施例中,所述基于所述状态信息和所述依赖图对所述初始优先级进行调节以获取每一个任务链路图的调度优先级包括:
[0113]
选取任意一个任务链路图作为待调节任务链路图;
[0114]
基于所述依赖图判断所述待调节任务链路图的所有任务节点是否存在依赖关系以获取判断结果;
[0115]
若所述待调节任务链路图的所有任务节点均不存在依赖关系,则所述判断结果为不需要调节,将所述待调节任务链路图的初始优先级作为调度优先级;
[0116]
若所述待调节任务链路图中至少有一个任务节点存在依赖关系,则所述判断结果为需要调节,储存所述待调节任务链路图中所有任务节点的依赖关系得到所述待调节任务链路图的依赖关系集合,每个依赖关系包括依赖任务节点和依赖周期数;
[0117]
基于所述状态信息、所述依赖关系集合和预设调节函数对所述待调节任务链路图的初始优先级进行调节以获取调度优先级;
[0118]
遍历所有任务链路图以获取每一个任务链路图的调度优先级。
[0119]
其中,所述预设调节函数满足关系式:
[0120][0121]
其中,n表示待调节任务链路图的依赖关系集合中依赖关系的数量,bj为依赖关系j中的依赖周期数,numj为所述依赖关系j中依赖任务节点的状态信息中的运行周期数;ri为待调节任务链路图的初始优先级,r
′i为待调节任务链路图的调度优先级,其中,f(x)为自定义函数,所述自定义函数满足关系式:其中,当的结果为n时,说明依赖任务节点的运行周期数满足依赖周期数。
[0122]
示例性的,以图3中第二任务链路图为示例,假设第二任务链路图的预设优先级为6,且预设优先级的最大值为10,由于第二任务链路图的周期类型为天,故所述第二任务链路图周期时间为86400秒,当等待时间为半天,即43200秒时,所述第二任务链路图的初始优先级如下:
[0123][0124]
进一步,由于第二任务链路图存在外部依赖,故获取所述第二任务链路图的依赖关系集合,所述依赖关系集合包括2个依赖关系:(a,2)、(d,3),在依赖关系(a,2)中,依赖任务节点为a且依赖周期数为2;假设任务节点a的状态信息中运行周期数为2,任务节点d的状态信息中运行周期数为2,则的结果为1,1不等于依赖关系的数量,则所述第二任务链路图的调度优先级为r
′i=0。
[0125]
如此,能够得到每一个任务链路图的调度优先级,所述调度优先级综合考虑了与应用场景相关的预设优先级、依赖关系和等待时间、周期类型等多方面因素,保证调度优先级的准确性。
[0126]
s14,按照所述调度优先级从大到小的顺序调度任务链路图对应的预设任务流以获取调度结果。
[0127]
在一个可选的实施例中,所述按照所述调度优先级从大到小的顺序调度任务链路图对应的预设任务流以获取调度结果包括:
[0128]
按照调度优先级从大到小的顺序执行任务链路图对应的预设任务流,所述任务链路图与预设任务流一一对应;
[0129]
若任务链路图中所有任务节点均不存在依赖关系,则直接执行所述任务链路图的预设任务流得到调度结果;
[0130]
若任务链路图中至少有一个任务节点存在依赖关系,则针对存在依赖关系的任务节点,获取所述依赖关系中的依赖任务节点的状态信息中的运行队列,同时获取所述依赖关系中的依赖周期数,从所述运行队列中按照获取时间从后到前的顺序提取数量为所述依赖周期数的输出结果作为所述任务节点的输入信息,再执行所述任务链路图的预设任务流得到调度结果;
[0131]
按照调用顺序执行所有预设任务流以得到调度结果。
[0132]
其中,相同调度优先级的多个预设任务流可以并行执行,以提高预设任务流的执行效率。
[0133]
该可选的实施例中,预设任务流的调度过程和预设任务流的修改、测试等流程是相互独立的,预设任务流的修改、测试等过程不会影响预设任务流的调度过程,可实现修改后的预设任务流的一键部署,保障满足业务需求的情况下提升预设任务流的开发效率。
[0134]
如此,基于调度优先级实现所有预设任务流的精准调度。
[0135]
由以上技术方案可以看出,本技术能够将预设任务流以任务链路图的形式进行展示,同时根据不同任务链路图中任务节点的依赖信息构建依赖图,进一步监控每一个任务节点的状态信息,基于状态信息、依赖图、预设任务流的周期类型和等待时间等多方面因素计算每一个预设任务流的调度优先级,实现所有预设任务流的精准调度。
[0136]
请参见图4,图4是本技术基于人工智能的任务流精准调度装置的较佳实施例的功能模块图。基于人工智能的任务流精准调度装置11包括构建单元110、绘制单元111、监控单元112、计算单元113、调度单元114。本技术所称的模块/单元是指一种能够被处理器13所执行,并且能够完成固定功能的一系列计算机可读指令段,其存储在存储器12中。在本实施例中,关于各模块/单元的功能将在后续的实施例中详述。
[0137]
在一个可选的实施例中,构建单元110用于构建每一个预设任务流的任务链路图,所述预设任务流包括多个任务节点,所述任务链路图包括所述预设任务的预设id、周期类型和任务节点的上下游关系。
[0138]
在一个可选的实施例中,针对业务系统的业务功能设置一个或多个预设任务流,每一个预设任务流均对应一个预设id,所述预设id为预设任务流的唯一标识;预设任务流是指为了实现具体的业务功能而将多个任务节点串联在一起形成的操作流程,所述任务流可以反应多个任务节点的上下游关系,只有当上游的任务节点结束后,才能开启下游的任务节点,所述预设任务流与业务功能一一对应,示例性的,针对用户注册这一业务功能,所述用户注册的预设任务流可以为“输入注册名
→
输入密码
→
确认密码
→
确认注册”,用户按照所述用户注册的预设任务流中的先后顺序执行相应的任务节点,即可实现用户注册这一业务功能,其中,输入注册名、输入密码、确认密码和确认注册均为任务节点。需要说明的是,不同预设任务流中可以包含相同的任务节点。
[0139]
该可选的实施例中,预设任务流与具体的业务功能息息相关,预设任务流的准确性直接影响业务系统的正常运行,故在任务流调度和日常维护中,需要对业务系统内的不同预设任务流针对不同用户分配不同的权限种类,防止预设任务流被篡改以影响业务系统的运行,所述权限种类包括查看、修改、调用等。需要说明的是,当有修权限的用户对预设任务流进行修改并测试完毕后,将修改后的预设任务流上传至分布式文件管理系统的指定目录中,所述分布式文件管理系统储存所有预设任务流以及修改过程中的产生的日志信息。
[0140]
该可选的实施例中,为了让用户直观的查看或修改预设任务流,同时为了方便后续对预设任务流的分析处理,进一步构建每一个预设任务流的任务链路图,所述任务链路图包括所述预设任务的预设id、周期类型和任务节点的上下游关系,所述周期类型反应完成一次所述预设任务所需要的时间,所述周期类型包括小时、天、周、月等等,所述任务链路图与所述预设任务流一一对应,以包含6个任务节点的周期类型为天的任务流为示例,所述
任务链路图的结构示意图如图2所示。
[0141]
在一个可选的实施例中,绘制单元111用于判断不同任务链路图中任意两个任务节点之间的依赖关系以绘制依赖图,所述依赖关系包括依赖任务节点和依赖周期数。
[0142]
在一个可选的实施例中,得到每一个预设任务流的任务链路图之后,依据在不同任务链路图的任意两个任务节点之间的依赖关系得到依赖图,所述依赖图包括所有任务链路图之间任务节点的依赖关系,所述依赖关系包括依赖任务节点和依赖周期数,示例性的,若任务节点c需要任务节点a连续2个周期的输出结果作为输入信息,则所述任务节点c的依赖任务节点为所述任务节点a,且依赖周期数为2。
[0143]
在一个可选的实施例中,所述判断不同任务链路图中任意两个任务节点之间的依赖关系以绘制依赖图,所述依赖关系包括依赖任务节点和依赖周期数,包括:
[0144]
获取目标任务链路图中目标节点的输入信息作为目标输入,所述目标任务链路图为所有任务链路图中的任意一个,所述目标节点为所述目标任务链路图中所有任务节点中的任意一个;
[0145]
基于所述目标输入和所述目标任务链路图判断所述目标节点是否存在外部依赖,所述外部依赖是指所述目标输入中包括除目标任务链路图之外的任务节点的输出结果;
[0146]
若所述目标节点不存在外部依赖,则所述目标节点不存在依赖关系,若所述目标节点存在外部依赖,则基于所述目标输入在除所述目标任务链路图之外每一个任务链路图的所有任务节点中查询所述目标节点的依赖关系,所述依赖关系包括依赖任务节点和依赖周期数;
[0147]
当获取所述目标节点的依赖关系时,绘制一条从依赖任务节点指向所述目标节点的有向边并将所述依赖周期数作为所述有向边的边权值,得到初始依赖图;
[0148]
遍历所述目标任务链路图中所有任务节点以更新所述初始依赖图;
[0149]
遍历所有任务链路图不断更新所述初始依赖图,当遍历完所有任务链路图的任务节点时,停止所述初始依赖图的更新得到依赖图。
[0150]
需要说明的是,若任务节点的所有输入信息均来自于自身所属的任务链路图,即若任务节点不存在外部依赖,则认为所述任务节点不存在依赖关系。
[0151]
该可选的实施例中,所述基于所述目标输入和所述目标任务链路图判断所述目标节点是否存在外部依赖,所述外部依赖是指所述目标输入中包括除目标任务链路图之外的任务节点的输出结果,包括:
[0152]
在所述目标任务链路图中,将所述目标节点所有相邻的上游任务节点的输出结果作为所述目标节点的供给输入;
[0153]
对比所述目标节点的供给输入和目标输入以获取判断结果;
[0154]
若所述供给输入和所述目标输入相同,则说明所述目标任务链路图可以为所述目标节点提供所需要的输入信息,所述判断结果为所述目标节点不存在外部依赖;
[0155]
若所述供给输入和所述目标输入不相同,则说明所述目标任务链路图不能为所述目标节点提供所需要的输入信息,所述判断结果为所述目标节点存在外部依赖。
[0156]
示例性的,假设任务链路图仅包括第一任务链路图和第二任务链路图,且假设存在外部依赖的任务节点为所述第二任务链路图中的任务节点c和任务节点h,所述第一任务链路图和所述第二任务链路图参见图3;以目标节点为所述第二任务链路图中的任务节点c
为示例,目标输入为所述任务节点c的输入信息:目标任务链路图中任务节点e的输出结果、所述第一任务链路图中任务节点a连续2个周期的输出结果;由于目标节点存在外部依赖,故所述目标节点存在依赖关系;在所述第一任务链路图中的所有节点中查询到任务节点a,绘制从任务节点a指向所述目标节点的有向边ac,且有向边ac的边权值b(a,c)取值为2;遍历所有任务链路图的所有任务节点得到依赖图,所述依赖图的结构示意图如图3所示。
[0157]
在一个可选的实施例中,监控单元112用于监控所有任务节点的执行状态以获取每一个任务节点的状态信息,所述任务节点的状态信息包括运行队列和运行周期数,所述运行队列包括不同运行周期下所述任务节点的输出结果。
[0158]
在一个可选的实施例中,监控每一个任务链路图中所有任务节点的执行状态,所述任务节点的执行状态包括未开始、进行中和已完成三种;当任务节点的执行状态为已完成时,表示所述任务节点产生一个新的输出结果,将新的输出结果存入所述任务节点的运行队列中,同时将所述任务节点的运行周期数加一,将所述运行队列和所述运行周期数作为所述任务节点的状态信息,其中,所述运行队列中的输出结果是按照获取时间的先后顺序排列的;按照上述方法可以得到每一个任务链路图中所有任务节点的状态信息。
[0159]
需要说明的是,所述运行队列储存的输出结果的数量是固定的,且运行队列符合先进先出的原则,当新的输出结果存入任务队列时,将所述运行队列中最早存入的输出结果从所述运行队列中删除。
[0160]
该可选的实施例中,所述任务节点的执行状态包括未开始、进行中和已完成三种,所述监控所有任务节点的执行状态以获取每一个任务节点的状态信息之前,所述方法还包括:
[0161]
当任务节点的执行状态变更为进行中时,触发所述任务节点的计时器;
[0162]
依据所述计时器获取所述任务节点的执行状态为进行中的持续时间;
[0163]
对比所述持续时间和预设时间段以获取对比结果,若所述持续时间大于预设时间段,则说明所述任务节点执行任务超时,所述对比结果为异常节点,若所述持续时间不大于预设时间段,则所述对比结果为正常节点;
[0164]
若所述对比结果为异常节点,则依据所述任务节点所在任务链路图的预设优先级确定警示策略,并执行所述警示策略得到警示结果。
[0165]
其中,所述预设时间段为1分钟。
[0166]
该可选的实施例中,任务链路图的预设优先级可以反应不同应用场景下不同任务链路图的重要程度,在特定应用场景中,任务链路图越重要则所对应的预设优先级越大,同时,拥有权限的管理员可以修改不同任务链路图的预设优先级以适用不同的应用场景;针对任务链路图的预设优先级设置不同的警示策略,所述警示策略包括电话告警、邮件告警、内部沟通软件告警等;依据所述任务节点所在任务链路图的预设优先级确定警示策略,并执行所述警示策略得到警示结果,提醒工作人员对异常节点进行检查。
[0167]
在一个可选的实施例中,计算单元113用于基于所述状态信息、所述依赖图、所述周期类型和预设优先级计算每一个任务链路图的调度优先级。
[0168]
在一个可选的实施例中,所述周期类型可以反应不同任务链路图的耗时信息,预设优先级可以反应不同应用场景下不同任务链路图的重要程度,预设优先级越大则任务链路图的调度优先级越大;所述依赖图可以反应不同任务链路图的任意任务节点之间的依赖
关系,所述状态信息可以用来判断任务节点的运行周期数是否满足任务节点之间的依赖关系。
[0169]
该可选的实施例中,用户需要调用不同任务链路图以完成业务需求,在相同时刻会存在多种任务链路图等待被执行,为了实现任务流的精准调度,需要计算每一个任务链路图的调度优先级。
[0170]
该可选的实施例中,所述基于所述状态信息、所述依赖图、所述周期类型和预设优先级计算每一个任务链路图的调度优先级,包括:
[0171]
计算当前时刻和任务链路图的调用时刻的时间间隔作为每一个任务链路图的等待时间;
[0172]
基于所述周期类型和所述等待时间计算每一个任务链路图的初始优先级,所述初始优先级满足关系式:
[0173][0174]
其中,ri为任务链路图i的预设优先级,max(r)为预设优先级的最大值,di为任务链路图i的等待时间,所述等待时间的单位为秒;zi为依据任务链路图i周期类型获取的周期时间,所述周期时间的单位为秒;ri为任务链路图i的初始优先级;
[0175]
基于所述状态信息和所述依赖图对所述初始优先级进行调节以获取每一个任务链路图的调度优先级。
[0176]
其中,随着等待时间的增大,任务链路图的初始优先级也随着增大。
[0177]
该可选的实施例中,由于不同任务链路图中任务节点之间的依赖关系,存在依赖关系任务节点只有在依赖任务节点的输出结果满足依赖周期数时,存在依赖关系任务节点才能够获取所有输入信息。
[0178]
该可选的实施例中,所述基于所述状态信息和所述依赖图对所述初始优先级进行调节以获取每一个任务链路图的调度优先级包括:
[0179]
选取任意一个任务链路图作为待调节任务链路图;
[0180]
基于所述依赖图判断所述待调节任务链路图的所有任务节点是否存在依赖关系以获取判断结果;
[0181]
若所述待调节任务链路图的所有任务节点均不存在依赖关系,则所述判断结果为不需要调节,将所述待调节任务链路图的初始优先级作为调度优先级;
[0182]
若所述待调节任务链路图中至少有一个任务节点存在依赖关系,则所述判断结果为需要调节,储存所述待调节任务链路图中所有任务节点的依赖关系得到所述待调节任务链路图的依赖关系集合,每个依赖关系包括依赖任务节点和依赖周期数;
[0183]
基于所述状态信息、所述依赖关系集合和预设调节函数对所述待调节任务链路图的初始优先级进行调节以获取调度优先级;
[0184]
遍历所有任务链路图以获取每一个任务链路图的调度优先级。
[0185]
其中,所述预设调节函数满足关系式:
[0186][0187]
其中,n表示待调节任务链路图的依赖关系集合中依赖关系的数量,bj为依赖关系j中的依赖周期数,numj为所述依赖关系j中依赖任务节点的状态信息中的运行周期数;ri为待调节任务链路图的初始优先级,r
′i为待调节任务链路图的调度优先级,其中,f(x)为自定义函数,所述自定义函数满足关系式:其中,当的结果为n时,说明依赖任务节点的运行周期数满足依赖周期数。
[0188]
示例性的,以图3中第二任务链路图为示例,假设第二任务链路图的预设优先级为6,且预设优先级的最大值为10,由于第二任务链路图的周期类型为天,故所述第二任务链路图周期时间为86400秒,当等待时间为半天,即43200秒时,所述第二任务链路图的初始优先级如下:
[0189][0190]
进一步,由于第二任务链路图存在外部依赖,故获取所述第二任务链路图的依赖关系集合,所述依赖关系集合包括2个依赖关系:(a,2)、(d,3),在依赖关系(a,2)中,依赖任务节点为a且依赖周期数为2;假设任务节点a的状态信息中运行周期数为2,任务节点d的状态信息中运行周期数为2,则的结果为1,1不等于依赖关系的数量,则所述第二任务链路图的调度优先级为r
′i=0。
[0191]
在一个可选的实施例中,调度单元114用于按照所述调度优先级从大到小的顺序调度任务链路图对应的预设任务流以获取调度结果。
[0192]
在一个可选的实施例中,所述按照所述调度优先级从大到小的顺序调度任务链路图对应的预设任务流以获取调度结果包括:
[0193]
按照调度优先级从大到小的顺序执行任务链路图对应的预设任务流,所述任务链路图与预设任务流一一对应;
[0194]
若任务链路图中所有任务节点均不存在依赖关系,则直接执行所述任务链路图的预设任务流得到调度结果;
[0195]
若任务链路图中至少有一个任务节点存在依赖关系,则针对存在依赖关系的任务节点,获取所述依赖关系中的依赖任务节点的状态信息中的运行队列,同时获取所述依赖关系中的依赖周期数,从所述运行队列中按照获取时间从后到前的顺序提取数量为所述依赖周期数的输出结果作为所述任务节点的输入信息,再执行所述任务链路图的预设任务流得到调度结果;
[0196]
按照调用顺序执行所有预设任务流以得到调度结果。
[0197]
其中,相同调度优先级的多个预设任务流可以并行执行,以提高预设任务流的执行效率。
[0198]
该可选的实施例中,预设任务流的调度过程和预设任务流的修改、测试等流程是相互独立的,预设任务流的修改、测试等过程不会影响预设任务流的调度过程,可实现修改后的预设任务流的一键部署,保障满足业务需求的情况下提升预设任务流的开发效率。
[0199]
由以上技术方案可以看出,本技术能够将预设任务流以任务链路图的形式进行展示,同时根据不同任务链路图中任务节点的依赖信息构建依赖图,进一步监控每一个任务节点的状态信息,基于状态信息、依赖图、预设任务流的周期类型和等待时间等多方面因素计算每一个预设任务流的调度优先级,实现所有预设任务流的精准调度。
[0200]
请参见图5,是本技术实施例提供的一种电子设备的结构示意图。电子设备1包括存储器12和处理器13。存储器12用于存储计算机可读指令,处理器13用执行所述储器中存储的计算机可读指令以实现上述任一实施例所述的基于人工智能的任务流精准调度方法。
[0201]
在一个可选的实施例中,电子设备1还包括总线、存储在所述存储器12中并可在所述处理器13上运行的计算机程序,例如基于人工智能的任务流精准调度程序。
[0202]
图5仅示出了具有存储器12和处理器13的电子设备1,本领域技术人员可以理解的是,图5示出的结构并不构成对电子设备1的限定,可以包括比图示更少或者更多的部件,或者组合某些部件,或者不同的部件布置。
[0203]
结合图1,电子设备1中的所述存储器12存储多个计算机可读指令以实现一种基于人工智能的任务流精准调度方法,所述处理器13可执行所述多个指令从而实现:
[0204]
构建每一个预设任务流的任务链路图,所述预设任务流包括多个任务节点,所述任务链路图包括所述预设任务的预设id、周期类型和任务节点的上下游关系;
[0205]
判断不同任务链路图中任意两个任务节点之间的依赖关系以绘制依赖图,所述依赖关系包括依赖任务节点和依赖周期数;
[0206]
监控所有任务节点的执行状态以获取每一个任务节点的状态信息,所述任务节点的状态信息包括运行队列和运行周期数,所述运行队列包括不同运行周期下所述任务节点的输出结果;
[0207]
基于所述状态信息、所述依赖图、所述周期类型和预设优先级计算每一个任务链路图的调度优先级;
[0208]
按照所述调度优先级从大到小的顺序调度任务链路图对应的预设任务流以获取调度结果。
[0209]
具体地,所述处理器13对上述指令的具体实现方法可参考图1对应实施例中相关步骤的描述,在此不赘述。
[0210]
本领域技术人员可以理解,所述示意图仅仅是电子设备1的示例,并不构成对电子设备1的限定,电子设备1可以是总线型结构,也可以是星形结构,电子设备1还可以包括比图示更多或更少的其他硬件或者软件,或者不同的部件布置,例如电子设备1还可以包括输入输出设备、网络接入设备等。
[0211]
需要说明的是,电子设备1仅为举例,其他现有的或今后可能出现的电子产品如可适应于本技术,也应包含在本技术的保护范围以内,并以引用方式包含于此。
[0212]
其中,存储器12至少包括一种类型的可读存储介质,所述可读存储介质可以是非易失性的,也可以是易失性的。所述可读存储介质包括闪存、移动硬盘、多媒体卡、卡型存储器(例如:sd或dx存储器等)、磁性存储器、磁盘、光盘等。存储器12在一些实施例中可以是电
子设备1的内部存储单元,例如该电子设备1的移动硬盘。存储器12在另一些实施例中也可以是电子设备1的外部存储设备,例如电子设备1上配备的插接式移动硬盘、智能存储卡(smart media card,smc)、安全数字(secure digital,sd)卡、闪存卡(flash card)等。存储器12不仅可以用于存储安装于电子设备1的应用软件及各类数据,例如基于人工智能的任务流精准调度程序的代码等,还可以用于暂时地存储已经输出或者将要输出的数据。
[0213]
处理器13在一些实施例中可以由集成电路组成,例如可以由单个封装的集成电路所组成,也可以是由多个相同功能或不同功能封装的集成电路所组成,包括一个或者多个中央处理器(central processing unit,cpu)、微处理器、数字处理芯片、图形处理器及各种控制芯片的组合等。处理器13是电子设备1的控制核心(control unit),利用各种接口和线路连接整个电子设备1的各个部件,通过运行或执行存储在所述存储器12内的程序或者模块(例如执行基于人工智能的任务流精准调度程序等),以及调用存储在所述存储器12内的数据,以执行电子设备1的各种功能和处理数据。
[0214]
所述处理器13执行所述电子设备1的操作系统以及安装的各类应用程序。所述处理器13执行所述应用程序以实现上述各个基于人工智能的任务流精准调度方法实施例中的步骤,例如图1所示的步骤。
[0215]
示例性的,所述计算机程序可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器12中,并由所述处理器13执行,以完成本技术。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机可读指令段,该指令段用于描述所述计算机程序在电子设备1中的执行过程。例如,所述计算机程序可以被分割成构建单元110、绘制单元111、监控单元112、计算单元113、调度单元114。
[0216]
上述以软件功能模块的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能模块存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、计算机设备,或者网络设备等)或处理器(processor)执行本技术各个实施例所述的基于人工智能的任务流精准调度方法的部分。
[0217]
电子设备1集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指示相关的硬件设备来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。
[0218]
其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(rom,read-only memory)、随机存储器及其他存储器等。
[0219]
进一步地,计算机可读存储介质可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序等;存储数据区可存储根据区块链节点的使用所创建的数据等。
[0220]
本技术所指区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验
证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层等。
[0221]
总线可以是外设部件互连标准(peripheral component interconnect,简称pci)总线或扩展工业标准结构(extended industry standard architecture,简称eisa)总线等。该总线可以分为地址总线、数据总线、控制总线等。为便于表示,在图5中仅用一根箭头表示,但并不表示仅有一根总线或一种类型的总线。所述总线被设置为实现所述存储器12以及至少一个处理器13等之间的连接通信。
[0222]
本技术实施例还提供一种计算机可读存储介质(图未示),计算机可读存储介质中存储有计算机可读指令,计算机可读指令被电子设备中的处理器执行以实现上述任一实施例所述的基于人工智能的任务流精准调度方法。
[0223]
在本技术所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
[0224]
所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
[0225]
另外,在本技术各个实施例中的各功能模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能模块的形式实现。
[0226]
此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。说明书陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第一、第二等词语用来表示名称,而并不表示任何特定的顺序。
[0227]
最后应说明的是,以上实施例仅用以说明本技术的技术方案而非限制,尽管参照较佳实施例对本技术进行了详细说明,本领域的普通技术人员应当理解,可以对本技术的技术方案进行修改或等同替换,而不脱离本技术技术方案的精神和范围。