资源调度方法、装置及系统与流程

文档序号:24642382发布日期:2021-04-13 13:44阅读:72来源:国知局
资源调度方法、装置及系统与流程

1.本发明涉及通信技术领域,尤其是涉及一种资源调度方法、装置及系统。


背景技术:

2.5g新一代网络引入了sdn(software defined network,软件定义网络)、nfv(network function virtualization,即网络功能虚拟化)或云的特性,网络对象更加多样性,能力更加的精细化。面向用户按需使用的5g网络,应对用户需求的多样性,对5g的网络快速组合能力提出了更高的要求。


技术实现要素:

3.本发明提供了一种资源调度方法、装置及系统,可以提高资源调度的效率,提升组网速度。
4.第一方面,本发明实施例提供了一种资源调度方法,该方法包括:获取任务列表;所述任务列表用于确定待处理资源的调度次序;所述调度次序包括并行调用和/或串行调用;收到启动指令时,按照所述任务列表触发多个执行引擎调用目标资源;每个所述执行引擎调用目标资源时,对被调用的目标资源进行加锁处理。
5.第二方面,本发明实施例还提供一种资源调度装置,该装置包括:获取模块,用于获取任务列表;所述任务列表用于确定待处理资源的调度次序;所述调度次序包括并行调用和/或串行调用;调度模块,用于收到启动指令时,按照所述任务列表触发多个执行引擎调用目标资源;每个所述执行引擎调用目标资源时,对被调用的目标资源进行加锁处理。
6.第三方面,本发明实施例还提供一种资源调度系统,包括上述资源调度装置。
7.第四方面,本发明实施例还提供一种计算机设备,包括存储器、处理器,所述存储器中存储有可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述资源调度方法。
8.第五方面,本发明实施例还提供一种具有处理器可执行的非易失的程序代码的计算机可读介质,所述程序代码使所述处理器执行上述资源调度方法。
9.本发明实施例带来了以下有益效果:本发明实施例提供了一种资源调度方案,该方案首先获取任务列表,任务列表中包括待处理资源的调度次序,调度次序可以包括并行调用或串行调用;在收到启动指令时,按照任务列表触发多个执行引擎按照调度次序并行或串行调用目标资源,使用多个执行引擎进行目标资源的调用,可以提高资源调度的处理速度,另外,通过对每个被执行引擎调用的目标资源进行加锁处理,可以防止多个执行引擎对目标资源重复调用。本发明实施例可以提高资源调度的效率。
10.本发明的其他特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
11.为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合
所附附图,作详细说明如下。
附图说明
12.为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
13.图1为本发明实施例提供的资源调度方法流程图;
14.图2为本发明实施例提供的资源调度方法实施流程示意图;
15.图3为本发明实施例提供的一种资源调度装置结构框图;
16.图4为本发明实施例提供的另一种资源调度装置结构框图;
17.图5为本发明实施例提供的另一种资源调度装置结构框图;
18.图6为本发明实施例提供的计算机设备结构框图。
具体实施方式
19.为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
20.目前,按天上线业务是5g时代下竞争的关键,而传统的资源开通方式已经无法满足5g业务要求。速组网,灵活编排,拉平网络差异性,降低网络的连接复杂度,通过开放的api(application programming interface,应用程序编程接口)体系,实现灵活编排。这些是5g时代对电信组网的技术要求。市面上存在的流程执行引擎基本属于办公系统,无法满足sdn控制器自动开通实际场景。
21.基于此,本发明实施例提供的一种资源调度方法、装置及系统,通过编排sdn控制器资源流程图,生成有向无环图,对有向无环图进行遍历拆分,生成任务列表,通过任务队列加载到执行引擎,调度引擎按照任务串行或并行的依赖关系触发任务,次序调用目标资源,可以提高开通流程执行效率,可以执行自定义类型的任务。
22.为便于对本实施例进行理解,首先对本发明实施例所公开的一种资源调度方法进行详细介绍。
23.本发明实施例提供了一种资源调度方法,参见图1所示的一种资源调度方法流程图,该方法包括以下步骤:
24.步骤s102,获取任务列表。
25.在本发明实施例中,任务列表用于确定待处理资源的调度次序,待处理资源可以是sdn控制器资源,也可以是nfv资源,也可以是云资源。调度次序是调用的先后顺序。
26.需要说明的是,任务列表中,包括例如,任务id、上个任务id,下个任务id,任务为并行调用或串行调用等基本信息。其中,并行调用表示多个任务需要同时处理,例如可以是一次同时调用多个资源,串行调用表示多个任务需要按照先后顺序进行处理,例如可以是先后调用多个资源。
27.步骤s104,收到启动指令时,按照任务列表触发多个执行引擎调用目标资源;每个执行引擎调用目标资源时,对被调用的目标资源进行加锁处理。
28.在本发明实施例中,启动指令由第三方系统发出,接收到启动指令时,按照任务列表触发多个执行引擎调用目标资源,例如,任务列表中,第一个任务为并行调用多个资源,那么触发多个执行引擎,使每个执行引擎调用一个目标资源;任务列表中,第一个任务为串行调用,那么触发一个执行引擎调用该任务,再触发第二个执行引擎调用下一个任务。使用多个执行引擎进行目标资源的调用,可以大大增加资源调度的效率,增加组网速度。
29.需要说明的是,为了防止其他执行引擎重复调用,每个执行引擎调用目标资源时,对该目标资源进行加锁处理。加锁处理是对目标资源添加标识,以使其他执行引擎无法再对该目标资源进行调用,提高资源调用的效率。
30.另外需要说明的是,在本发明实施例中,多个执行引擎可以部署在同一个主机上,也可以部署在不同的主机上,通过负载算法把任务分摊到各个主机,可以将负载由单个节点转移到多个,从而提高效率,避免由于单个节点失效而使整个系统崩溃的危险。
31.本发明实施例提供了一种资源调度方案,该方案首先获取任务列表,任务列表中包括待处理资源的调度次序,调度次序包括并行调用或串行调用;在收到启动指令时,按照任务列表触发多个执行引擎按照调度次序并行或串行调用目标资源,使用多个执行引擎进行目标资源的调用,可以提高资源调度的处理速度,另外,通过对每个被执行引擎调用的目标资源进行加锁处理,可以防止多个执行引擎对目标资源重复调用。本发明实施例可以提高资源调度的效率。
32.考虑到为了得到更加简洁的任务列表,获取任务列表之前,还可以进行如下步骤:
33.获取有向无环图,有向无环图根据待处理资源之间的依赖关系得到;获取任务列表,包括:对有向无环图进行遍历拆分,得到任务列表。
34.在本发明实施例中,预先通过编排sdn控制器资源流程图,例如,可以基于业务对象和业务对象下api接口信息进行编排,生成有向无环图,经过对有向无环图遍历拆分,得到的任务列表,避免了对待处理资源的多次调用,从而提供更简洁的资源调度次序,以提高资源调度的效率。通过预先生成有向无环图,可以执行自定义类型的任务,通过继承基础抽象任务,可以实现具体新的业务逻辑。
35.为了保证资源调度过程的稳定性,资源调度工作的持续有效进行,按照任务列表触发多个执行引擎调用目标资源,可以按照如下步骤执行:
36.根据任务列表触发第一执行引擎,以使第一执行引擎按照任务列表调用目标资源;第一执行引擎是执行引擎中的任意一个或多个;当每个第一执行引擎同时处理的目标资源数量达到第一预设值时,触发第二执行引擎,以使第二执行引擎按照任务列表调用目标资源;第二执行引擎为执行引擎中除第一执行引擎外的空闲引擎;第二执行引擎与第一执行引擎的功能相同。
37.在本发明实施例中,根据任务列表中的任务调用执行引擎,即可以根据要执行的任务大小确定第一执行引擎的数量。第一执行引擎是多个执行引擎中的任一个或多个,当任务列表中的目标资源为并行调用,则第一执行引擎包括多个执行引擎,当任务列表中的目标资源为串行调用,则第一执行引擎包括一个执行引擎。第一预设值是根据服务器性能和任务列表的数据量设置的阈值,用于限定每个第一执行引擎同时处理的目标资源数量,
如果同时处理的目标资源数量达到该阈值,触发第二执行引擎,从而第二执行引擎与第一执行引擎同时进行资源的调用工作。其中,第二执行引擎是当前系统中的空闲引擎,即未执行资源调度任务的执行引擎。
38.需要说明的是,可以对每个第一执行引擎设置一个第一预设值,不同的第一执行引擎的第一预设值的大小可以不同,也可以相同,当任意一个执行引擎同时处理的目标资源数量达到该第一预设值时,触发第二执行引擎;也可以对多个第一执行引擎设置一个共同的阈值,当所有第一执行引擎同时处理的目标资源数量加在一起,达到该阈值时,触发第二执行引擎,具体设置方法可以根据实际需求进行选择,本发明实施例对此不作具体限定。
39.考虑到为了调节多个执行引擎间的协同关系,该方法还包括如下步骤:
40.当每个第一执行引擎同时处理的目标资源数量达到第一预设值,且每个第二执行引擎同时处理的目标资源数量达到第二预设值时,触发第三执行引擎,以使第三执行引擎按照任务列表调用目标资源;第三执行引擎为执行引擎中除第一执行引擎和第二执行引擎外的空闲引擎;第三执行引擎与第二执行引擎的功能相同。
41.在本发明实施例中,系统中可存在多个执行引擎,根据正在执行资源调度任务的第一执行引擎和第二执行引擎的工作状态,确定第三执行引擎的触发时机,第三执行引擎是未在执行资源调度任务的引擎中的任一个或多个引擎。第一预设值和第二预设值的实际值可以相同或不同,具体根据实际需求进行设置,本发明实施例不作具体限定。
42.需要说明的是,如果第一引擎、第二引擎和第三引擎处理的任务量都达到预设值,那么触发一个新的引擎,具体步骤,在此不再赘述。通过多个引擎协同工作,可以提高资源调度的效率。
43.考虑到待处理资源数据量可能较大,系统中当前存在的执行引擎数量不足以处理待处理资源,该方法还包括以下步骤:
44.当每个第一执行引擎同时处理的目标资源数量达到第一预设值,且每个第二执行引擎同时处理的目标资源数量达到第二预设值时,添加第四执行引擎,以使第四执行引擎按照任务列表调用目标资源;第四执行引擎与第二执行引擎的功能相同。
45.在本发明实施例中,当每个第一执行引擎同时处理的目标资源数量为第一预设值,且每个第二执行引擎同时处理的目标资源数量为第二预设值时,可以等待第一执行引擎和第二执行引擎任务完成后再执行新的任务,也可以在系统中添加第四执行引擎,以提高目标资源的处理效率。其中,第四执行引擎可以通过容器重新生成,也可以通过复制现有的第一执行引擎或第二执行引擎或其他现有引擎得到。
46.为了保证资源调度过程的顺利进行,该方法还包括如下步骤:
47.获取注册中心监听的执行引擎心跳信息;若预设时长内被监听的执行引擎无心跳信息,停止被监听的执行引擎对目标资源的调用,并对被停止调用的目标资源进行释放锁处理。
48.在本发明实施例中,预设时长可以根据实际需要进行设置,例如,可以设置为5秒,本发明实施例对此不作具体限定。通过注册中心监听执行引擎心跳,当5秒无心跳的时候,停止该执行引擎的工作,并将该引擎对应的目标资源解锁,以便于其他执行引擎可以继续调用该目标资源。通过监听执行引擎的心跳,判断执行引擎的状态,进而确定是否要停止该执行引擎的使用,是否对目标资源进行释放锁处理。
49.参见图2所示的资源调度方法实施流程示意图,一个可能的实施例包括如下步骤:
50.1、通过编排sdn控制器资源流程图,生成有向无环图。
51.2、提交有向无环图文件到master服务,master服务有向无环图进行遍历拆分,生成任务列表。并同步到db库。
52.3、提交任务列表到任务队列中,队列任务加载到执行引擎,即任务调度系统。任务过多,缓存到队列中。调度引擎按照任务串行或并行的依赖关系触发任务,次序调用sdn控制器资源。
53.4、调用流程和触发任务时候,对该流程和任务进行加锁,防止其他执行引擎重复调用。
54.5、master服务通过注册中心监听执行引擎心跳,当5秒无心跳的时候,kill掉该任务,并释放锁。
55.6、master服务通过监听数据库流程任务列表状态,反应到监控页面。
56.本发明实施例通过编排sdn控制器资源流程图,生成有向无环图。master服务对有向无环图进行遍历拆分,生成任务列表,通过任务队列加载到执行引擎,调度引擎按照任务串行或并行的依赖关系触发任务,次序调用sdn控制器资源。通过注册中心监听最终结果,并反馈给master服务。
57.本发明实施例提供了一种资源调度方案,该方案通过多执行引擎协同执行sdn控制器有向无环图流程,提高开通流程执行效率,可以执行自定义类型的任务。通过流程和任务的各个服务器的分摊,降低了对硬件规格的要求。从目前的效果看,可以将分布在各处的资源综合利用,可以将负载由单个节点转移到多个,从而提高效率,避免由于单个节点失效而使整个系统崩溃的危险。
58.本发明实施例还提供一种资源调度装置,参见图3所示的一种资源调度装置结构框图,该装置包括:
59.获取模块31,用于获取任务列表;任务列表用于确定待处理资源的调度次序;调度次序包括并行调用和/或串行调用;调度模块32,用于收到启动指令时,按照任务列表触发多个执行引擎调用目标资源;每个执行引擎调用目标资源时,对被调用的目标资源进行加锁处理。
60.在一个实施例中,参见图4所示的另一种资源调度装置结构框图,该装置还包括:关系模块33,用于:获取有向无环图,有向无环图根据待处理资源之间的依赖关系得到;获取任务列表,包括:对有向无环图进行遍历拆分,得到任务列表。
61.在一个实施例中,调度模块,具体用于:根据任务列表触发第一执行引擎,以使第一执行引擎按照任务列表调用目标资源;第一执行引擎是执行引擎中的任意一个或多个;当每个第一执行引擎同时处理的目标资源数量达到第一预设值时,触发第二执行引擎,以使第二执行引擎按照任务列表调用目标资源;第二执行引擎为执行引擎中除第一执行引擎外的空闲引擎;第二执行引擎与第一执行引擎的功能相同。
62.在一个实施例中,调度模块,具体用于:当每个第一执行引擎同时处理的目标资源数量达到第一预设值,且每个第二执行引擎同时处理的目标资源数量达到第二预设值时,触发第三执行引擎,以使第三执行引擎按照任务列表调用目标资源;第三执行引擎为执行引擎中除第一执行引擎和第二执行引擎外的空闲引擎;第三执行引擎与第二执行引擎的功
能相同。
63.在一个实施例中,调度模块,具体用于:当每个第一执行引擎同时处理的目标资源数量达到第一预设值,且每个第二执行引擎同时处理的目标资源数量达到第二预设值时,添加第三执行引擎,以使第三执行引擎按照任务列表调用目标资源;第三执行引擎与第二执行引擎的功能相同。
64.在一个实施例中,参见图5所示的另一种资源调度装置结构框图,该装置还包括:监听模块34,用于:获取注册中心监听的执行引擎心跳信息;若预设时长内被监听的执行引擎无心跳信息,停止被监听的执行引擎对目标资源的调用,并对被停止调用的目标资源进行释放锁处理。
65.本发明实施例还提供一种资源调度系统,包括上述任一种可能的资源调度装置。
66.本发明实施例还提供一种计算机设备,参见图6所示的计算机设备结构示意框图,该计算机设备包括存储器61、处理器62,存储器中存储有可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述任一种方法的步骤。
67.所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的计算机设备的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述
68.本发明实施例还提供一种具有处理器可执行的非易失的程序代码的计算机可读介质,程序代码使处理器执行上述任一种方法的步骤。
69.本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
70.本发明是参照根据本发明实施例的方法和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
71.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
72.这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
73.最后应说明的是:以上所述实施例,仅为本发明的具体实施方式,用以说明本发明的技术方案,而非对其限制,本发明的保护范围并不局限于此,尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员
在本发明揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1