一种任务调度处理方法、装置及系统与流程

文档序号:12034436阅读:184来源:国知局
一种任务调度处理方法、装置及系统与流程

本申请属于计算机数据处理领域,尤其涉及一种任务调度处理方法、装置及系统。



背景技术:

随着信息技术的发展和数据业务处理要求的提高,分布式系统由于高度的内聚性和透明线受到越来越多的关注。

在分布式任务处理场景下,通常每个任务有一个driver(主调度者或驱动)调度多个excutor(执行者或执行程序)。图1为现有分布式场景下任务调度处理方案的示意图,如图1所示,现有技术中可以部署一个物理集群,所述物理集群中的服务器通常采用master-slave构架模式,即一个master(主服务器)管理调度多个slave(从服务器)。运行程序可以将jar包分发到集群中的所有机器上,向maser申请机器cpu、内存资源等。然后可以启动submit命令,提交主程序,启动整个调度任务。根据用户发送的作业请求向maser申请作业资源。申请成功后启动当前作业任务,具体的可以将当前作业任务分发给master下主管的多个slave进行处理。当前作业任务执行完毕后释放作业资源。然后再次根据用户的作业请求处理下一个作业任务。

现有技术中分布式场景下的这种处理任务的运行模式在作业执行层面如slave或excutor是分布式执行的,但是单个driver是按照单线程进行调度任务到作业执行层面。这样会导致单个作业占用所有资源,在一个作业需要的资源较少的情况下会浪费其他空闲资源。并且,在先入先出的机制下,如果一个作业的执行时间很长,会导致后面的作业任务都得到不到资源分配,出现通道阻塞,引起作业饿死的现象。因此,现有技术中分布式场景下的单一通道任务调度处理机制会还存在资源浪费、作业异常时后续作业无法执行,处理效率低下的问题。



技术实现要素:

本申请目的在于提供一种任务调度处理方法、装置及系统,可以采用配置多通道的处理方式解决单个作业僵死引起的通道阻塞问题,并且能提供多个作业任务并行提交、并行处理,快速、高效的为作业任务分配所需的资源,大大提高任务调度处理效率和资源利用率。

本申请提供的一种任务调度处理方法、装置及系统是这样实现的:

一种任务调度处理方法,所述方法包括:

将资源池中的任务处理通道信息映射成配置中心的通道资源信息;

当接收到至少一个作业任务的调度请求时,向所述配置中心查询是否有处理所述作业任务的空闲通道资源;

当所述配置中心的查询结果为存在所述空闲通道资源时,按照为所述作业任务设定的资源分配优先级从所述资源池中选取与所述调度请求对应的任务处理通道分配给相应的作业任务。

一种任务调度处理装置,所述装置包括:

资源池,用于存储部署的任务处理通道的资源;

配置中心,用于获取资源池中的任务处理通道信息映射成的通道资源信息;

资源查询模块,用于当接收到至少一个作业任务的调度请求时,向所述配置中心查询是否有处理所述作业任务的空闲通道资源;

调度处理模块,用于当所述配置中心的查询结果为存在所述空闲通道资源时,按照为所述作业任务设定的资源分配优先级从所述资源池中选取与所述调度请求对应的任务处理通道分配给相应的作业任务。

一种分布式任务调度处理系统,所述系统包括:

包括至少一个物理集群的资源池,所述物理集群包括部署的由主调度服务器和相应的执行服务器组成的任务处理通道;

配置中心,用于将资源池中任务处理通道映射成通道资源信息,并通过心跳获取所述资源池任务处理通道的存活情况,以及,实时更新所述资源池中的任务处理通道信息。

调度集群,用于根据接收到的作业任务的调度请求向所述配置中心查询是否有处理所述作业任务的空闲通道资源;还用于当所述配置中心的查询结果为存在所述空闲通道资源时,按照为所述作业任务设定的资源分配优先级从所述资源池中选取与所述调度请求对应的任务处理通道分配给相应的作业任务。

