分布式任务调度方法及系统的制作方法

文档序号:10626971阅读:416来源:国知局
分布式任务调度方法及系统的制作方法
【专利摘要】本申请公开了一种分布式任务调度方法及系统,其中,分布式任务调度方法包括:至少一个应用服务器从分布式服务器集群中获取待处理的任务;至少一个应用服务器计算获取到的对应任务的运行周期;以及至少一个应用服务器根据任务的运行周期处理对应的任务,并向分布式服务器集群返回对应的任务处理结果,重复上述操作,直至分布式服务器集群中不存在待处理的任务。本申请实施例的分布式任务调度方法及系统,可以通过多个应用服务器并行处理任务,从而大大提高了任务的处理效率。
【专利说明】
分布式任务调度方法及系统
技术领域
[0001]本申请涉及服务器技术领域,尤其涉及一种分布式任务调度方法及系统。
【背景技术】
[0002]随着互联网和电子商务的快速发展,出现了很多新的产品,其中余额宝等理财产品便是出现的一种产品。由于使用电子商务平台进行各种业务的用户数众多,因此,针对不同的业务需要处理的任务众多。
[0003]目前,处理任务的方式为:通过消息驱动的方式进行任务分发,在每次任务分发时,集群中只有一个服务器可以处理任务。其中,消息是一个报告事件发生的通知,消息驱动是围绕消息的产生与处理展开的,并依靠消息循环机制来实现。
[0004]由此可见,在现有的任务处理过程中只有一台服务器可以处理任务,其他服务器均处于等待状态,因此,处理效率较低。

【发明内容】

