应用于分布式作业引擎的分布式作业方法、系统以及装置制造方法及图纸

技术编号:22166777 阅读:43 留言:0更新日期:2019-09-21 10:31
本申请实施例公开了一种应用于分布式作业引擎的分布式作业系统,包括:服务器,用于响应于接收到新任务下发指令,下发新任务下发指令对应的新任务,并将新任务写入数据库;任务执行器,用于响应于检测到数据库接收到新任务,向新任务添加用于指示执行新任务的任务执行器的标识的分配标记;响应于确定添加成功,执行新任务,并将新任务的执行结果写入数据库。本公开的实施例可应用于云计算,并且由于保证在同一时刻同一个任务不会被重复添加分配标记,因此任务执行器可以多副本部署,从而能大幅提高系统整体可用性。进一步地,通过将系统的任务执行器部署在多个机房,可实现跨机房容灾。

Distributed Work Method, System and Device Applied to Distributed Job Engine

【技术实现步骤摘要】
应用于分布式作业引擎的分布式作业方法、系统以及装置
本申请实施例涉及计算机
,具体涉及一种应用于分布式作业引擎的分布式作业方法。
技术介绍
分布式作业引擎是支持分布式处理作业的软件系统,可以供用户定义作业、发起作业及查询作业执行结果。目前主流的分布式作业引擎实现包含两个核心组件:任务分发器和任务执行器,任务分发器是全局唯一的。这种设计的假设前提是任务分发器不会成为系统性能瓶颈,可以大幅简化实现难度。在这种设计的系统中部署多个任务分发器的话,任务分发器并不能感知到其它分发器的存在,因此可能会分发重复的任务。因此任务分发器不具备单机容错性。这导致系统在任务分发器出现故障时,无法正常处理用户发起的任务。因此系统整体可用性较低。
技术实现思路
本申请实施例提出了应用于分布式作业引擎的分布式作业方法和系统。第一方面,本申请实施例提供了一种应用于分布式作业引擎的分布式作业方法,其中,所述分布式作业引擎包括:数据库和任务执行器,所述方法包括:响应于检测到数据库接收到新任务,向所述新任务添加用于指示执行所述新任务的任务执行器的标识的分配标记;响应于确定添加成功,执行所述新任务,并将所述新任务的执行结果写入所述数据库。在一些实施例中,所述响应于检测到数据库接收到新任务,向所述新任务添加用于指示执行所述新任务的任务执行器的标识的分配标记之前,所述方法还包括:检测所述数据库中的任务是否具有用于指示执行该任务的任务执行器的标识的分配标记;响应于确定所述数据库中的任务不具有用于指示执行该任务的任务执行器的标识的分配标记,将该任务确定为新任务。在一些实施例中,所述响应于检测到数据库接收到新任务,向所述新任务添加用于指示执行所述新任务的任务执行器的标识的分配标记,包括:响应于检测到数据库接收到新任务,将用于指示执行所述新任务的任务执行器的标识的分配标记写入所述数据库任务列表中;所述响应于确定添加成功,执行所述新任务,并将所述新任务的执行结果写入所述数据库,包括:响应于数据库中所述分配标记的写入记录所指示的分配标记写入次数为1,确定添加成功;执行所述新任务,并将所述新任务的执行结果写入所述数据库。第二方面,本申请实施例提供了一种应用于分布式作业引擎的分布式作业系统,包括:服务器,用于响应于接收到新任务下发指令,下发所述新任务下发指令对应的新任务,并将所述新任务写入数据库;任务执行器,用于响应于检测到数据库接收到新任务,向所述新任务添加用于指示执行所述新任务的任务执行器的标识的分配标记;响应于确定添加成功,执行所述新任务,并将所述新任务的执行结果写入所述数据库;数据库,用于存储所述新任务。在一些实施例中,任务执行器,还用于检测所述数据库中的任务是否具有用于指示执行该任务的任务执行器的标识的分配标记;响应于确定所述数据库中的任务不具有用于指示执行该任务的任务执行器的标识的分配标记,将该任务确定为新任务。在一些实施例中,多个任务执行器通过选举产生一个Leader执行器;所述Leader执行器,用于响应于接收到所述Leader执行器之外的任务执行器的获取任务请求,检测数据库是否存在新任务;响应于检测到所述数据库存在新任务,向所述新任务添加用于指示执行所述新任务的任务执行器的标识的分配标记。在一些实施例中,任务执行器,用于响应于检测到数据库接收到新任务,将用于指示执行所述新任务的任务执行器的标识的分配标记写入所述数据库任务列表中;响应于数据库中所述分配标记的写入记录所指示的分配标记写入次数为1,确定添加成功;执行所述新任务,并将所述新任务的执行结果写入所述数据库。在一些实施例中,响应于数据库中所述添加记录的写入记录所指示的分配标记写入次数大于1,所述任务执行器不执行所述新任务。第三方面,本申请实施例提供了一种应用于分布式作业引擎的分布式作业装置,其中,所述分布式作业引擎包括:数据库和任务执行器,所述装置包括:标记添加单元,被配置为响应于检测到数据库接收到新任务,向所述新任务添加用于指示执行所述新任务的任务执行器的标识的分配标记;任务执行单元,被配置为响应于确定添加成功,执行所述新任务,并将所述新任务的执行结果写入所述数据库。在一些实施例中,新任务确定单元,还被配置为向所述新任务添加用于指示执行所述新任务的任务执行器的标识的分配标记之前,检测所述数据库中的任务是否具有用于指示执行该任务的任务执行器的标识的分配标记;响应于确定所述数据库中的任务不具有用于指示执行该任务的任务执行器的标识的分配标记,将该任务确定为新任务。在一些实施例中,标记添加单元,还被配置为响应于检测到数据库接收到新任务,将用于指示执行所述新任务的任务执行器的标识的分配标记写入所述数据库任务列表中;任务执行单元,还被配置为响应于数据库中所述分配标记的写入记录所指示的分配标记写入次数为1,确定添加成功;执行所述新任务,并将所述新任务的执行结果写入所述数据库。第四方面,本申请实施例提供了一种计算机可读介质,其上存储有计算机程序,其中,所述程序被处理器执行时实现如第一方面任一实现方式描述的方法。第五方面,本申请实施例提供了一种电子设备,包括:一个或多个处理器;存储装置,其上存储有一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如第一方面任一实现方式描述的方法。本申请实施例提供的应用于分布式作业引擎的分布式作业方法和系统,任务执行器用于响应于检测到数据库接收到新任务,向新任务添加用于指示执行新任务的任务执行器的标识的分配标记;响应于确定添加成功,执行新任务。本公开提供的应用于分布式作业引擎的分布式作业的技术方案保证了在同一时刻同一个任务不会被重复添加分配标记,因此任务执行器可以多副本部署,能大幅提高系统整体可用性。可以将系统的任务执行器部署在多个机房,实现跨机房容灾。附图说明通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:图1是本申请的一个实施例可以应用于其中的示例性系统架构图;图2是根据本申请的分布式作业方法的一个实施例的流程图;图3A~3C是根据本实施例的分布式作业方法的应用场景的示意图;图4是根据本申请的分布式作业方法的又一个实施例的流程图;图5是根据本申请的分布式作业系统的一个实施例的结构图;图6是根据本申请的分布式作业装置的一个实施例的结构图;图7是适于用来实现本申请实施例的计算机系统的结构示意图。具体实施方式下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关专利技术,而非对该专利技术的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与有关专利技术相关的部分。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。在本申请一个典型的配置中,任务执行器、服务器均包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flashRAM)。内存是计算机可读介质的示例。计算机可读介质包括永久性和非永久性、可移动和非可移动媒体,可以由任本文档来自技高网...