本申请提供的一种任务调度处理方法、装置及系统,可以在分布式场景下将处理作业任务的主调度服务器和对应的执行服务器抽象为通道,多个通道可以向一个统一的配置中心注册自己的通道信息,在配置中心映射成通道资源信息。作业任务需要使用资源时,可以向配置中心获取通道资源信息,根据资源池中的资源信息判断当前是否有作业任务可用的空闲通道资源。如果有,可以分配给调度资源进行任务作业运行。这样,在任务调度处理过程中,当接收到多个作业任务的调度请求时,每个调度任务均可以向配置中心查询是否有可用的空 闲通道资源,然后根据配置中心的查询结果按照设定的作业任务优先级为多个作业任务分配相应的资源,实现多通道并行处理的为多个并发提交的任务进行资源分配。没有抢占到资源的作业任务在排队等待过程中,配置中心更新后反馈有空闲通道资源,则可以快速的为排队中的作业任务分配资源。本申请提供的任务调度处理方法可以实现多通道的资源分配,可以按需分配给作业任务资源,解决通道阻塞引起后续作为任务不可执行的问题,提供资源利用率,提高任务调度处理效率和资源利用率。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1是本申请所述一种任务调度处理方法一种实施例的方法流程示意图;

图2是本申请所述的任务调度处理方法中部署的一种调度处理构架示意图;

图3是本申请所述一种任务调度处理方法另一种实施例的方法流程示意图;

图4是本申请所述一种任务调度处理方法另一种实施例的方法流程示意图;

图5是本申请所述一种任务调度处理方法另一种实施例的方法流程示意图;

图6是本申请提供的一种任务调度处理装置一种实施例的模块结构示意图;

图7是申请提供的所述任务调度处理装置中调度处理模块一种实施例的模块结构示意图;

图8是本申请提供的一种任务调度处理装置一种实施例的模块结构示意图;

图9是本申请提供的一种任务调度处理装置另一种实施例的模块结构示意图;

图10是本申请提供的一种任务调度处理装置另一种实施例的模块结构示意图。

具体实施方式

为了使本技术领域的人员更好地理解本申请中的技术方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。

图1是本申请所述一种任务调度处理方法一个实施例的方法流程图。虽然本申请提供了如下述实施例或附图所示的方法操作步骤或装置结构,但基于常规或者无需创造性的劳动在 所述方法或装置中可以包括更多或者更少的操作步骤或模块结构。在逻辑性上不存在必要因果关系的步骤或结构中,这些步骤的执行顺序或装置的模块结构不限于本申请实施例提供的执行顺序或模块结构。所述的方法或模块结构的在实际中的装置或终端产品应用时,可以按照实施例或者附图所示的方法或模块结构连接进行顺序执行或者并行执行(例如并行处理器或者多线程处理的环境)。

具体的如图1所述,所述一种任务调度处理方法可以包括:

s1:将资源池中的任务处理通道信息映射成配置中心的通道资源信息。

本实施例中所述的资源池通常可以包括实现作业任务部署的通道资源集合,具体的可以包括多个一个或多个物理集群。或者一些实施例中所的资源池也可以包括虚拟资源池,所述虚拟资源池可以包括部署的一个或多个逻辑集群。当然,也可以根据实际分布式任务处理场景的需求将资源池部署为包括物理集群和逻辑集群。本实施例应用场景中采用所述的资源池可以部署为包括多个处理不同任务类型的物理集群,一个物理集群中的服务器被设置在同一个机房内。

图2是本申请所述的任务调度处理方法中一种部署的调度处理构架示意图。一般的,每个物理集群中可以包括一个或者多个任务处理通道。本实施例中所的任务处理通道可以由一个主调度服务器(driver)和该主调度服务器(driver)对应管理的多个执行服务器(excutor)组成。这样,本申请中一个任务处理通道可以认为是一个可以被用于处理作业任务的通道资源,所述任务处理通道的资源的大小,如主调度服务器包含的执行服务器的个数,可以在一定程度上反应该任务处理通道的作业能力。本实例中一个物理集群中的任务处理通道可以被分配成相同的资源大小,即在物理集群部署时,每个任务处理通道都被设置成一个主调度服务器对应相同个数的执行服务器。当然,本申请其他的一些实施例中,所述资源池中的任务处理通道被设置成按照预设处理需求分配为不同大小的资源。

