一种任务分布式调度方法和系统的制作方法

文档序号:7794595阅读:8717来源:国知局
一种任务分布式调度方法和系统的制作方法
【专利摘要】本申请提供了一种任务分布式调度方法,包括:调度器获取客户群发送的事件请求;所述调度器获取所述事件请求中的所有任务;所述调度器检测任务群中所有任务节点工作状态;所述调度器根据预置策略将任务分配到不同工作状态的任务节点。本申请还提供了对应的系统。本申请通过采用调度器分解事件请求获得任务,将所有任务按照任务群中任务节点的资源状况进行分配的方式进行处理,提高了任务处理的效率。
【专利说明】一种任务分布式调度方法和系统

【技术领域】
[0001]本申请涉及分布式调度【技术领域】,特别是涉及一种任务分布式调度方法和系统。

【背景技术】
[0002]在互联网技术不断发展的今天,越来越多的数据处理依赖较高的计算能力,为了解决单一处理节点无法处理多种多样的工作,以及无法满足越来越搞的计算能力的要求;技术人员提供一种分布式处理方案。
[0003]以Gearman为例,Gearman是一个用来把工作委派给其他机器、分布式的调用更适合做某项工作的机器、并发的做某项工作在多个调用间做负载均衡、或用来在调用其它语言的函数的系统。在Gearman中,通过调度器将事件请求队列中的事件按照一定规则分配给各个工作节点,由各个工作节点进行处理后反馈。
[0004]但是在实际使用中,本发明的发明人发现,在同一个事件请求中可能包含多个任务,而且任务的处理方式可能也各不相同,如果简单的将同一个事件分配个一个工作节点去处理,可能导致该工作节点超负荷,而其它工作节点空闲,导致工作效率不高。


【发明内容】

[0005]本申请所要解决的技术问题是提供一种效率较高的任务分布式调度方法以及响应的系统。
[0006]为了解决上述问题,本申请公开了一种任务分布式调度方法,包括:
调度器获取客户群发送的事件请求;
所述调度器获取所述事件请求中的所有任务;
所述调度器检测任务群中所有任务节点工作状态;
所述调度器根据预置策略将任务分配到不同工作状态的任务节点。
[0007]进一步,所述调度器检测任务群中所有任务节点工作状态包括:
调度器根据预置心跳包检测任务群中的在线任务节点;
获取在线任务节点的资源状况。
[0008]进一步,所述调度器根据预置策略将任务分配到不同工作状态的任务节点包括: 调度器按照任务节点资源占用率从低到高依次分配任务。
[0009]进一步,所述调度器根据预置策略将任务分配到不同工作状态的任务节点包括: 调度器将同一类型任务分配到资源占用率最低的任务节点。
[0010]进一步,所述调度器根据预置策略将任务分配到不同工作状态的任务节点后还包括:
任务节点接收任务后,根据自身处理策略进行任务处理形成任务处理结果;
所述任务节点返回任务处理结果到调度器,并保存执行记录到数据库。
[0011]进一步,所述任务节点返回任务处理结果到调度器,并保存执行记录到数据库后还包括: 调度器获取到同一事件请求中所有的任务处理结果后,封装成事件处理结果;
所述调度器返回事件处理结果到客户群中对应的客户端;并保存执行记录到数据库。
[0012]本申请还提供了一种任务分布式调度系统,包括客户群、调度器和至少一个任务节点组成的任务群:
调度器,用于获取客户群发送的事件请求;获取所述事件请求中的所有任务;检测任务群中所有任务节点工作状态;根据预置策略将任务分配到不同工作状态的任务节点。
[0013]进一步,所述调度器还用于:
根据预置心跳包检测任务群中的在线任务节点;
获取在线任务节点的资源状况。
[0014]进一步,所述调度器还用于:
按照任务节点资源占用率从低到高依次分配任务。
[0015]进一步,所述调度器还用于:
将同一类型任务分配到资源占用率最低的任务节点。
[0016]进一步,所述系统还包括服数据库;任务节点还用于:
接收任务后,根据自身处理策略进行任务处理形成任务处理结果;
返回任务处理结果到调度器,并保存执行记录到数据库。
[0017]进一步,所述调度器还用于:
获取到同一事件请求中所有的任务处理结果后,封装成事件处理结果;
返回事件处理结果到客户群中对应的客户端;并保存执行记录到数据库。
[0018]与现有技术相比,本申请包括以下优点:通过采用调度器分解事件请求获得任务,将所有任务按照任务群中任务节点的资源状况进行分配的方式进行处理,提高了任务处理的效率。
[0019]

【专利附图】

【附图说明】
图1是本发明一种任务分布式调度方法一实施例的流程图;
图2是本发明一种任务分布式调度系统一实施例的结构示意图。