[0005]本申请旨在至少在一定程度上解决相关技术中的技术问题之一。为此,本申请的一个目的在于提出一种分布式任务调度方法,可以通过多个应用服务器并行处理任务,从而大大提高了任务的处理效率。
[0006]本申请的第二个目的在于提出一种分布式任务调度系统。
[0007]为了实现上述目的,本申请第一方面实施例提出了一种分布式任务调度方法,包括:至少一个应用服务器从分布式服务器集群中获取待处理的任务;所述至少一个应用服务器计算获取到的对应任务的运行周期;以及所述至少一个应用服务器根据所述任务的运行周期处理对应的任务,并向所述分布式服务器集群返回对应的任务处理结果,重复上述操作,直至所述分布式服务器集群中不存在待处理的任务。
[0008]上述分布式任务调度方法,通过至少一个应用服务器从分布式服务器集群中获取待处理的任务,计算获取到的对应任务的运行周期;以及根据上述任务的运行周期处理对应的任务,并向上述分布式服务器集群返回对应的任务处理结果,重复上述操作,直至分布式服务器集群中不存在待处理的任务;由此可见,本申请实施例的分布式任务调度方法可以通过多个应用服务器并行处理任务,从而大大提高了任务的处理效率。
[0009]为了实现上述目的,本申请第二方面实施例提出了一种分布式任务调度系统,包括:分布式服务器集群,用于保存任务,所述任务包括待处理的任务,并接收任务处理结果;以及至少一个应用服务器,用于从所述分布式服务器集群中获取待处理的任务,计算对应任务的运行周期;以及根据所述任务的运行周期处理对应的任务,并向所述分布式服务器集群返回所述任务处理结果,重复上述操作,直至所述分布式服务器集群中不存在待处理的任务。
[0010]上述分布式任务调度系统,通过分布式服务器集群保存任务,通过至少一个应用服务器从分布式服务器集群中获取待处理的任务,计算对应任务的运行周期;以及根据上述任务的运行周期处理对应的任务,并向上述分布式服务器集群返回上述任务处理结果,重复上述操作,直至分布式服务器集群中不存在待处理的任务;由此可见,本申请实施例的分布式任务调度方法可以通过多个应用服务器并行处理任务,从而大大提高了任务的处理效率。
【附图说明】
[0011]图1是本申请一个实施例分布式任务调度方法的流程图。
[0012]图2是是本申请另一个实施例分布式任务调度方法的流程图。
[0013]图3是本申请一个实施例分布式任务调度系统的结构示意图。
[0014]图4是本申请另一个实施例分布式任务调度系统的结构示意图。
【具体实施方式】
[0015]下面详细描述本申请的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本申请,而不能理解为对本申请的限制。
[0016]下面参考附图描述本申请实施例的分布式任务调度方法及系统。
[0017]图1是本申请一个实施例分布式任务调度方法的流程图。
[0018]如图1所示,该分布式任务调度方法包括:
[0019]S101,至少一个应用服务器从分布式服务器集群中获取待处理的任务。
[0020]其中,分布式服务器集群可以为zooke^er服务器集群或其他服务器集群。至少一个应用服务器包括多个应用服务器。
[0021]具体地,SlOl可以为:至少一个应用服务器例如多个应用服务器定时或实时向上述分布式服务器集群发送查询请求,若查询结果表示上述分布式服务器集群中存在待处理的任务,则从上述分布式服务器集群中获取待处理的任务。
[0022]其中,待处理的任务可以为具有不同运行周期的不同类型的业务,例如可以为每天下午3点计算余额宝的收益或计算某一基金每天的收益等。
[0023]S102,至少一个应用服务器计算获取到的对应任务的运行周期。
[0024]至少一个应用服务器根据获取到的任务可以计算出对应的运行周期,例如,对于“每天下午3点计算余额宝的收益”这一任务而言,其运行周期为每天下午3点。
[0025]S103,至少一个应用服务器根据上述任务的运行周期处理对应的任务,并向上述分布式服务器集群返回对应的任务处理结果,重复上述操作,直至上述分布式服务器集群中不存在待处理的任务。
[0026]至少一个应用服务器例如多个应用服务器可以待当前时间与获取到的任务的运行周期吻合时开始处理任务,并在任务处理结果中携带任务的处理状态,其中,任务的处理状态包括已完成和未完成状态。
[0027]当多个应用服务器处理完当前任务后,重新从分布式服务器集群例如zook^per服务器集群中获取任务,即重复执行S101-103,直至分布式服务器集群不存在待处理的任务。
[0028]上述分布式任务调度方法,通过至少一个应用服务器从分布式服务器集群中获取待处理的任务,计算获取到的对应任务的运行周期;以及根据上述任务的运行周期处理对应的任务,并向上述分布式服务器集群返回对应的任务处理结果,重复上述操作,直至分布式服务器集群中不存在待处理的任务;由此可见,本申请实施例的分布式任务调度方法可以通过多个应用服务器并行处理任务,从而大大提高了任务的处理效率。
[0029]图2是本申请另一个实施例分布式任务调度方法的流程图。
[0030]如图2所示,该分布式任务调度方法包括:
[0031]S200,多个应用服务器向分布式服务器集群发送心跳数据,以与分布式服务器集群建立长连接,并生成对应的标识。
[0032]其中,分布式服务器集群可以为zooke^er服务器集群或其他服务器集群。
[0033]具体地,S200可以为:多个应用服务器可以初始化配置文件,连接分布式服务器集群例如zook^per服务器集群,同时生成本服务器的唯一标识(UUID)。
[0034]上述分布式服务器集群例如zookeeper服务器集群可以动态地增加或减少任务。
[0035]S201,多个应用服务器查询分布式服务器集群中是否存在待处理的任务,若存在,执行S202,若不存在,操作结束。
[0036]具体地,S201可以为:多个应用服务器定时或实时向上述分布式服务器集群发送查询请求,以查询分布式服务器集群中是否存在待处理的任务。
[0037]S202,多个应用服务器从分布式服务器集群中获取待处理的任务,并为上述任务设置对应的标识。
[0038]在该实施例中,若查询结果表示上述分布式服务器集群中存在待处理的任务,则从上述分布式服务器集群中获取待处理的任务。其中,待处理的任务可以为具有不同运行周期的不同类型的业务。
[0039]在该实施例中,为任务设置对应的标识是为了标记该任务已经有服务器在处理了,从而避免同一任务被重复处理的情况发生。
[0040]具体地,为任务设置对应的标识可以为:将服务器的标识设置为对应任务的标识,当然也可以为对应任务设置其他的标识,此处不做具体限定。
[0041]S203,多个应用服务器计算获取到的对应任务的运行周期。
[0042]多个应用服务器根据获取到的任务可以计算出对应的运行周期,例如,对于“每天下午3点计算余额宝的收益”这一任务而言,其运行周期为每天下午3点。
[0043]S204,多个应用服务器根据上述任务的运行周期处理对应的任务,并向上述分布式服务器集群返回对应的任务处理结果,然后转向S201。
[0044]多个应用服务器例如多个应用服务器可以待当前时间与获取到的任务的运行周期吻合时开始处理任务,并在任务处理结果中携带任务的处理状态,其中,任务的处理状态包括已完成和未完成状态。
[0045]当多个应用服务器处理完当前任务后,重新从分布式服务器集群例如zook^per服务器集群中获取任务,直至分布式服务器集群不存在待处理的任务。
[0046]上述分布式任务调度方法,可以通过多个应用服务器并行处理任务,从而大大提高了任务的处理效率,同时为任务设置标识,可以避免同一任务被重复处理的情况发生。
[0047]为了实现上述实施例,本申请还提出一种分布式任务调度系统。
[0048]图3是本申请一个实施例分布式任务调度系统的结构示意图。
[0049]如图3所示,上述分布式任务调度系统包括分布式服务器集群31和至少一个应用服务器32,其中:
[0050]分布式服务器集群31用于保存任务,上述任务包括待处理的任务,并接收任务处理结果;至少一个应用服务器32用于从上述分布式服务器集群31中获取待处理的任务,计算对应任务的运行周期;以及根据上述任务的运行周期处理对应的任务,并向上述分布式服务器集群返回上述任务处理结果,重复上述操作,直至分布式服务器集群中不存在待处理的任务。
[0051]其中,分布式服务器集群可以为zooke印er服务器集群或其他服务器集群。至少一个应用服务器包括多个应用服务器32。
[0052]其中,上述至少一个应用服务器31还用于:在从分布式服务器集群中获取待处理的任务之前,向上述分布式服务器集群发送心跳数据,以与上述分布式服务器集群建立长连接,并生成对应的标识。
[0053]另外,上述至少一个应用服务器32还用于:为获取到的任务设置对应的标识,以使上述分布式服务器集群标记对应的任务已被处理。由此可见,为任务设置对应的标识是为了标记该任务已经有服务器在处理了,从而避免同一任务被重复处理的情况发生。
[0054]具体地,上述至少一个应用服务器32可以用于将服务器的标识设置为对应任务的标识,当然也可以为对应任务设置其他的标识,此处不做具体限定。
[0055]具体地,如图4所示,上述至少一个应用服务器32可以包括:任务调度模块321,任务调度模块321用于从上述分布式服务器集群中获取待处理的任务。
[0056]另外,上述至少一个应用服务器32还可以包括接口提供模块322,该接口提供模块322用于提供业务处理接口,上述业务处理接口用于处理对应类型的任务。具体地,需要实现的业务处理接口可以为:IscheduleTaskExe,该接口定义的方法为:
[0057]/**
[0058]*执行从服务器获取的任务数据
[0059]*/
[0060]boolean execute (T task)throws Except1n ;
[0061]......
[0062]如图4所示,上述分布式服务器集群31可以包括接口模块311、属性保存模块312和管理模块313,其中:接口模块311用于从分布式服务器读取任务,并对读取的任务进行格式转换;属性保存模块312用于按照不同的模型类型保存格式转换后的任务的属性信息;管理模块313用于将格式转换后的任务保存到对应的目录下。
[0063]其中,分布式服务器可以为zooke印er服务器。模型类型可以包括但不限于任务类型、队列类型和时间周期类型。
[0064]具体地,任务调度模块321定时或实时向上述分布式服务器集群发送查询请求,若查询结果表示上述分布式服务器集群中的目录下存在待处理的任务,则从上述分布式服务器集群中获取待处理的任务。其中,待处理的任务可以为具有不同运行周期的不同类型的业务,例如可以为每天下午3点计算余额宝的收益或计算某一基金每天的收益等。
[0065]应用服务器32通过任务调度模块321获取待处理的任务后,可以计算对应任务的运行周期,并待当前时间与获取到的任务的运行周期吻合时通过接口提供模块322提供的业务处理接口处理对应类型的任务。
[0066]需要说明的是,图3或图4中的分布式服务器集群例如zookeeper服务器集群可接收管理员发布或撤销的任务,从而可以动态地增加或减少任务。
[0067]上述分布式任务调度系统,通过分布式服务器集群保存任务,通过至少一个应用服务器从分布式服务器集群中获取待处理的任务,计算对应任务的运行周期;以及根据上述任务的运行周期处理对应的任务,并向上述分布式服务器集群返回上述任务处理结果,重复上述操作,直至分布式服务器集群中不存在待处理的任务;由此可见,本申请实施例的分布式任务调度方法可以通过多个应用服务器并行处理任务,从而大大提高了任务的处理效率。
[0068]在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本申请的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
[0069]此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本申请的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
[0070]流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本申请的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本申请的实施例所属技术领域的技术人员所理解。
[0071]在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,〃计算机可读介质"可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(R0M),可擦除可编辑只读存储器(EPR0M或闪速存储器),光纤装置,以及便携式光盘只读存储器(CDROM)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
[0072]应当理解,本申请的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
[0073]本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
[0074]此外,在本申请各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
[0075]上述提到的存储介质可以是只读存储器,磁盘或光盘等。尽管上面已经示出和描述了本申请的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本申请的限制,本领域的普通技术人员在本申请的范围内可以对上述实施例进行变化、修改、替换和变型。
【主权项】
1.一种分布式任务调度方法,其特征在于,包括: 至少一个应用服务器从分布式服务器集群中获取待处理的任务; 所述至少一个应用服务器计算获取到的对应任务的运行周期;以及 所述至少一个应用服务器根据所述任务的运行周期处理对应的任务,并向所述分布式服务器集群返回对应的任务处理结果,重复上述操作,直至所述分布式服务器集群中不存在待处理的任务。2.根据权利要求1所述的方法,其特征在于,所述至少一个应用服务器从分布式服务器集群中获取待处理的任务,包括: 所述至少一个应用服务器定时或实时向所述分布式服务器集群发送查询请求,若查询结果表示所述分布式服务器集群中存在待处理的任务,则从所述分布式服务器集群中获取待处理的任务。3.根据权利要求1所述的方法,其特征在于,所述至少一个应用服务器从分布式服务器集群中获取待处理的任务时,还包括: 为所述任务设置对应的标识,以使所述分布式服务器集群标记对应的任务已被处理。4.根据权利要求3所述的方法,其特征在于,所述为所述任务设置对应的标识,包括: 将服务器的标识设置为对应任务的标识。5.根据权利要求1所述的方法,其特征在于,所述任务处理结果中携带有任务的处理状态信息。6.根据权利要求4所述的方法,其特征在于,在所述至少一个应用服务器从分布式服务器集群中获取待处理的任务之前,还包括: 所述至少一个应用服务器向所述分布式服务器集群发送心跳数据,以与所述分布式服务器集群建立长连接,并生成对应的标识。7.一种分布式任务调度系统,其特征在于,包括: 分布式服务器集群,用于保存任务,所述任务包括待处理的任务,并接收任务处理结果;以及 至少一个应用服务器,用于从所述分布式服务器集群中获取待处理的任务,计算对应任务的运行周期;以及根据所述任务的运行周期处理对应的任务,并向所述分布式服务器集群返回所述任务处理结果,重复上述操作,直至所述分布式服务器集群中不存在待处理的任务。8.根据权利要求7所述的系统,其特征在于,所述至少一个应用服务器,还用于: 在从分布式服务器集群中获取待处理的任务之前,向所述分布式服务器集群发送心跳数据,以与所述分布式服务器集群建立长连接,并生成对应的标识。9.根据权利要求8所述的系统,其特征在于,所述至少一个应用服务器,还用于: 为所述任务设置对应的标识,以使所述分布式服务器集群标记对应的任务已被处理。10.根据权利要求9所述的系统,其特征在于,所述至少一个应用服务器,具体用于: 将服务器的标识设置为对应任务的标识。11.根据权利要求7所述的系统,其特征在于,所述至少一个应用服务器包括:任务调度模块,用于从所述分布式服务器集群中获取待处理的任务。12.根据权利要求11所述的系统,其特征在于,所述分布式服务器集群包括: 接口模块,用于从分布式服务器读取任务,并对读取的任务进行格式转换; 属性保存模块,用于按照不同的模型类型保存格式转换后的任务的属性信息;以及 管理模块,用于将格式转换后的任务保存到对应的目录下。13.根据权利要求12所述的系统,其特征在于,所述任务调度模块,具体用于:定时或实时向所述分布式服务器集群发送查询请求,若查询结果表示所述分布式服务器集群中的所述目录下存在待处理的任务,则从所述分布式服务器集群中获取待处理的任务。14.根据权利要求11所述的系统,其特征在于,所述至少一个应用服务器还包括:接口提供模块,用于提供业务处理接口 ;所述业务处理接口,用于处理对应类型的任务。15.根据权利要求14所述的系统,其特征在于,所述业务处理接口,具体用于:根据对应类型任务的运行周期处理对应的任务。
【文档编号】H04L29/08GK105991737SQ201510088763
【公开日】2016年10月5日
【申请日】2015年2月26日
【发明人】何杰
【申请人】阿里巴巴集团控股有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1