在分布式任务处理场景中,可以将部署的资源池中的各个任务处理通道信息映射成配置中心的通道资源信息。本实施例的分布式任务处理场景中,可以为作为任务调度部署设置一个配置中心,所述的配置中心可以用于记录、更新所述资源池中任务处理通道的通道资源信息,同时也可以向调度集群中的资源库提供查询访问接口,以便资源申请方获取资源池中的资源信息。本实施例中,所述资源池的任务处理通道可以向所述配置中心注册将自己的任务处理通道信息(资源情况)。注册成功后,所述配置中心可以将资源池各个任务处理通道的任务处理通道按照对应的数据格式映射成配置中心的通道资源信息,所述配置中心可以实时存储、更新所述通道资源信息。

一般的,可以在物理集群中启动使用某个任务处理通道时向配置中心注册自己的资源情 况。本申请所述任务调度处理方法的一种实施例中,所述配置中心还可以通过心跳感知任务处理通道是否还存活有效。当任务处理通道失效(如下线或故障)时,相应的更新配置中心的通道资源信息。在实际任务调度处理运行过程中,资源池中任务处理通道的占用使用情况往往是实时动态变化的,因此,本申请的一种实施例中,所述配置中心可以被设置成实时感知资源池中各个任务通道的存活情况以及实时更新任务处理通道的占用情况。这样,所述配置中心的通道资源信息可以准确、可靠的反映出当前资源池中任务处理通道的资源情况。因此,本申请所述的一种任务调度处理方法的另一种实施例中,所述配置中心可以被设置成包括:

通过心跳获取所述资源池任务处理通道的存活情况;以及,

实时更新所述资源池中的任务处理通道信息。

本实施例中所述的任务处理通道信息可以包括任务处理通道的资源情况的信息,如存在空闲的任务处理通道p1,p1包括主调度服务器d1及对应10个执行服务器e1至e10。所述配置中心的通道资源信息可以反映出当前资源池中哪些物理集群中的哪些任务处理通道被占用,哪些任务处理通道是空闲且可被申请占用的资源情况信息。

本申请分布式任务处理的实施例中,可以将部署的资源池中的任务处理通道信息映射成配置中心的通道资源信息。所述配置中心可以存储并更新通道资源信息。

s2:当接收到至少一个作业任务的调度请求时,向所述配置中心查询是否有处理所述作业任务的空闲通道资源。

本实施分布式任务处理的应用场景中,当有一个或者多个作业任务需要被处理时,调度处理模块可以向资源库获取通道资源信息。本实施例中所述的资源库可以向任配置中心询问并申请资源,如果资源申请下来可以将申请的资源提交给该相应的作为任务执行。如图2所示,本申请中可以同时存在多个资源库的调度集群,即本申请中允许同时并行处理多个作业任务的调度请求。具体的,当接收到一个或者多个作业任务的调度请求时,调度集群中的资源库可以向配置中心查询当前是否有处理作业任务的空闲通道资源。所述配置中心存储有资源池中任务处理通道信息的通道资源信息,可以对调度集群的查询进行响应。

当接收到一个或者多个作业任务的调度请求时,可以向所述配置中心查询是否有处理所述作业任务的空闲通道资源。

s3:当所述配置中心的查询结果为存在所述空闲通道资源时,按照为所述作业任务设定的资源分配优先级从所述资源池中选取与所述调度请求对应的任务处理通道分配给相应的 作业任务。

所述配置中心可以记录的资源池中当前任务处理通道的占用执行情况的通道资源信息,同时可以根据作业任务的调度请求中申请的资源信息判断是否有处理该作业任务的空闲通道资源。如当前两个作业任务t1和t2的调度请求各自要求申请物理集群a中的一个任务处理通道,此时可以负责t1和t2的资源库s1和s2向配置中心查询是否有处理t1和t2作业任务的空闲通道资源。所述配置中心根据记录的资源池中所有任务处理通道的通道资源信息查询是否有可以处理作业任务t1和t2的空闲通道资源。如果所述配置中心的查询结果为当前有6个可以处理所述作业任务的t1和t2的空闲通道资源,则可以选取资源池中的空闲的任务处理通道分配给相应的作为任务。

本申请提供的任务调度处理方法中,可以提供多个任务处理通道并行的为作业任务分配所需的通道资源。在本申请的一些应用场景中,当接收到多个作业任务的调度请求时,调度集群的多个资源库均可以向配置中心查询是否有处理自己资源库对应的作业任务的空闲通道资源。此时,如果配置中心的信息表示为当前资源池中存在有空闲通道资源,但资源数小于所述多个作业任务的资源请求量的情况下,本实施例可以预先按照一定的方式对并发提交的分布式任务设置资源分配优先级,以解决多个作业任务并发提交申请资源时的通道资源分配问题。具体的,可以根据分布式任务处理的任务调度处理需求采用预先选取的方式为作业任务争抢资源时设置资源分配的优先级。

