分布式任务执行装置和方法_2

文档序号:9399351阅读:来源:国知局
特征和优点,下面结合附图和【具体实施方式】对本发明进行进一步的详细描述。需要说明的是,在不冲突的情况下,本申请的实施例及实施例中的特征可以相互组合。
[0025]在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是,本发明还可以采用其他不同于在此描述的其他方式来实施,因此,本发明的保护范围并不受下面公开的具体实施例的限制。
[0026]针对以上现有分布式任务执行做法的缺陷,需要建立一种装置,在多机协同中,保证各个节点都是对等的,不存在集中式的任务调度模块,同时各个节点通过自动协商来决定分布式任务执行,也解决了集中式锁在高并发访问下的缺陷,达到了扩展性和性能的同时增强。
[0027]图1示出了根据本发明的实施例的分布式任务执行装置的框图。
[0028]如图1所示,根据本发明的实施例的分布式任务执行装置100,包括:多任务节点运行单元102,用于建立多个对等的任务节点,负责处理预设列表里的任务、并定期检查当前时间下是否有任务需要被执行;任务预处理单元104,用于基于每个任务节点的检查结果,对需要被执行的任务进行预处理;任务执行单元106,用于基于对需要被执行的任务的预处理结果,在相应的任务节点中执行需要被执行的任务。在该技术方案中,可以使各个任务节点通过自动协商来决定分布式任务执行,解决集中式锁在高并发访问下的缺陷,达到扩展性和性能的同时增强。
[0029]在上述技术方案中,优选地,多任务节点运行单元102,具体包括:对等任务节点建立模块1022,用于建立多个对等的任务节点;各任务节点处理任务模块1024,用于每个任务节点负责处理相同列表里的任务;待执行任务检查模块1026,用于每个任务节点定期检查当前时间下是否有任务需要被执行。在该技术方案中,可以利用多机协同的能力来进行任务的分布式执行,最大化的提高任务执行效率。
[0030]在上述技术方案中,优选地,任务预处理单元104,具体包括:启动时间判定模块1042,用于基于每个任务节点的检查结果,判定当前时间下是否有任务需要被执行;任务预处理模块1044,用于若当前时间下有任务需要被执行时,则该任务节点对需要被执行的任务启动预处理操作;状态一次返回模块1046,用于若当前时间下没有任务需要被执行时,则相应的任务返回处理相同列表里的任务并定期检查当前时间下是否有任务需要被处理的状态。在该技术方案中,可以使得分布式任务系统完全水平自由扩展,达到精确性能上的极大增强。
[0031]在上述技术方案中,优选地,任务预处理模块1044对需要被执行的任务启动预处理操作,包括:根据任务的地址标号、期望执行时间生成唯一标识。
[0032]在上述技术方案中,优选地,任务执行单元106,具体包括:可执行性协商模块1062,用于基于预处理操作生成的唯一标识,该任务节点和多个对等的任务节点中其他节点共同协商确定是否可以执行该任务;任务在可执行节点执行模块1064,用于当大于预设数量的任务节点同意执行时,则在相应的任务节点上执行相应的任务;状态二次返回模块1066,用于当大于预设数量的任务节点不同意执行时,则相应的任务返回处理相同列表里的任务并定期检查当前时间下是否有任务需要被处理的状态。在该技术方案中,可以有效地解决因为集中式任务调度模块故障导致的分布式任务系统整体瘫痪问题。
[0033]图2示出了根据本发明的实施例的分布式任务执行方法的流程图。
[0034]如图2所示,根据本发明的实施例的分布式任务执行方法,包括:步骤202:建立多个对等的任务节点,负责处理预设列表里的任务、并定期检查当前时间下是否有任务需要被执行;步骤204:基于每个任务节点的检查结果,对需要被执行的任务进行预处理;步骤206:基于对需要被执行的任务的预处理结果,在相应的任务节点中执行需要被执行的任务。在该技术方案中,可以使各个任务节点通过自动协商来决定分布式任务执行,解决集中式锁在高并发访问下的缺陷,达到扩展性和性能的同时增强。
[0035]在上述技术方案中,优选地,参见图3,步骤202,具体包括:步骤302:建立多个对等的任务节点;步骤304:每个任务节点负责处理相同列表里的任务;步骤306:每个任务节点定期检查当前时间下是否有任务需要被执行。在该技术方案中,可以利用多机协同的能力来进行任务的分布式执行,最大化的提高任务执行效率。
[0036]在上述技术方案中,优选地,参见图4,步骤204,具体包括:步骤402:基于每个任务节点的检查结果,判定当前时间下是否有任务需要被执行;步骤404:若当前时间下有任务需要被执行时,则该任务节点对需要被执行的任务启动预处理操作;步骤406:若当前时间下没有任务需要被执行时,则相应的任务返回处理相同列表里的任务并定期检查当前时间下是否有任务需要被处理的状态。在该技术方案中,可以使得分布式任务系统完全水平自由扩展,达到精确性能上的极大增强。
[0037]在上述技术方案中,优选地,步骤403对需要被执行的任务启动预处理操作,包括:根据任务的地址标号、期望执行时间生成唯一标识。
[0038]在上述技术方案中,优选地,参见图5,步骤206,具体包括:步骤502:基于预处理操作生成的唯一标识,该任务节点和多个对等的任务节点中其他节点共同协商确定是否可以执行该任务;步骤504:当大于预设数量的任务节点同意执行时,则在相应的任务节点上执行相应的任务;步骤506:当大于预设数量的任务节点不同意执行时,则相应的任务返回处理相同列表里的任务并定期检查当前时间下是否有任务需要被处理的状态。在该技术方案中,可以有效地解决因为集中式任务调度模块故障导致的分布式任务系统整体瘫痪问题。
[0039]应用系统需要有一套定时任务执行功能来按照预先制定的策略执行一系列工作,一般对于无法并行执行的任务会由单台机器单独执行,但在业务规模越来越大的情况下,需要利用多机协同的能力来进行任务的分布式执行,最大化的提高任务执行效率。本发明的技术方案提供了一种分布式任务执行的方法,并且提供了基于该方法保证任务分布式调度的装置。
[0040]本发明的技术方案的主要流程如图6所示。本发明的技术方案中关于各节点协商确定任务执行节点是基于一致性算法。本发明的技术方案主要过程描述如下:
⑴任务节点在正常运行状态;
⑵任务节点判定是否有任务到达启动时间,若有,则进入第⑶步;若无,则回到第⑴
步;
⑶任务节点针对第⑵步的任务启动任务预处理,该预处理包括根据任务的id、期望执行时间生成一个唯一标识,该标识会在第⑷步中使用;
⑷任务节点将第⑶步生成的唯一标识和其他节点共同协商确定是否可以执行该任务。若大多数节点同意执行,则进入第(5)步;若大多数节点不同意执行,则返回到第⑴步;
(5)在任务节点上执行该任务。
[0041 ] 下面按Paxos算法对本发明的技术方案做说明。当然本发明的技术方案也可基于其它一致性算法(如:Gossip等)。
[0042]⑴首先,有多个对等的任务节点,每个任务节点都负责处理相同列表里的任务。每个任务节点都会定期检查当前时间下是否有任务需要被执行。
[0043]⑵如果某个节点发现有一个任务的执行时间到了,则该节点先会根据任务ID和期望执行时间计算出一个在所有任务节点中对当前这个任务的唯一标识,然后以一个全局唯一且递增的编号向其他任务节点发出请求执行这个任务的提案,这个全局唯一且递增的序号可以由当前的时间戳加上任务节点IP组成,提案中的唯一任务标识代表任务本身。
[0044]⑶其他节点在收到这个提案后,首先检查关于这个任务标识有没有已收到其他的提案:
①如果已收到关于
当前第2页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1