一种任务自动拆分以及子任务并行执行的方法及其系统的制作方法_2

文档序号:9921922阅读:来源:国知局
1,2,3….100]的数组。中间控制服务器会根据闲置的机器来进行等分。将数组参数拆分分配到不同的机器上并行运行。
[0044]主任务服务器通知方式
[0045]主任务服务器向中间控制单元申请拆分子任务,并且子任务启动后,会立马给主任务服务器一个反馈。反馈格式例如可以是jSOn(jSOn为轻量级的数据交换格式),当然也可以是其他的方式。主任务服务器收到回复之后,会立刻将该主任务放到锁定队列中,等待子任务都处理完成,才算这次主任务执行完成。
[0046]子任务通过分布式应用服务器例如zk服务器实现的分布式队列的方式,使得中间控制服务器每次都会比对是否执行完了所有的子任务。如果全部执行完了,立刻通过主任务绑定的ip和端口,socket(套接字,是机器间的联通方式)连接告知主任务服务器。让主任务立刻解锁,然后立刻继续执行。
[0047]中间控制服务器独立部署
[0048]由于中间控制服务器是独立部署的,所以主任务服务器与子任务服务器没有任何关联。由于是可插拔式的,随时可以让主任务服务器不需要拆分。而且主任务服务器和子任务服务器都是因作用不同而划分的,其实完全也可以是一台服务器。
[0049]以下,图3是本申请发明的自定义节点以及分布式队列实现的示例图。以下是对示例中的节点的说明:
[0050]/ worker/worker_name/queue 是每个 worker 名字叫做 work_name 的子任务队列集合
[0051 ] /worker/worker_name/num 是指 worker_name 拆分的子任务服务器数量
[0052]/worker/worker_name/queue/finish是标志节点,表不整个worker所有的子任务全部完成
[0053]中间控制服务器通过监控完成节点,来异步判断所有的子任务是否完成。在判断为所有子任务已完成的情况下,同时回调主任务服务器,告知其可以继续运行新任务。对于本领域技术人员而言,图3仅仅是例示,本申请发明并不限于此。
[0054]接下来,参照图4对本申请发明的任务自动拆分以及子任务并行执行的方法的流程具体地进行说明。图4为表示本申请发明的任务自动拆分以及子任务并行执行的方法的流程图。
[0055]如图4所示,首先,本申请发明的任务自动拆分以及子任务并行执行系统开始运行。按照自定义拆分规则将需要处理的主任务拆分为多个子任务(步骤Si)。所谓自定义拆分规则,就是由上层业务系统自己实现的拆分规则。实现的方式是中间件定义了相应的api(应用程序接口),上层业务系统实现后,然后每次向中间件提交申请来拆分子任务执行请求的时候,同时会把拆分规则也当做参数传来。中间件如果发现上层用户自定义了拆分规则,则遵守上层业务的规则,否则使用中间件默认的规则。
[0056]接下来,获取能配置给子任务的单元,查看能配置给子任务的单元的状态,并筛选出没有运行相应子任务的单元(步骤S2)。
[0057]接下来,对筛选出的每个单元分配相等的参数,创建树节点,并行启动子任务(步骤S3)。其中,树节点中存储每个子任务执行的状态。
[0058]接下来,在所有子任务启动成功之后,锁定相应的主任务(步骤S4)。
[0059]接下来,子任务并行执行完成,更新树节点状态即更新子任务执行的状态(步骤S5)。
[0060]接下来,判断是否执行完成所有子任务(步骤S6)。该判断可以通过监控节点状态,来异步判断所有的子任务是否完成。
[0061]在判断为没有执行完成所有子任务的情况下,等待执行完成其他子任务(步骤S7),并返回到步骤S5进一步进行判断。
[0062]在判断为所有子任务执行完成的情况下,发出执行成功的消息,并解锁主任务(步骤S8)。结束本次任务拆分及子任务并行执行的处理。
[0063]以下,参照图5对本申请发明的任务自动拆分以及子任务并行执行的系统进行说明。图5为表示本申请发明的任务自动拆分以及子任务并行执行的系统的结构的方框图。
[0064]如图5所示,本申请发明的任务自动拆分以及子任务并行执行的系统包括拆分单元、获取筛选单元、创建启动单元、锁定单元、更新单元、判断单元和解锁单元。其中,拆分单元,将需要处理的主任务拆分为多个子任务;获取筛选单元,获取能配置给子任务的单元,查看能配置给子任务的单元的状态,并筛选出没有运行相应子任务的单元;创建启动单元,对筛选出的每个单元分配相等的参数,创建树节点,并行启动子任务;锁定单元,在所有子任务启动成功之后,锁定相应的主任务;更新单元,子任务并行执行完成,更新树节点状态;判断单元,判断是否执行完成所有子任务;解锁单元,在判断为执行完成所有子任务的情况下,发出执行成功的消息,并解锁相应的主任务。
[0065]以下,参照图6对本申请发明的任务自动拆分以及子任务并行执行装置进行说明。图6为表示本申请发明的任务自动拆分以及子任务并行执行装置的结构的方框图。
[0066]如图6所示,本申请发明的任务自动拆分以及子任务并行执行装置包括主任务单元、中间控制单元(100)、分布式应用单元、子任务单元以及缓存单元。其中,中间控制单元的结构与本发明的任务自动拆分以及子任务并行执行系统的结构完全相同,可以参照图5所示。
[0067]以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,本领域技术人员所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限制本发明。凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。本发明的实际保护范围由权利要求来确定。
[0068]此外,本发明的上述技术方案,虽然以软件流程进行了说明,但就本领域技术人员而言,这些技术方案的一部分或全部均可以由硬件、软件或硬件与软件的组合来实现,这是不言而喻的。
【主权项】
1.一种任务自动拆分以及子任务并行执行的方法,包括: 将需要处理的主任务拆分为多个子任务; 获取能配置给子任务的单元,查看能配置给子任务的单元的状态,并筛选出没有运行相应子任务的单元; 对筛选出的每个单元分配相等的参数,创建树节点,并行启动子任务; 在所有子任务启动成功之后,锁定相应的主任务; 子任务并行执行完成,更新树节点状态; 判断是否执行完成所有子任务; 在判断为执行完成所有子任务的情况下,发出执行成功的消息,并解锁相应的主任务。2.根据权利要求1所述的任务自动拆分以及子任务并行执行的方法,其中,还包括: 在判断没有执行完成所有子任务的情况下,等待执行完成其他子任务。3.根据权利要求1所述的任务自动拆分以及子任务并行执行的方法,其中, 按照自定义拆分规则将需要处理的主任务拆分为多个子任务。4.根据权利要求1所述的任务自动拆分以及子任务并行执行的方法,其中, 在树节点中存储每个子任务执行的状态,并以自定义的格式存储。5.根据权利要求1所述的任务自动拆分以及子任务并行执行的方法,其中, 能通过监控节点状态来异步判断是否执行完成所有子任务。6.根据权利要求1所述的任务自动拆分以及子任务并行执行的方法,其中, 通过指定IP地址和端口来发出执行成功的消息。7.一种任务自动拆分以及子任务并行执行系统,包括: 拆分单元,将需要处理的主任务拆分为多个子任务; 获取筛选单元,获取能配置给子任务的单元,查看能配置给子任务的单元的状态,并筛选出没有运行相应子任务的单元; 创建启动单元,对筛选出的每个单元分配相等的参数,创建树节点,并行启动子任务; 锁定单元,在所有子任务启动成功之后,锁定相应的主任务; 更新单元,子任务并行执行完成,更新树节点状态; 判断单元,判断是否执行完成所有子任务; 解锁单元,在判断为执行完成所有子任务的情况下,发出执行成功的消息,并解锁相应的主任务。8.根据权利要求7所述的任务自动拆分以及子任务并行执行系统,其中,还包括: 等待单元,在判断没有执行完成所有子任务的情况下,等待执行完成其他子任务。9.根据权利要求7所述的任务自动拆分以及子任务并行执行系统,其中, 在拆分单元中,按照自定义拆分规则将需要处理的主任务拆分为多个子任务。10.根据权利要求7所述的任务自动拆分以及子任务并行执行系统,其中, 在树节点中存储每个子任务执行的状态,并以自定义的格式存储。11.根据权利要求7所述的任务自动拆分以及子任务并行执行系统,其中, 在判断单元中,能通过监控节点状态来异步判断是否执行完成所有子任务。12.根据权利要求7所述的任务自动拆分以及子任务并行执行系统,其中, 在解锁单元中,通过指定IP地址和端口将执行成功的消息通知给主任务单元。13.一种任务自动拆分以及子任务分布式并行执行装置,具备: 主任务单元; 子任务单元; 分布式应用单元; 缓存单兀;和 中间控制单元,包括: 拆分单元,将需要处理的主任务拆分为多个子任务; 获取筛选单元,获取能配置给子任务的单元,查看能配置给子任务的单元的状态,并筛选出没有运行相应子任务的单元; 创建启动单元,对筛选出的每个单元分配相等的参数,创建树节点,并行启动子任务; 锁定单元,在所有子任务启动成功之后,锁定相应的主任务; 更新单元,子任务并行执行完成,更新树节点状态; 判断单元,判断是否执行完成所有子任务; 解锁单元,在判断为执行完成所有子任务的情况下,发出执行成功的消息,并解锁相应的主任务。14.根据权利要求13所述的任务自动拆分以及子任务分布式并行执行装置,其中, 主任务单元能成为子任务单元。15.根据权利要求13所述的任务自动拆分以及子任务分布式并行执行装置,其中, 分布式应用单元可以为Zookeeper服务器。
【专利摘要】本发明提供一种任务自动拆分以及子任务并行执行的方法以及系统。其中包括:将需要处理的主任务拆分为多个子任务;获取能配置给子任务的单元,查看能配置给子任务的单元的状态,并筛选出没有运行相应子任务的单元;对筛选出的每个单元分配相等的参数,创建树节点,并行启动子任务;在所有子任务启动成功之后,锁定相应的主任务;子任务并行执行完成,更新树节点状态;判断是否执行完成所有子任务;在判断为执行完成所有子任务的情况下,发出执行成功的消息,并解锁相应的主任务。
【IPC分类】G06F9/50
【公开号】CN105700958
【申请号】CN201610009213
【发明人】魏亚文, 孙政
【申请人】北京京东尚科信息技术有限公司, 北京京东世纪贸易有限公司
【公开日】2016年6月22日
【申请日】2016年1月7日
当前第2页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1