本申请的一种实施例提供一种分布式任务并发提交时的资源分配处理方式。具体的,本申请所述任务调度处理方式的另一种实施例中,所述为所述作业任务设定的资源分配优先级可以包括:

s301:当查询所述配置中心存在所述空闲通道资源,且所述空闲通道资源数小于当前多个作业任务的申请资源量时,采用根据所述多个作业任务中作业任务申请资源的时间先后、作业任务的权重优先级中的任意一种方式作为作业任务的资源分配优先级。

具体的实施过程中可以根据设计需求设定分布式任务并发提交申请资源作业任务调度处理方法。例如可以以作业任务申请资源的先后进行资源分配。当资源池的中资源数小于并发提交的多个任务的资源申请量时,先提交资源申请的作业任务可以优先抢占到空闲的任务处理通道资源,后提交的作业任务则资源抢占失败。当然,未抢占到资源作业任务,可以重新回到调度,继续申请资源。申请到相应的任务处理通道资源的作业任务,可以使用该任务处理通道执行指定的任务处理运行逻辑。

本申请提供的任务调度处理方法,可以在分布式场景下将处理作业任务的主调度服务器和对应的执行服务器抽象为通道,多个通道可以向一个统一的配置中心注册自己的通道信 息,在配置中心映射成通道资源信息。作业请求端的作业任务需要使用资源时,可以向配置中心获取通道资源信息,根据资源池中的资源信息判断当前是否有作业任务可用的空闲通道资源。如果有,可以分配给调度资源进行任务作业运行。这样,在任务调度处理过程中,当接收到多个作业任务的调度请求时,每个调度任务均可以向配置中心查询是否有可用的空闲通道资源,然后根据配置中心的查询结果按照设定的作业任务优先级为多个作业任务分配相应的资源,实现多通道并行处理的为多个并发提交的任务进行资源分配。没有抢占到资源的作业任务在排队等待过程中,配置中心更新后反馈有空闲通道资源,则可以快速的为排队中的作业任务分配资源。本申请提供的任务调度处理方法可以实现多通道的资源分配,可以按需分配给作业任务资源,解决通道阻塞引起后续作为任务不可执行的问题,提供资源利用率,提高任务调度处理效率。

如前所述,本申请的一种实施例中所述配置中心可以存储反映资源池中任务处理通道的通道资源信息。具体的一种实施方式中可以通过心跳感知人处理懂得是否存活,如配置中心通过心跳感知主调度服务器的存活情况来判断该任务处理通道是否失效。当资源池中某个任务处理通道的主调度服务器失效时,如异常故障或资源下线等,所述配置中心可以实时更新通道资源信息。同时,如果存在已经运行或者已经分配但还未执行该失效的任务处理通道资源的作业任务,本申请提供的一种实施例中可以采取下述提供的方式进行处理,以避免单个作业任务异常引起任务丢失或后续任务作业不可处理的情况。具体的,本申请提供的一种任务调度处理方法的另一种实施例中,所述方法还可以包括:

s401:当判断资源池中的任务处理通道失效时,更新所述配置中心相应的通道资源信息;

以及,

s402:根据所述调度请求采用下述方式处理调用到所述失效的任务处理通道作的业任务:

s4021:中断正在执行所述失效的任务处理通道的作业任务;

s4022:放弃正在排队且还未执行所述失效的任务处理通道的作业任务;

s4023:重新调度调用到所述失效的任务处理通道的作业任务,根据所述配置中心更新后的通道资源信息为重新调度的作业任务分配相应的任务处理通道。