【技术保护点】
1.一种应用于分布式作业引擎的分布式作业方法,其中,所述分布式作业引擎包括:数据库和任务执行器,所述方法包括:响应于检测到数据库接收到新任务,向所述新任务添加用于指示执行所述新任务的任务执行器的标识的分配标记;响应于确定添加成功,执行所述新任务,并将所述新任务的执行结果写入所述数据库。

【技术特征摘要】
1.一种应用于分布式作业引擎的分布式作业方法,其中,所述分布式作业引擎包括:数据库和任务执行器,所述方法包括:响应于检测到数据库接收到新任务,向所述新任务添加用于指示执行所述新任务的任务执行器的标识的分配标记;响应于确定添加成功,执行所述新任务,并将所述新任务的执行结果写入所述数据库。2.根据权利要求1所述的方法,其中,在所述响应于检测到数据库接收到新任务,向所述新任务添加用于指示执行所述新任务的任务执行器的标识的分配标记之前,所述方法还包括:检测所述数据库中的任务是否具有用于指示执行该任务的任务执行器的标识的分配标记;响应于确定所述数据库中的任务不具有用于指示执行该任务的任务执行器的标识的分配标记,将该任务确定为新任务。3.根据权利要求1所述的方法,其中,所述响应于检测到数据库接收到新任务,向所述新任务添加用于指示执行所述新任务的任务执行器的标识的分配标记,包括:响应于检测到数据库接收到新任务,将用于指示执行所述新任务的任务执行器的标识的分配标记写入所述数据库任务列表中;所述响应于确定添加成功,执行所述新任务,并将所述新任务的执行结果写入所述数据库,包括:响应于数据库中所述分配标记的写入记录所指示的分配标记写入次数为1,确定添加成功;执行所述新任务,并将所述新任务的执行结果写入所述数据库。4.一种应用于分布式作业引擎的分布式作业系统,包括:服务器,用于响应于接收到新任务下发指令,下发所述新任务下发指令对应的新任务,并将所述新任务写入数据库;任务执行器,用于响应于检测到数据库接收到新任务,向所述新任务添加用于指示执行所述新任务的任务执行器的标识的分配标记;响应于确定添加成功,执行所述新任务,并将所述新任务的执行结果写入所述数据库;数据库,用于存储所述新任务。5.根据权利要求4所述的系统,其中,任务执行器,还用于检测所述数据库中的任务是否具有用于指示执行该任务的任务执行器的标识的分配标记;响应于确定所述数据库中的任务不具有用于指示执行该任务的任务执行器的标识的分配标记,将该任务确定为新任务。6.根据权利要求4或5所述的系统,其中,多个任务执行器通过选举产生一个Leader执行器;所述Leader执行器,用于响应于接收到所述Leader执行器之外的任...

【专利技术属性】
技术研发人员:陈骅骏
申请(专利权)人:北京百度网讯科技有限公司
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1