一种分布式系统的任务管理系统及方法与流程

文档序号:12008321阅读:341来源:国知局
一种分布式系统的任务管理系统及方法与流程
本发明涉及计算机应用技术领域,尤其涉及一种分布式系统的任务管理系统及方法。

背景技术:
由于单系统能力有限,分布式系统的使用越来越普及。对于分布式系统来说,一个任务从派发到执行再到执行结果汇总的整个生命周期,可能分布于系统中不同的计算节点上。并且对于大型的作业系统来说,系统中可能包含有成千上万的计算资源,参与任务处理的计算节点数量极大。如何合理的协调计算资源,如何追踪任务执行情况是目前迫切需要解决的问题。而目前的分布式系统仍然存在以下问题:(1)任务的派发节点和执行节点的数量和运算能力不一定对等,可能出现派发任务过多导致饱和,此时如果继续派发任务则有可能使系统负载过重,导致宕机或者系统停摆。(2)分布式系统涉及的计算资源众多,由于功能升级或者运维等原因可能需要对某些功能节点进行停机维护,但是并不希望整个系统停止运行,从而减少升级或者运维的成本。(3)由于参与任务执行的节点是分布式的,一个任务具体被哪个节点执行不能确定,当任务执行出错时不能尽快定位出错的具体节点,并进行后续的处理流程。