图3是本申请所述一种任务调度处理方法另一种实施例的方法流程示意图。具体的执行过程中,可以通过心跳感知主调度服务器(driver)是否存活。当感知主调度服务器失效时,那么相应的注册到配置中心的任务处理通道信息的通道资源信息也会失效。在通道资源下线时可以采用直接将允许中的作业任务中断关闭,如可以设置正在运行的逻辑标识为失败。同 时也可以放弃正在排队调用该失效的或下线的任务处理通道的作业人数。进一步的,可以重新调度调用到失效的任务处理通道的作业任务,如可以延时预设的时间后重新将中断或放弃的作业任务调回到调度集群,重新申请通道资源进行任务处理。这样,本实施例提供的处理方式在分布式任务处理的应用场景中可以在资源下线时不会引起作业任务执行丢失的问题,同时执行过程中如果一个任务通道处理作业任务发生异常时,后续排队同样使用该异常任务处理通道的作业任务可以选择其他通道执行。当然,正在执行该异常处理通道的作业任务同样可以中断后重新选择其他通道来执行作业任务。

本申请所述的任务调度处理方法的另一种应用场景中,不同的作业任务处理的时间往往不相同。图4是本申请所述一种任务调度处理方法另一种实施例的方法流程示意图。在分布式任务处理的应用场景中,有些作业人处理时间较长的原有可能是因为自身作业处理要求导致。但如果一个作业任务的处理时间过长,超出正常的执行周期,此时可以认为该作业任务在处理过程中出现异常,则应该相应的处理执行时间过长超过设定的时间阈值的作业任务。因此,本申请所述任务调度处理方法的另一种实施例中,在执行作业任务时可以启动一个线程,用于监控任务处理通道的执行时间,具体的,所述方法还可以包括:

s501:监视所述作业任务的任务处理通道的占用执行时间,当所述占用执行时间大于设定的最大执行时间阈值时,停止所述占用时间大于设置的最大执行时间阈值的作业任务。

被停止的作业任务可以设置为异常处理,并进行记录。进一步的,还可以设置一个线程,用于扫描作业任务中记录为异常处理的作业任务,然后根据预先的用户配置决定是否继续调度异常处理的作业任务。图5是本申请所述一种任务调度处理方法另一种实施例的方法流程示意图。如图5所示,本申请提供的一种任务调度处理方法的另一种实施例中,所述方法还可以包括:

s502:按照预设周期扫描获取标记为异常处理的作业任务,根据设置的调度处理配置信息确定是否继续调用所述标记为异常处理的作业任务。

具体的实施过程中,如果用户的调度处理配置信息设置为否,则可以杀掉占用执行时间大于所述最大执行时间阈值的作业任务,将该作业任务丢弃,并进行相应的日志记录。如果调度处理配置信息设置为是,可以根据配置信息的设置延迟一段时间后重新调度标记为异常处理的作业任务,以及重新申请通道资源,分配资源等。一个作业任务如果执行的时间很长,超过设定的预置,那么会导致后续的作业任务长时间得不到资源,在本申请实施例方案中,采用杀掉执行逻辑运行过程的作业任务,将其转换到其他通道继续处理,以腾出时间和通道资源来供后续作业任务进行处理。本实施例的实施方案可以大幅提高资源池中通道资源的利用率,提高作业任务的调度处理效率。

上述所述的实施例中资源池中的任务处理通道可以设置为相同的资源分配大小,资源池中一个物理集群中的每个任务处理通道的作业处理能力相同。本申请所述任务调度处理方法的另一种实施例中,相同类型的物理集群中可以设置资源分配大小不同的具有不同作业处理能的任务处理通道。资源池中的任务处理通道在向配置中心注册自己的任务处理通道信息中可以包括表示该任务处理通道的作业能力,或者也可以包括其他如通道类型的信息。这样,作业请求的客户端可以向配置中心注册感兴趣的通道类型,获取该通道类型的所有任务处理通道信息。在作业任务真正开始出调度处理时可以为作业任务分配当前处理能力最强的空闲通道资源去处理。处理完后再向注册中心更新通道资源信息。因此,本申请还提供一种任务调度处理方法的另一种实施例,所述配置中心的通道资源信息包括任务处理通道的作业处理能力的信息;

相应的,所述从所述资源池中选取与所述调度请求对应的任务处理通道分配给相应的作业任务可以包括:从所述资源池中选取作业处理能力与所述调度请求的资源需求相匹配的任务处理通道分配给相应的作业任务。

这样,可以实现根据作业任务时间的资源需求按需分配资源,资源需求较大则为其分配作业能力较强的任务处理通道,资源需求较小则相应的分配作业能力较小的任务处理通道,避免申请占用资源较少的作业任务浪费资源。