【具体实施方式】
[0020]为使本申请的上述目的、特征和优点能够更加明显易懂,下面结合附图和【具体实施方式】对本申请作进一步详细的说明。
[0021]参照图1,示出了本申请一种任务分布式调度方法一实施例的流程图;
本发明实施例提供的一种任务分布式调度方法,包括:
步骤S101、调度器获取客户群发送的事件请求;
客户群包含多个客户端,其中任一客户端均可通过与调度器的链路发送事件请求到调度器。其中客户端与调度器的链路可以通过HTTP或TCP进行。
[0022]调度器获取到事件请求后放入事件队列,等待按照预置规则按序处理。
[0023]所述客户群在发送事件请求到调度器之前可以检测调度器的工作状态,本发明实施例可以配置两个或两个以上的调度器,当客户群检测到主调度器未处于工作状态时,向从调度器发送事件请求。
[0024]步骤S102、调度器获取事件请求中的所有任务; 调度器中内置至少一个工作流引擎,调度器获取到事件请求后由工作流引擎对所述事件请求进行拆解获取事件请求中的所有任务。
[0025]步骤S103、调度器检测任务群中所有任务节点工作状态;
进一步,所述调度器检测任务群中所有任务节点工作状态包括:
调度器根据预置心跳包检测任务群中的在线任务节点;
获取在线任务节点的资源状况。
[0026]调度器通过心跳检测查看任务群中所有任务节点的连接状态,获取在线任务节点的资源状况。调度器在预置状态表中更新任务群中所有任务节点的连接状态和资源状态。
[0027]步骤S104、调度器根据预置策略将任务分配到不同工作状态的任务节点。
[0028]进一步,所述调度器根据预置策略将任务分配到不同工作状态的任务节点包括: 调度器按照任务节点资源占用率从低到高依次分配任务。
[0029]进一步,所述调度器根据预置策略将任务分配到不同工作状态的任务节点包括: 调度器将同一类型任务分配到资源占用率最低的任务节点。
[0030]调度器分配任务时的策略可以是多种,根据实际使用需要制定,在本发明实施例中提供两个简单的分配策略,第一按照任务节点的资源占用百分比分配;第二是按照任务节点正在处理的任务数进行分配。
[0031]第一种策略具体的,在步骤S103中,调度器获取到所有任务节点的连接状态和资源状态后,对处于连接状态的任务节点的资源占用百分比按照从低往高排列,将优先级最高的任务发送到资源占用百分比最低的任务节点;然后调度器再次获取在线任务节点的资源状况,再次重复上述任务分发的步骤,直至任务分配完成。
[0032]第二种策略具体的,在步骤S103中,调度器获取到所有任务节点的连接状态和资源状态后,对处于连接状态的任务节点按照正在处理的任务数从低到高排序,将优先级最高的任务发送到当前处理任务数最低的任务节点;然后调度器再次获取在线任务节点的资源状况,再次重复上述任务分发的步骤,直至任务分配完成。
[0033]进一步,所述调度器根据预置策略将任务分配到不同工作状态的任务节点后还包括:
任务节点接收任务后,根据自身处理策略进行任务处理形成任务处理结果;
所述任务节点返回任务处理结果到调度器,并保存执行记录到数据库。
[0034]进一步,所述任务节点返回任务处理结果到调度器,并保存执行记录到数据库后还包括:
调度器获取到同一事件请求中所有的任务处理结果后,封装成事件处理结果;
所述调度器返回事件处理结果到客户群中对应的客户端;并保存执行记录到数据库。
[0035]本发明实施例通过采用调度器分解事件请求获得任务,将所有任务按照任务群中任务节点的资源状况进行分配的方式进行处理,提高了任务处理的效率。
[0036]参照图2为本发明一种任务分布式调度系统一实施例的结构不意图;
本申请提供的一种任务分布式调度系统,包括客户群21、调度器22和至少一个任务节点组成的任务群23:
调度器22,用于获取客户群21发送的事件请求;获取所述事件请求中的所有任务;检测任务群23中所有任务节点工作状态;根据预置策略将任务分配到不同工作状态的任务节点。
[0037]进一步,所述调度器22还用于:
根据预置心跳包检测任务群23中的在线任务节点;
获取在线任务节点的资源状况。
[0038]进一步,所述调度器22还用于:
按照任务节点资源占用率从低到高依次分配任务。
[0039]进一步,所述调度器22还用于:
将同一类型任务分配到资源占用率最低的任务节点。
[0040]进一步,所述系统还包括服数据库;任务节点还用于:
接收任务后,根据自身处理策略进行任务处理形成任务处理结果;
返回任务处理结果到调度器22,并保存执行记录到数据库。
[0041]进一步,所述调度器22还用于:
获取到同一事件请求中所有的任务处理结果后,封装成事件处理结果;
返回事件处理结果到客户群2121中对应的客户端;并保存执行记录到数据库。
[0042]客户群21包含多个客户端,其中任一客户端均可通过与调度器22的链路发送事件请求到调度器22。其中客户端与调度器22的链路可以通过HTTP或TCP进行。
[0043]调度器22获取到事件请求后放入事件队列,等待按照预置规则按序处理。
[0044]调度器22中内置至少一个工作流引擎,调度器22获取到事件请求后由工作流引擎对所述事件请求进行拆解获取事件请求中的所有任务。
[0045]调度器22通过心跳检测查看任务群23中所有任务节点的连接状态,获取在线任务节点的资源状况。调度器22在预置状态表中更新任务群23中所有任务节点的连接状态和资源状态。
[0046]调度器22分配任务时的策略可以是多种,根据实际使用需要制定,在本发明实施例中提供两个简单的分配策略,第一按照任务节点的资源占用百分比分配;第二是按照任务节点正在处理的任务数进行分配。
[0047]第一种策略具体的,调度器22获取到所有任务节点的连接状态和资源状态后,对处于连接状态的任务节点的资源占用百分比按照从低往高排列,将优先级最高的任务发送到资源占用百分比最低的任务节点;然后调度器22再次获取在线任务节点的资源状况,再次重复上述任务分发的步骤,直至任务分配完成。
[0048]第二种策略具体的,调度器22获取到所有任务节点的连接状态和资源状态后,对处于连接状态的任务节点按照正在处理的任务数从低到高排序,将优先级最高的任务发送到当前处理任务数最低的任务节点;然后调度器22再次获取在线任务节点的资源状况,再次重复上述任务分发的步骤,直至任务分配完成。
[0049]对于系统实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
[0050]本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
[0051]以上对本申请所提供的一种任务分布式调度方法和系统,进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在【具体实施方式】及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
【权利要求】
1.一种任务分布式调度方法,其特征在于,包括: 调度器获取客户群发送的事件请求; 所述调度器获取所述事件请求中的所有任务; 所述调度器检测任务群中所有任务节点工作状态; 所述调度器根据预置策略将任务分配到不同工作状态的任务节点。
2.根据权利要求1所述的方法,其特征在于,所述调度器检测任务群中所有任务节点工作状态包括: 调度器根据预置心跳包检测任务群中的在线任务节点; 获取在线任务节点的资源状况。
3.根据权利要求2所述的方法,其特征在于,所述调度器根据预置策略将任务分配到不同工作状态的任务节点包括: 调度器按照任务节点资源占用率从低到高依次分配任务。
4.根据权利要求2所述的方法,其特征在于,所述调度器根据预置策略将任务分配到不同工作状态的任务节点包括: 调度器将同一类型任务分配到资源占用率最低的任务节点。
5.根据权利要求3或4所述的方法,其特征在于,所述调度器根据预置策略将任务分配到不同工作状态的任务节点后还包括: 任务节点接收任务后,根据自身处理策略进行任务处理形成任务处理结果; 所述任务节点返回任务处理结果到调度器,并保存执行记录到数据库。
6.根据权利要求5所述的方法,其特征在于,所述任务节点返回任务处理结果到调度器,并保存执行记录到数据库后还包括: 调度器获取到同一事件请求中所有的任务处理结果后,封装成事件处理结果; 所述调度器返回事件处理结果到客户群中对应的客户端;并保存执行记录到数据库。
7.一种任务分布式调度系统,其特征在于,包括客户群、调度器和至少一个任务节点组成的任务群: 调度器,用于获取客户群发送的事件请求;获取所述事件请求中的所有任务;检测任务群中所有任务节点工作状态;根据预置策略将任务分配到不同工作状态的任务节点。
8.根据权利要求7所述的系统,其特征在于,所述调度器还用于: 根据预置心跳包检测任务群中的在线任务节点; 获取在线任务节点的资源状况。
9.根据权利要求8所述的系统,其特征在于,所述调度器还用于: 按照任务节点资源占用率从低到高依次分配任务。
10.根据权利要求8所述的系统,其特征在于,所述调度器还用于: 将同一类型任务分配到资源占用率最低的任务节点。
11.根据权利要求9或10所述的系统,其特征在于,所述系统还包括服数据库;任务节点还用于: 接收任务后,根据自身处理策略进行任务处理形成任务处理结果; 返回任务处理结果到调度器,并保存执行记录到数据库。
12.根据权利要求11所述的系统,其特征在于,所述调度器还用于:获取到同一事件请求中所有的任务处理结果后,封装成事件处理结果;返回事件处理结果到客户群中对应的客户端;并保存执行记录到数据库。
【文档编号】H04L29/08GK104253850SQ201410006101
【公开日】2014年12月31日 申请日期:2014年1月7日 优先权日:2014年1月7日
【发明者】卢长烛, 贾西贝 申请人:深圳市华傲数据技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1