技术实现要素:
针对上述技术问题,本发明提供了一种分布式系统的任务管理系统及方法,利用单边操作模块来完善分布式系统的任务管理,提高系统资源的利用率和任务管理的健壮性和灵活性。本发明采用如下方法来实现:一种分布式系统的任务管理系统,包括:派发节点,用于将任务派发至缓冲池中;缓冲池,用于存储待执行的任务;执行节点,用于从缓冲池中获取任务进行处理;单边操作模块,用于接收用户指令,选择单边消费模式或者单边生产模式,所述单边消费模式为停止派发节点将任务派发至缓冲池中,允许执行节点从缓冲池中获取任务进行处理;所述单边生产模式为允许派发节点将任务派发至缓冲池中,停止执行节点从缓冲池中获取任务进行处理;任务跟踪模块,用于跟踪任务的任务状态以及任务所在执行节点的信息。进一步,任务跟踪模块中所述任务状态可以包括:任务已派发、任务被领取、任务开始执行、任务执行中、任务已超时、任务执行异常、任务已完成或者任务执行失败。其中,任务状态中所述的任务已超时包括从任务已派发到任务被领取的全局超时,或者从任务被领取到任务开始执行的执行超时。其中,任务跟踪模块中对所述任务状态进行更新的同时更新时间戳。进一步,任务跟踪模块中,所述任务所在执行节点的信息可以通过MAC地址或者IP地址来标识。优选地,该任务管理系统还可以包括:预警模块,用于监控缓冲池中的任务数量,当缓冲池中的任务数量达到预设阈值时触发预警;进一步,预警模块具体完成:监控缓冲池中的任务数量,当缓冲池中的任务数量等于或高于预设阈值时触发预警,并暂停派发节点向缓冲池中派发新任务;或者当缓冲池中的任务数量等于或低于预设阈值时触发预警,并关闭部分执行节点。其中,当暂停派发节点向缓冲池中派发新任务时,允许执行节点获取缓冲池中的任务进行处理;当关闭部分执行节点时,允许派发节点继续向缓冲池中派发任务。优选地,该任务管理系统还包括:任务管理嵌套模块,利用扩展接口完成任务管理的嵌套;即在一个大的任务管理器中嵌套一些小的任务管理器,从而更好地完成对于子任务的处理控制,达到对于分布式系统中任务的细粒度控制。更为优选地,该任务管理系统还包括:自定义处理模块,针对所述任务状态,利用扩展接口自定义后续处理流程。进一步,自定义处理模块可以利用回调函数定义所述任务状态的后续处理流程。一种分布式系统的任务管理方法,在派发节点将任务派发至缓冲池中,执行节点从缓冲池中获取任务进行处理的过程中,如果接收到用户指令或者缓冲池中的任务数量接近某一阈值时,则进入单边模式,选择单边消费模式或者单边生产模式,所述单边消费模式为停止派发节点将任务派发至缓冲池中,允许执行节点从缓冲池中获取任务进行处理;所述单边生产模式为允许派发节点将任务派发至缓冲池中,停止执行节点从缓冲池中获取任务进行处理;所述方法还包括跟踪任务的任务状态以及任务所在执行节点的信息。进一步,所述任务状态可以包括:任务已派发、任务被领取、任务开始执行、任务执行中、任务已超时、任务执行异常、任务已完成或者任务执行失败。其中,所述任务已超时包括从任务已派发到任务被领取的全局超时,或者从任务被领取到任务开始执行的执行超时。进一步,对所述任务状态进行更新的同时更新时间戳。进一步,所述任务所在执行节点的信息通过MAC地址或者IP地址来标识。执行节点获取任务时的反馈信息中包括该任务的信息,其中包括任务所在执行节点的位置或者任务状态的标识,其中,任务所在执行节点的位置可以由MAC地址或者IP地址或者进程号来唯一标识,而任务状态的更新可通过以下方法来完成,例如,当执行节点获取到任务后,将任务状态置为任务被领取,当任务执行完成后将任务状态置为任务已完成。优选地,该任务管理方法还包括:预警机制,监控缓冲池中的任务数量,当缓冲池中的任务数量达到预设阈值时触发预警;进一步,所述预警机制包括:监控缓冲池中的任务数量,当缓冲池中的任务数量等于或高于预设阈值时触发预警,并暂停派发节点向缓冲池中派发新任务;或者当缓冲池中的任务数量等于或低于预设阈值时触发预警,并关闭部分执行节点。其中,当暂停派发节点向缓冲池中派发新任务时,允许执行节点获取缓冲池中的任务进行处理;当关闭部分执行节点时,允许派发节点继续向缓冲池中派发任务。优选地,该任务管理方法还包括:任务管理嵌套,利用扩展接口完成任务管理的嵌套;一个任务可能衍生出n个子任务,那么此时可以利用任务管理嵌套对该任务和所述子任务进行同时管理,该子任务的管理和原任务的管理可以使用同一个任务管理框架,属于任务管理嵌套任务管理的做法。更为优选地,该任务管理方法还包括:后续处理流程的自定义,针对所述任务状态,利用扩展接口自定义后续处理流程。进一步,利用回调函数定义所述任务状态的后续处理流程。综上所述,本发明提供了一种分布式系统的任务管理系统及方法,首先派发节点负责将任务派发至缓冲池中,执行节点从缓冲池中获取任务并进行处理,此时可以根据用户指令来选择进入单边消费模式或者单边生产模式,这样有利于在进行系统升级和维护时,提高系统资源的利用率;并且对于任务的任务状态及任务所在执行节点的信息进行跟踪,利用如上所述方案,使得分布式系统中的各计算节点有序执行任务,增强了系统的健壮性,降低资源消耗,任务管理的嵌套使得用户可以根据应用模型对系统进一步划分,完成分布式系统的细粒度控制;扩展接口可以使得任务管理更灵活。附图说明为了更清楚地说明本发明的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本发明提供的分布式系统的任务管理方法中单边模式实施例的流程图;图2为本发明提供的分布式系统的任务管理方法中预警机制实施例1的流程图;图3为本发明提供的分布式系统的任务管理方法中预警机制实施例2的流程图;图4为本发明提供的分布式系统的任务管理方法中预警机制实施例3的流程图。具体实施方式本发明给出了一种分布式系统的任务管理系统及方法,为了使本领域的技术人员更好地理解本发明实施例中的技术方案,并使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图对本发明中技术方案作进一步详细的说明:本发明提供了一种分布式系统的任务管理系统,包括:派发节点,用于将任务派发至缓冲池中;缓冲池,用于存储待执行的任务;执行节点,用于从缓冲池中获取任务进行处理;单边操作模块,用于接收用户指令,选择单边消费模式或者单边生产模式,所述单边消费模式为停止派发节点将任务派发至缓冲池中,允许执行节点从缓冲池中获取任务进行处理;所述单边生产模式为允许派发节点将任务派发至缓冲池中,停止执行节点从缓冲池中获取任务进行处理;任务跟踪模块,用于跟踪任务的任务状态以及任务所在执行节点的信息。优选地,该任务管理系统还可以包括:预警模块,用于监控缓冲池中的任务数量,当缓冲池中的任务数量达到预设阈值时触发预警;进一步,预警模块具体完成:监控缓冲池中的任务数量,当缓冲池中的任务数量等于或高于预设阈值时触发预警,并暂停派发节点向缓冲池中派发新任务;或者当缓冲池中的任务数量等于或低于预设阈值时触发预警,并关闭部分执行节点。其中,当暂停派发节点向缓冲池中派发新任务时,允许执行节点获取缓冲池中的任务进行处理;当关闭部分执行节点时,允许派发节点继续向缓冲池中派发任务。优选地,任务跟踪模块中所述任务状态可以包括:任务已派发、任务被领取、任务开始执行、任务执行中、任务已超时、任务执行异常、任务已完成或者任务执行失败。其中,任务状态中所述的任务已超时包括从任务已派发到任务被领取的全局超时,或者从任务被领取到任务开始执行的执行超时。其中,任务跟踪模块中对所述任务状态进行更新的同时更新时间戳。进一步,任务跟踪模块中,所述任务所在执行节点的信息可以通过MAC地址或者IP地址来标识。优选地,该任务管理系统还包括:任务管理嵌套模块,利用扩展接口完成任务管理的嵌套;例如,有两个任务管理系统M1和M2,就可以再M1的task_success()回调函数中向M2派发任务,同时也能在M2的task_success()回调函数中向M1系统发起操作,完成系统任务的细粒度管理。更为优选地,该任务管理系统还包括:自定义处理模块,针对所述任务状态,利用扩展接口自定义后续处理流程。进一步,自定义处理模块可以利用回调函数定义所述任务状态的后续处理流程。例如,对于任务开始执行、任务执行异常、任务执行超时、任务执行失败或者任务已完成等任务状态可以分别使用task_started()、exception_occured()、timeout()、task_failed()、task_success()等回调函数完成用户的自定义后续处理流程。本发明还提供了一种分布式系统的任务管理方法:在派发节点将任务派发至缓冲池中,执行节点从缓冲池中获取任务进行处理的过程中,此时,可以通过开关来决定是否允许向缓冲池中派发任务以及是否允许从缓冲池中获取任务;如果接收到用户指令,则进入单边模式,选择单边消费模式或者单边生产模式,所述单边消费模式为停止派发节点将任务派发至缓冲池中,允许执行节点从缓冲池中获取任务进行处理;所述单边生产模式为允许派发节点将任务派发至缓冲池中,停止执行节点从缓冲池中获取任务进行处理;单边模式的实施例为,如图1所示:S101接收用户指令;S102判定是否进入单边消费模式,若是,则执行S104,否则,执行S103;S103继续判定是否进入单边生产模式,若是,则执行S105,否则,执行S106;S104进入单边消费模式,继续执行S106;S105进入单边生产模式,继续执行S106;S106判定是否暂停服务,若是,则结束,否则,返回执行S101;通常情况下,是既允许向缓冲池中派发任务,同时可以从缓冲池中获取任务进行处理。当系统的部分功能节点进行升级和维护时,单边消费模式和单边生产模式可以有效地利用资源,避免计算资源的浪费。所述任务管理方法还包括跟踪任务的任务状态以及任务所在执行节点的信息;优选地,所述任务状态可以包括:任务已派发、任务被领取、任务开始执行、任务执行中、任务已超时、任务执行异常、任务已完成或者任务执行失败;可以通过MAC地址或者IP地址来唯一标识当前任务所在的处理节点,以便于任务的跟踪回溯。进一步,更新任务状态的同时要更新时间戳。该任务管理方法还可以包括:预警机制,监控缓冲池中的任务数量,当缓冲池中的任务数量达到预设阈值时触发预警;所述阈值可以由用户根据实际需要设置;优选地,如图2所示,所述预警机制为:S201监控缓冲池中的任务数量;S202判定缓冲池中的任务数量是否等于或者高于预设阈值;若是,则执行S203,否则,执行S204;S203暂停派发节点向缓冲池中派发新任务;S204是否暂停服务,若是,则结束,否则,继续执行S201。可替换地,如图3所示,预警机制为:S301监控缓冲池中的任务数量;S302判定缓冲池中的任务数量是否等于或者低于预设阈值,若是,则执行S303,否则,则执行S304;S303关闭部分执行节点;S304是否暂停服务,若是,则结束,否则,继续执行S301。可替换地,如图4所示,预警机制为:这里用户根据需要设置最大阈值与最小阈值;S401监控缓冲池中的任务数量;S402判定缓冲池中任务数量是否等于或高于最大阈值,若是,则执行S405,否则,则执行S403;S403判定缓冲池中的任务数量是否等于或低于最小阈值,若是,则执行S406,否则,则执行S404;S404是否暂停服务,若是,则结束,否则,则继续执行S401;S405暂停派发节点向缓冲池中派发新任务;继续执行S404;S406关闭部分执行节点;继续执行S404。该任务管理方法还可以包括:任务管理嵌套,利用扩展接口完成任务管理的嵌套;例如,有两个任务管理系统M1和M2,就可以在M1的task_success()回调函数中向M2派发任务,同时也能在M2的task_success()回调函数中向M1系统发起操作,完成系统任务的细粒度管理。该任务管理方法还可以包括:后续处理流程的自定义,针对所述任务状态,利用扩展接口自定义后续处理流程。例如,对于任务开始执行、任务执行异常、任务执行超时、任务执行失败或者任务已完成等任务状态可以分别使用task_started()、exception_occured()、timeout()、task_failed()、task_success()等回调函数完成用户的自定义后续处理流程。如上所述,本发明给出了一种分布式系统的任务管理系统及方法,与现有的分布式系统的任务管理方法的区别在于,在派发节点将任务派发至缓冲池中,和执行节点从缓冲池中获取任务进行处理时,可以根据用户的指令,选择单边消费模式或者单边生产模式,从而当部分功能节点需要升级或者维护时,只需要暂停部分功能节点的工作,不至于导致整个分布式系统停止运行,从而保证系统的正常运转,降低资源浪费,使得系统的任务管理更具灵活性,并且对于任务状态和任务所在执行节点信息的跟踪,使得分布式系统的任务管理更加准确和及时。以上实施例用以说明而非限制本发明的技术方案。不脱离本发明精神和范围的任何修改或局部替换,均应涵盖在本发明的权利要求范围当中。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1