基于上述所述的任务调度处理方法,本申请还提供一种任务调度处理装置。图6是本申请提供的一种任务调度处理装置一种实施例的模块结构示意图,如图6所示,所述装置可以包括:

资源池101,可以用于存储部署的任务处理通道的资源;

配置中心102,可以用于获取资源池中的任务处理通道信息映射成的通道资源信息;

资源查询模块103,可以用于当接收到至少一个作业任务的调度请求时,向所述配置中心查询是否有处理所述作业任务的空闲通道资源;

调度处理模块104,可以用于当所述配置中心的查询结果为存在所述空闲通道资源时,按照为所述作业任务设定的资源分配优先级从所述资源池中选取与所述调度请求对应的任务处理通道分配给相应的作业任务。

本申请实施例提供的任务调度处理装置,可以在分布式场景下将处理作业任务的主调度服务器和对应的执行服务器抽象为通道,多个通道可以向一个统一的配置中心注册自己的通道信息,在配置中心映射成通道资源信息。作业请求端的作业任务需要使用资源时,可以向配置中心获取通道资源信息,根据资源池中的资源信息判断当前是否有作业任务可用的空闲 通道资源。如果有,可以分配给调度资源进行任务作业运行。这样,在任务调度处理过程中,当接收到多个作业任务的调度请求时,每个调度任务均可以向配置中心查询是否有可用的空闲通道资源,然后根据配置中心的查询结果按照设定的作业任务优先级为多个作业任务分配相应的资源,实现多通道并行处理的为多个并发提交的任务进行资源分配。没有抢占到资源的作业任务在排队等待过程中,配置中心更新后反馈有空闲通道资源,则可以快速的为排队中的作业任务分配资源。本申请提供的任务调度处理装置可以实现多通道的资源分配,可以按需分配给作业任务资源,解决通道阻塞引起后续作为任务不可执行的问题,提供资源利用率,提高任务调度处理效率。

如前所述,所述装置的一种实施例中,资源池101中的人处理通道启用时开向配置中心注册自己的资源情况。注册成功后,所述的配置中心102可以通过心跳感知任务处理通道的存活情况。当资源池中的任务处理通道资源失效或下线,以及被申请占用/释放等的信息均可以同步更新到配置中心。因此,本申请所述装置的一种实施例中,所述配置中心102可以被设置成,包括:

通过心跳获取所述资源池任务处理通道的存活情况;以及,

实时更新所述资源池中的任务处理通道信息。

当任务处理通道失效(如下线或故障)时,相应的更新配置中心的通道资源信息。在实际任务调度处理运行过程中,资源池中任务处理通道的占用使用情况往往是实时动态变化的,因此,所述配置中心可以被设置成实时感知资源池中各个任务通道的存活情况以及实时更新任务处理通道的占用情况。这样,所述配置中心的通道资源信息可以准确、可靠的反映出当前资源池中任务处理通道的资源情况。

图7是本申请提供的所述任务调度处理装置中调度处理模块104一种实施例的模块结构示意图。具体的,如图7所示,所述调度处理模块104可以包括:

资源判断模块1041,可以用于根据配置中心的可用资源查询结果判断资源池中空闲通道资源数是否满足当前多个作业任务的申请资源量要求;

优先级设定模块1042,可以用于当所述资源判断模块1041的判断结果为否时,采用根据所述多个作业任务中作业任务申请资源的时间先后、作业任务的权重优先级中的任意一种方式作为作业任务的资源分配优先级;

通道资源分配模块1043,可以用于当所述配置中心的资源查询结果为存在所述空闲通道资源时,按照所述优先级设定模块1042设定的资源分配优先级从所述资源池中选取与所述 调度请求对应的任务处理通道分配给相应的作业任务。

具体的实施过程中可以以作业任务申请资源的先后进行资源分配。当资源池的中资源数小于并发提交的多个任务的资源申请量时,先提交资源申请的作业任务可以优先抢占到空闲的任务处理通道资源,后提交的作业任务则资源抢占失败。当然,未抢占到资源作业任务,可以重新回到调度,继续申请资源。

图8是本申请提供的一种任务调度处理装置另一种实施例的模块结构示意图,如图8所示,所述装置还可以包括:

资源失效处理模块105,可以用于当判断资源池中的任务处理通道失效时,更新所述配置中心相应的通道资源信息;以及,根据所述调度请求采用下述方式处理调用到所述失效的任务处理通道的作业任务:

中断正在执行所述失效的任务处理通道的作业任务;

放弃正在排队且还未执行所述失效的任务处理通道的作业任务;

重新调度调用到所述失效的任务处理通道的作业任务,根据所述配置中心更新后的通道资源信息为重新调度的作业任务分配相应的任务处理通道。

具体的执行过程中,可以通过心跳感知主调度服务器(driver)是否存活。当感知主调度服务器失效时,那么相应的注册到配置中心的任务处理通道信息的通道资源信息也会失效。在通道资源下线时可以采用直接将允许中的作业任务中断关闭,如可以设置正在运行的逻辑标识为失败。同时也可以放弃正在排队调用该失效的或下线的任务处理通道的作业人数。进一步的,可以重新调度调用到失效的任务处理通道的作业任务,如可以延时预设的时间后重新将中断或放弃的作业任务调回到调度集群,重新申请通道资源进行任务处理。这样,本实施例提供的处理方式在分布式任务处理的应用场景中可以在资源下线时不会引起作业任务执行丢失的问题,同时执行过程中如果一个任务通道处理作业任务发生异常时,后续排队同样使用该异常任务处理通道的作业任务可以选择其他通道执行。

图9是本申请提供的一种任务调度处理装置另一种实施例的模块结构示意图,如图9所示,所述装置还可以包括:

超时处理模块106,可以用于监视所述作业任务的任务处理通道的占用执行时间,以及当所述占用执行时间大于设定的最大执行时间阈值时,停止所述占用时间大于设置的最大执行时间阈值的作业任务。

在分布式任务处理的应用场景中,但如果一个作业任务的处理时间过长,超出正常的执 行周期,此时可以认为该作业任务在处理过程中出现异常,则应该相应的处理执行时间过长超过设定的时间阈值的作业任务。

图10是本申请提供的一种任务调度处理装置另一种实施例的模块结构示意图,如图10所示,所述装置还可以包括:

任务重启模块107,可以用于按照预设周期扫描获取标记为异常处理的作业任务,根据设置的调度处理配置信息确定是否继续调用所述标记为异常处理的作业任务。

进一步的,还可以设置一个线程,用于扫描作业任务中记录为异常处理的作业任务,然后根据预先的用户配置决定是否继续调度异常处理的作业任务。如果用户的调度处理配置信息设置为否,则可以杀掉占用执行时间大于所述最大执行时间阈值的作业任务,将该作业任务丢弃,并进行相应的日志记录。如果调度处理配置信息设置为是,可以根据配置信息的设置延迟一段时间后重新调度标记为异常处理的作业任务,以及重新申请通道资源,分配资源等。一个作业任务如果执行的时间很长,超过设定的预置,那么会导致后续的作业任务长时间得不到资源,在本申请实施例方案中,采用杀掉执行逻辑运行过程的作业任务,将其转换到其他通道继续处理,以腾出时间和通道资源来供后续作业任务进行处理。本实施例的实施方案可以大幅提高资源池中通道资源的利用率,提高作业任务的调度处理效率。

本申请提供的一种任务调度处理装置另一种实施例中,所述配置中心102中的通道资源信息可以包括任务处理通道的作业处理能力的信息;

相应的,所述调度处理模块104从所述资源池中选取与所述调度请求对应的任务处理通道分配给相应的作业任务包括:从所述资源池中选取作业处理能力与所述调度请求的资源需求相匹配的任务处理通道分配给相应的作业任务。

本实施例中作业请求的客户端可以向配置中心注册感兴趣的通道类型,获取该通道类型的所有任务处理通道信息。在作业任务真正开始出调度处理时可以为作业任务分配当前处理能力最强的空闲通道资源去处理。处理完后再向注册中心更新通道资源信息。这样,可以实现根据作业任务时间的资源需求按需分配资源,资源需求较大则为其分配作业能力较强的任务处理通道,资源需求较小则相应的分配作业能力较小的任务处理通道,避免申请占用资源较少的作业任务浪费资源。

上述所述的任务调度处理方法和装置可以用于分布式业务场景中处理作业任务的服务系统中。所述的系统可以包括由一个或多个物理集群、资源信息中心以及调度处理模块组成。具体的,本申请还提供一种分布式系统应用场景中用于调度资源处理多个作业任务的系统。 具体的,本申请提供的一种分布式任务调度处理系统的一种实施例中,所述系统可以包括:

包括至少一个物理集群的资源池,所述物理集群包括部署的由主调度服务器和相应的执行服务器组成的任务处理通道;

配置中心,可以用于将资源池中任务处理通道映射成通道资源信息,并通过心跳获取所述资源池任务处理通道的存活情况,以及,实时更新所述资源池中的任务处理通道信息。

调度集群,可以用于根据接收到的作业任务的调度请求向所述配置中心查询是否有处理所述作业任务的空闲通道资源;还用于当所述配置中心的查询结果为存在所述空闲通道资源时,按照为所述作业任务设定的资源分配优先级从所述资源池中选取与所述调度请求对应的任务处理通道分配给相应的作业任务。

如前所述,另一种实施方式中,所述分布式任务调度处理系统还可以包括:

资源失效处理单元,可以用于当判断资源池中的任务处理通道失效时,更新所述配置中心相应的通道资源信息;以及,根据所述调度请求采用下述方式处理调用到所述失效的任务处理通道的作业任务:

中断正在执行所述失效的任务处理通道的作业任务;

放弃正在排队且还未执行所述失效的任务处理通道的作业任务;

重新调度调用到所述失效的任务处理通道的作业任务,根据所述配置中心更新后的通道资源信息为重新调度的作业任务分配相应的任务处理通道。

另一种实施方式中,所述分布式任务调度处理系统还可以包括:

超时处理模块,可以用于监视所述作业任务的任务处理通道的占用执行时间,以及当所述占用执行时间大于设定的最大执行时间阈值时,停止所述占用时间大于设置的最大执行时间阈值的作业任务;还可以用于按照预设周期扫描获取标记为异常处理的作业任务,根据设置的调度处理配置信息确定是否继续调用所述标记为异常处理的作业任务。

具体的,上述实施例提供的分布式任务调度处理系统中所述的资源分配优先级、物理集群、通道资源失效(下线)、作业任务执行超时等的相关描述及选取设置方式可以参照前述所述,在此不做赘述。

本申请提供任务调度处理方法、装置及系统,可以采用配置多通道的处理方式解决单个作业僵死引起的通道阻塞问题,并且能提供多个作业任务并行提交、并行处理,快速、高效的为作业任务分配所需的资源,大大提高任务调度处理效率和资源利用率。

尽管本申请内容中提到资源池设置、通道资源映射、通过心跳感知driver存活、资源分配、利用线程监控资源执行时间、作业任务重启等之类数据设置、信息交互、信息监控等的 描述,但是,本申请并不局限于必须是完全符合数据处理标准、通信交互标识协议或实施例所描述的情况。某些设计语言、通信标识、协议或实施例描述的基础上略加修改后的实施方案也可以实现上述实施例相同、等同或相近、或变形后可预料的实施效果。当然,即使不采用上述行业标准、协议的数据处理、判断的方式,只要符合本申请上述各实施例的资源配置、信息交互和信息判断反馈方式,仍然可以实现相同的申请,在此不再赘述。

虽然本申请提供了如实施例或流程图所述的方法操作步骤,但基于常规或者无创造性的手段可以包括更多或者更少的操作步骤。实施例中列举的步骤顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。在实际中的装置或系统产品执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行(例如并行处理器或者多线程处理的环境)。

上述实施例阐明的单元、装置或模块,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。为了描述的方便,描述以上装置时以功能分为各种模块分别描述。当然,在实施本申请时可以把各模块的功能在同一个或多个软件和/或硬件中实现,也可以将实现同一功能的模块由多个子模块或子单元的组合实现,例如可以将存储器分成模板仓库和标签仓库,分别存储邮件模板和设置的结构标签、变量标签等。

本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内部包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。

本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构、类等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。

通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,移动终端,服务器,或者网络设备等)执行本申请各个实施例或者实施例的某些部分所述的方法。

本说明书中的各个实施例采用递进的方式描述,各个实施例之间相同或相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。本申请可用于众多通用或专用的计算机系统环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器系统、基于微处理器的系统、置顶盒、可编程的电子设备、网络pc、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等等。

虽然通过实施例描绘了本申请,本领域普通技术人员知道,本申请有许多变形和变化而不脱离本申请的精神,希望所附的权利要求包括这些变形和变化而不脱离本申请的精神。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1