CN114327819A - 一种任务管理方法、装置、设备及存储介质 - Google Patents

一种任务管理方法、装置、设备及存储介质 Download PDF

Info

Publication number
CN114327819A
CN114327819A CN202111600455.3A CN202111600455A CN114327819A CN 114327819 A CN114327819 A CN 114327819A CN 202111600455 A CN202111600455 A CN 202111600455A CN 114327819 A CN114327819 A CN 114327819A
Authority
CN
China
Prior art keywords
task
subtask
node
subtasks
executing
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202111600455.3A
Other languages
English (en)
Other versions
CN114327819B (zh
Inventor
王益飞
汪洋
王宇
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Baidu Netcom Science and Technology Co Ltd
Original Assignee
Beijing Baidu Netcom Science and Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Baidu Netcom Science and Technology Co Ltd filed Critical Beijing Baidu Netcom Science and Technology Co Ltd
Priority to CN202111600455.3A priority Critical patent/CN114327819B/zh
Publication of CN114327819A publication Critical patent/CN114327819A/zh
Application granted granted Critical
Publication of CN114327819B publication Critical patent/CN114327819B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本公开提供了一种任务管理方法、装置、设备及存储介质,涉及知识图谱等人工智能技术领域,尤其涉及分布式系统技术领域。具体实现方案为:查询任务配置数据,确定待执行任务,确定所述待执行任务包括的子任务,将各子任务的任务信息记录至所述任务配置数据,并从所述分布式系统包括的节点中,确定用于执行各子任务的节点,指示所确定的各节点执行对应的子任务。本公开实施例提供的方案,通过分析任务的子任务,确定任务执行节点,实现了任务管理。

Description

一种任务管理方法、装置、设备及存储介质
技术领域
本公开涉及知识图谱等人工智能技术领域,尤其涉及分布式系统技术领域。
背景技术
分布式系统中包括多个节点,各个节点可以存储数据或者执行任务。当分布式系统中存在待执行的任务时,可能需要多个节点共同完成。
当前,分布式系统中存在任务时,分布式系统中的节点一般直接将任务存储在第三方存储服务中。当分布式系统中的节点需要执行任务时,从第三方存储服务中拉取需要执行的任务。
发明内容
本公开提供了一种用于任务管理的方法、装置、设备以及存储介质。
根据本公开的一方面,提供了一种任务管理方法,应用于任务管理服务,包括:
查询任务配置数据,确定待执行任务,其中,所述任务配置数据用于记录分布式系统中任务的信息;
确定所述待执行任务包括的子任务;
将各子任务的任务信息记录至所述任务配置数据,并从所述分布式系统包括的节点中,确定用于执行各子任务的节点;
指示所确定的各节点执行对应的子任务。
根据本公开的另一方面,提供了一种任务管理装置,包括:
配置模块,用于记录分布式系统中任务的信息;
管理模块,用于查询任务配置数据,确定待执行任务;确定所述待执行任务包括的子任务;将各子任务的任务信息记录至所述任务配置数据;
调度模块,用于从所述分布式系统包括的节点中,确定用于执行各子任务的节点;指示所确定的各节点执行对应的子任务。
根据本公开的另一方面,提供了一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行上述任务管理方法。
根据本公开的另一方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行上述任务管理方法。
根据本公开的另一方面,提供了一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现上述任务管理方法。
由以上可见,本公开实施例提供的方案中,任务管理服务在获得待执行任务后,确定待执行任务的子任务,为各个子任务确定执行该子任务的节点,并指示各个节点执行对应的子任务。可见,本公开实施例提供的方案中,存任务执行需求时,不需要分布式系统中的节点主动拉取任务,而是由任务管理服务根据待执行任务的子任务的情况,为各个子任务分配用于执行子任务的节点,并控制节点执行子任务,实现了任务管理服务对任务的管理。
应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
附图用于更好地理解本方案,不构成对本公开的限定。其中:
图1是本公开实施例提供的第一种任务管理方法的流程示意图;
图2是本公开实施例提供的第二种任务管理方法的流程示意图;
图3是本公开实施例提供的第三种任务管理方法的流程示意图;
图4是本公开实施例提供的一种异常处理方法的流程示意图;
图5是本公开实施例提供的一种任务管理装置的结构示意图;
图6是用来实现本公开实施例提供的任务管理方法的电子设备的框图。
具体实施方式
以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
下面对本公开实施例所提供方案的执行主体进行介绍。
本公开实施例所提供方案的执行主体为任务管理服务,该任务管理服务配置于分布式系统。
一种情况下,该任务管理服务可以配置于分布式系统中的一个节点中,例如,具有管理功能的节点,这种情况下,本公开实施例提供的方案的执行主体也可以理解为上述配置有任务管理服务的节点。
另一种情况下,该任务管理服务可以具有不同的功能模块,例如,配置模块、管理模块和调度模块等,这种情况下,上述不同的功能模块可以配置于分布式系统的不同节点中,在此基础上,本公开实施例所提供方案的执行主体也可以理解为上述配置有不同功能模块的节点。
下面对本公开实施例提供的任务管理方法进行详细介绍。
参见图1,为本公开实施例提供的第一种任务管理方法的流程示意图,该方法应用于任务管理服务。
具体的,上述任务管理方法包括以下步骤S101-S104。
步骤S101:查询任务配置数据,确定待执行任务。
其中,任务配置数据用于记录分布式系统中任务的信息。在上述任务管理服务包括多个功能模块的情况下,可以由配置模块对任务配置数据进行管理,将分布式系统中各任务的信息记录至任务配置数据中。
分布式系统中的任务与分布式系统能够向用户提供的服务相关,可以随着分布式系统能够向用户提供的服务不同而变化。例如,分布式系统能够向用户提供表格服务,这种情况下,上述任务可以是表格创建任务、表格删除任务、表格修改任务等,本公开实施例仅以上述为例进行说明,并不对任务的具体内容进行限定。另外,分布式系统中的任务可以为异步任务。
上述任务的信息可以包括任务的类型、执行参数、任务的状态、任务的执行优先级、任务的执行条件等。其中,上述执行参数可以包括:数据类型和参数值。
上述任务的信息在任务配置数据中可以存在多种存储形式,一种实现方式中,任务的信息可以以Key-Value(健-值)的形式存储在配置数据中,任务标识为Key,任务的信息为Value。
其中,上述任务标识可以按照以下两种方式生成。
一种实现方式中,任务标识可以由任务管理服务生成。为了保证任务标识的唯一性,任务管理服务可以采用标识自增方式生成任务标识。这种情况下,当分布式系统中存在新的任务时,均在已有最新任务标识的基础上按照预设步长增加任务标识的取值,从而得到上述新的任务的任务标识。例如,上述预设步长可以是1、2等。另外,这种情况下,任务管理服务生成任务标识后,还可以向用户提供上述任务标识,以使得用户可以依据任务标识进行任务查询等操作。
另一种实现方式中,任务标识也可以由人工设置。
在上述任务管理服务包括多个功能模块的情况下,可以由管理模块指示配置模块进行任务配置数据查询,根据任务配置数据记录的信息确定待执行任务,配置模块查询到待执行任务后,向管理模块反馈查询结果。
下面对确定待执行任务的具体方式进行说明。
由于任务配置数据中记录了丰富的信息,因此,在确定待执行任务时,可以根据任务配置数据中记录的不同信息确定待执行任务。
例如,可以根据任务配置数据中记录的执行优先级,选择执行优先级最高的任务作为待执行任务;可以根据任务配置数据中记录的执行条件,选择满足执行条件的任务作为待执行任务;当然,还可以将执行优先级和执行条件相结合确定待执行任务。
步骤S102:确定待执行任务包括的子任务。
由于待执行任务在执行过程中所使用的数据可能会位于不同的节点,在执行过程中不同阶段需要进行的数据处理方式不同等等,所以,可以认为待执行任务包括多个子任务。每一子任务完成待执行任务执行过程中需要完成的部分任务。
在确定待执行任务的子任务时,可以参考存储待执行任务所需数据的节点、待执行任务指示的任务执行节点、预先设置的用于执行任务的节点、任务类型等信息。
确定待执行任务的子任务的具体方式可以参见下述图2所示实施例中步骤S202-S204,此处暂不详述。
在上述任务管理服务包括多个功能模块的情况下,可以由管理模块完成子任务确定。
步骤S103:将各子任务的任务信息记录至任务配置数据,并从分布式系统包括的节点中,确定用于执行各子任务的节点。
将子任务的任务信息记录至任务配置数据,可以为后续用户了解待执行任务提供更多的信息。
上述子任务的任务信息可以包括:子任务的标识、子任务的任务目标、子任务的执行参数、子任务的类型、子任务的状态、子任务的任务执行结果等信息。其中,一种情况下,上述任务目标可以理解为:子任务需要达到的目标,另一种情况下,上述任务目标可以理解为:用于执行子任务的节点,例如,上述任务目标可以是:存储有子任务所需数据的节点、子任务指示的用于执行子任务的节点等。
与上述步骤S101处提及的存储形式相类似,本公开的一个实施例中,上述子任务的任务信息在任务配置数据中也可以以Key-Value的形式存储。
具体的,上述Key和Value可以按照以下三种不同情况进行设定。
第一种情况,Key为待执行任务的标识,Value为由子任务的任务目标和类型确定的信息。
第二种情况,Key为由待执行任务的标识、子任务的任务目标和子任务的类型确定的信息,Value为由子任务的任务类型和子任务的执行参数确定的信息。
第三种情况,Key为由待执行任务的标识、子任务的任务目标和子任务的类型确定的信息,Value为子任务的任务执行结果。
需要说明的是,本公开实施例仅仅以上述为例进行说明,并不限定子任务的任务信息在任务配置数据中的存储形式。
下面对确定用于执行各子任务的节点的具体方式进行说明。
一种实现方式中,由于不同子任务具有不同的类型,不同类型的子任务具有不同的特点,因此,可以按照子任务的类型确定用于执行子任务的节点。
例如,可以按照以下方式确定用于执行每一子任务的节点:获得子任务的第二任务类型,若第二任务类型为节点任务类型,则将子任务的任务信息所指示的节点确定为用于执行子任务的节点;若第二任务类型为数据任务类型,则查询所述任务配置数据,得到存储子任务的任务信息所指示的数据的节点,将所得到的节点确定为用于执行子任务的节点。这样可以根据不同的任务类型有针对性的确定用于执行子任务的节点,使得所确定的节点更加准确。
其中,上述节点任务类型表征任务与特定节点相关,而并不与特定数据相关,例如,数据过滤任务的类型可以为节点任务类型,该任务与预先设定的用于提供数据过滤服务的节点相关。
数据任务类型表征任务与特定数据相关,例如,表格创建任务的任务类型可以为数据任务类型,该任务与用于创建表格的数据相关。
另一种实现方式中,可以根据分布式系统中各节点的空闲资源,确定用于执行子任务的节点。
另一种实现方式中,可以确定待执行任务的类型对应的节点,然后从所确定的节点中,为待执行任务的各个子任务分配用于执行子任务的节点。
在上述任务管理服务包括多个功能模块的情况下,可以由管理模块指示配置模块将各个子任务的任务信息记录至任务配置数据中,配置模块完成各子任务的任务信息在任务配置数据中的记录。由调度模块确定用于执行各子任务的节点。
步骤S104:指示所确定的各节点执行对应的子任务。
一种实现方式中,在确定用于执行各子任务的节点之后,任务管理服务可以向所确定的各个节点发送任务执行通知,任务执行通知中携带有需要执行的子任务的任务信息,这样所确定的各节点接收到任务执行通知后,可以按照任务执行通知中所携带的任务信息执行子任务。
在上述任务管理服务包括多个功能模块的情况下,可以由调度模块指示所确定的各节点执行对应的子任务。
由以上可见,本公开实施例提供的方案中,任务管理服务在获得待执行任务后,确定待执行任务的子任务,为各个子任务确定执行该子任务的节点,并指示各个节点执行对应的子任务。可见,本公开实施例提供的方案中,存任务执行需求时,不需要分布式系统中的节点主动拉取任务,而是由任务管理服务根据待执行任务的子任务的情况,为各个子任务分配用于执行子任务的节点,并控制节点执行子任务,实现了任务管理服务对任务的管理。
另外,由于分布式系统中的任务由任务管理服务进行管理,这样当分布式系统中增加新的任务时,可以由任务管理服务基于已有的处理流程实现任务的管理调度,而不需要再次撰写针对该新的任务的处理流程,这样降低了在分布式系统中增加新的任务的成本。
再者,本公开实施例提供的方案中,将任务以及子任务的信息持久化到了任务配置数据中,这样即便是任务或者子任务在执行过程中出现了异常退出等情况,也依然能够从任务配置数据中获得相关信息,从而重新执行。
下面结合图2对前述图1所示实施例中步骤S102处确定待执行任务包括的子任务的具体方式进行说明。
参见图2,为本公开实施例提供的第二种任务管理方法的流程示意图,上述方法包括以下步骤S201-S206。
步骤S201:查询任务配置数据,确定待执行任务。
上述步骤S201与上述步骤S101相同,此处不再赘述。
步骤S202:获得待执行任务的第一任务类型。
从不同的划分角度对任务的任务类型进行划分时,所得任务类型一般不同。下面基于几种不同的划分角度,对任务类型进行说明。
第一种划分角度,从任务自身所规定的与任务执行相关的信息这一角度划分任务类型时,可以将任务类型划分为:数据任务类型和节点任务类型。
第二种划分角度,以针对表格的任务为例,从任务所要完成的功能这一角度划分任务类型时,可以将任务类型划分为:创建表格类型、删除表格类型、修改表格类型等。
第三种划分角度,从对任务的完成度的要求这一角度划分任务类型时,可以将任务类型划分为必须执行类型、必须执行成功类型等。
具体的,任务配置数据中可以记录有任务的类型,这种情况下,从任务配置数据中获得待执行任务的第一任务类型。
步骤S203:根据第一任务类型,确定对待执行任务进行子任务划分的划分方式。
具体的,可以预先设定各种任务类型与划分方式之间的对应关系,这样在确定第一任务类型后,可以按照上述对应关系,确定第一任务类型对应的划分方式。
下面以举例的方式对不同任务类型对应的划分方式进行说明。
若任务类型为数据任务类型,这种情况下,可以根据存储有待执行任务所需数据的各目标节点进行任务划分,此时划分方式可以为:按照各目标节点进行任务划分,每一目标节点对应一个子任务,这种情况下,对于每一目标节点而言,将任务中使用该目标节点所存储数据的部分任务划分为一个子任务。
若任务类型为节点任务类型,这种情况下,可以根据待执行任务所指示的目标节点进行任务划分,此时划分方式可以为:按照各目标节点进行任务划分,每一目标节点对应一个子任务,这种情况下,对于每一目标节点而言,将任务中由该目标节点完成的部分任务划分为一个子任务。
步骤S204:依据划分方式,确定待执行任务包括的子任务。
在确定了划分方式之后,按照上述划分方式对待执行任务进行划分,从而确定出待执行任务包括的各个子任务。
步骤S205:将各子任务的任务信息记录至任务配置数据,并从分布式系统包括的节点中,确定用于执行各子任务的节点。
步骤S206:指示所确定的各节点执行对应的子任务。
上述步骤S205-S206与前述步骤S103-S104分别对应相同,此处不再赘述。
由以上可见,本实施例提供的方案中,根据待执行任务的第一任务类型,确定对待执行任务进行子任务划分的划分方式,然后按照上述划分方式确定待执行任务包括的子任务。这样相同任务类型的任务划分方式是相同的,在实现每一任务类型对应的任务划分方式时,使用一套实现代码即可,这样可以有效降低实现代码的重复撰写概率。尤其是在分布式系统中增加新的任务时,若该新的任务的任务类型对应的划分方式已经存在,则不需要再针对该新的任务的任务类型对应的划分方式增加实现代码,使得对任务的管理更加灵活、高效。
参见图3,为本公开实施例提供的第三种任务管理方法的流程示意图。上述方法包括以下步骤S301-S307。
步骤S301:查询任务配置数据,确定待执行任务。
其中,任务配置数据用于记录分布式系统中任务的信息。
步骤S302:确定待执行任务包括的子任务。
步骤S303:将各子任务的任务信息记录至任务配置数据,并从分布式系统包括的节点中,确定用于执行各子任务的节点。
步骤S304:指示所确定的各节点执行对应的子任务。
上述步骤S301-S304与上述步骤S101-S104分别对应相同,此处不再赘述
步骤S305:接收用于执行各子任务的节点反馈的任务执行结果。
用于执行各子任务的节点在执行子任务后,可以向上述任务管理服务发送任务执行结果。任务执行结果记录的数据可以表征子任务是否执行成功。
步骤S306:根据接收到的任务执行结果,在任务配置数据中记录各子任务的任务执行状态。
具体的,当任务执行结果表征子任务执行成功时,在任务配置数据中记录子任务的执行状态为已完成,当任务执行结果表征子任务执行失败时,在任务配置数据中记录子任务的执行状态为未完成。
步骤S307:根据各子任务的任务执行状态,在任务配置数据中更新待执行任务的状态。
随着待执行任务的各个子任务被执行,用于执行各个子任务的节点不断反馈各个子任务的任务执行结果,这种情况下,任务管理服务可以依据各个子任务的任务执行状态,及时更新待执行任务的状态。
例如,当待执行任务的子任务都执行成功时,在任务配置数据中将待执行任务的状态由未完成更新为已完成,当待执行任务的子任务中有执行失败的子任务时,将待执行任务的状态由未完成更新为执行失败。
另外,任务管理服务还可以实时统计处于已完成状态的子任务的数量计算处于已完成状态的子任务在待执行任务所包括子任务中的占比,然后依据上述占比更新待执行任务的状态。
由以上可见,本实施例提供的方案中,任务管理服务还接收用于执行各子任务的节点反馈的任务执行结果,并基于上述任务执行结果,在任务配置数据中记录各子任务的任务执行状态,以及更新待执行任务的状态,这样可以使得任务配置数据中记录的任务的信息得到更新,也使得任务配置数据中所记录的任务的信息更加准确。
在上述基础上,本公开实施例还提供了一种异常处理方法,参见图4为上述异常处理方法的流程示意图,该方法包括以下步骤S401-S403。
步骤S401:若子任务的任务执行状态表征执行失败,从任务配置数据中查询子任务的异常处理类型。
其中,任务配置数据中记录的异常处理类型可能是在执行子任务之前设置的,例如,必须处理成功类型、允许处理失败类型等,还可以是执行子任务之后根据子任务的执行结果设置的,例如,超时类型等。
步骤S402:根据上述异常处理类型,确定异常处理方式。
具体的,可以预先设定异常处理类型与异常处理方式之间的对应关系,这样在步骤S401确定了异常处理类型之后,即可依据上述对应关系,得到异常处理方式。
步骤S403:按照上述异常处理方式,对子任务进行异常处理。
由于可能存在多种异常处理类型,下面以举例的方式,对上述步骤S401-S403进行联合说明。
一种情况下,上述异常处理类型可以为必须处理成功类型,这种情况下,异常处理方式可以是:重新执行子任务,此时任务管理服务可以重新指示用于执行该子任务的节点重新执行子任务。
另一种情况下,上述异常处理类型可以为允许处理失败类型,这种情况下,异常处理方式可以是:忽略子任务,此时任务管理服务可以不执行任何操作。
另一种情况下,上述异常处理类型可以为超时类型,这种情况下,表征任务管理服务接收子任务的执行结果超时,这是异常处理方式也可以是重新执行子任务,此时任务管理服务可以重新指示用于执行该子任务的节点重新执行子任务。
一种实现方式中,若一个节点在一段时间内重复接收到了同一子任务,且已经执行完毕该子任务,这种情况下,该节点可以不再执行后续接收到的子任务,而是认为由于节点或者网络故障导致任务管理服务没有接收到任务执行结果,所以,直接重新向任务管理服务发送任务执行结果。
下面对上述步骤S403中对子任务进行异常处理的具体方式进行说明。
本公开的一个实施例中,在上述异常处理方式为重新执行子任务的情况下,可以查询任务配置数据中记录的执行子任务的第一节点,判断第一节点当前是否能够用于执行子任务;若能够用于执行该子任务,指示第一节点重新执行子任务,若不能用于执行该子任务,依据引起第一节点当前不能用于执行子任务的原因,确定用于执行子任务的第二节点,并指示第二节点执行子任务。这样不仅能够在第一节点当前能够执行子任务的情况下,子任务被成功执行,还能够保证第一节点当前不能执行子任务的情况下,通过其他节点成功执行子任务,提高了子任务被成功执行的概率。
具体的,在确定用于执行各个子任务的节点后,可以将用于执行各个子任务的节点的标识等信息记录在任务配置数据中,以便于后续查询。
分布式系统在工作过程中可能会发生各种故障,或者设备更换等情况,为应对各种情况,通常采用的处理手段也不一样,因此,针对各种不同的情况,判断第一节点当前能够用于执行子任务的方式也有所不同。下面通过不同的方式进行说明。
一种实现方式中,可以判断第一节点中存储的子任务的任务信息所指示的数据是否发生数据转移,若发生迁移,判定第一节点不能用于执行子任务,若未发生迁移,判定第一节点能用于执行子任务。这种情况下,可以将第一节点中存储的子任务的任务信息所指示的数据确定为第二节点。这样可以有效保证第一节点中存储的子任务的任务信息所指示的数据发生数据迁移时,被有效的检测出来,并且确定出准确的能够执行子任务的节点。
另一种实现方式中,可以判断第一节点是否发生主备切换,若发生,判定第一节点不能用于执行子任务,若未发生,判定第一节点能用于执行子任务。这种情况下,可以将第一节点发生主备切换后,当前作为主设备的节点作为第二节点。这样在第一节点发生主备切换时,被有效检测出来,并且确定出准确的能够执行子任务的节点。
由上述步骤S401-S403可知,子任务执行失败的情况下,可以根据采用与子任务的异常处理类型相对应的异常处理方式,对子任务进行异常处理,从而保证子任务能够被得到有效处理。另外,这样可以使得具有相同异常处理类型、相同异常处理方式的子任务,使用一套处理代码被处理,这样可以有效降低实现代码的重复撰写概率。
与上述任务管理方法相对应,本公开实施例还提供了一种任务管理装置。
参见图5,为本公开实施例提供的一种任务管理装置的结构示意图。
上述装置包括:
配置模块501,用于记录分布式系统中任务的信息。
管理模块502,用于查询任务配置数据,确定待执行任务;确定待执行任务包括的子任务;将各子任务的任务信息记录至任务配置数据。
调度模块503,用于从分布式系统包括的节点中,确定用于执行各子任务的节点。指示所确定的各节点执行对应的子任务。
由以上可见,本公开实施例提供的方案中,任务管理服务在获得待执行任务后,确定待执行任务的子任务,为各个子任务确定执行该子任务的节点,并指示各个节点执行对应的子任务。可见,本公开实施例提供的方案中,存任务执行需求时,不需要分布式系统中的节点主动拉取任务,而是由任务管理服务根据待执行任务的子任务的情况,为各个子任务分配用于执行子任务的节点,并控制节点执行子任务,实现了任务管理服务对任务的管理。
另外,由于分布式系统中的任务由任务管理服务进行管理,这样当分布式系统中增加新的任务时,可以由任务管理服务基于已有的处理流程实现任务的管理调度,而不需要再次撰写针对该新的任务的处理流程,这样降低了在分布式系统中增加新的任务的成本。
再者,本公开实施例提供的方案中,将任务以及子任务的信息持久化到了任务配置数据中,这样即便是任务或者子任务在执行过程中出现了异常退出等情况,也依然能够从任务配置数据中获得相关信息,从而重新执行。
本公开的一个实施例中,管理模块502具体用于获得所述待执行任务的第一任务类型;根据所述第一任务类型,确定对所述待执行任务进行子任务划分的划分方式;依据所述划分方式,确定所述待执行任务包括的子任务。
由以上可见,本实施例提供的方案中,根据待执行任务的第一任务类型,确定对待执行任务进行子任务划分的划分方式,然后按照上述划分方式确定待执行任务包括的子任务。这样相同任务类型的任务划分方式是相同的,在实现每一任务类型对应的任务划分方式时,使用一套实现代码即可,这样可以有效降低实现代码的重复撰写概率。尤其是在分布式系统中增加新的任务时,若该新的任务的任务类型对应的划分方式已经存在,则不需要再针对该新的任务的任务类型对应的划分方式增加实现代码,使得对任务的管理更加灵活、高效。
本公开的一个实施例中,调度模块503具体用于按照以下方式确定用于执行每一子任务的节点:
获得子任务的第二任务类型;
若所述第二任务类型为节点任务类型,则将子任务的任务信息所指示的节点确定为用于执行子任务的节点;
若所述第二任务类型为数据任务类型,则查询所述任务配置数据,得到存储子任务的任务信息所指示的数据的节点,将所得到的节点确定为用于执行子任务的节点。
这样可以根据不同的任务类型有针对性的确定用于执行子任务的节点,使得所确定的节点更加准确。
本公开的一个实施例中,管理模块502还用于接收用于执行各子任务的节点反馈的任务执行结果;根据接收到的任务执行结果,指示所述配置模块记录各子任务的任务执行状态;
配置模块501还用于在所述任务配置数据中记录各子任务的任务执行状态;根据各子任务的任务执行状态,在所述任务配置数据中更新所述待执行任务的状态。
由以上可见,本实施例提供的方案中,任务管理服务还接收用于执行各子任务的节点反馈的任务执行结果,并基于上述任务执行结果,在任务配置数据中记录各子任务的任务执行状态,以及更新待执行任务的状态,这样可以使得任务配置数据中记录的任务的信息得到更新,也使得任务配置数据中所记录的任务的信息更加准确。
本公开的一个实施例中,管理模块502还用于若子任务的任务执行状态表征执行失败,从所述任务配置数据中查询子任务的异常处理类型;根据所述异常处理类型,确定异常处理方式;
调度模块503还用于按照管理模块502确定的异常处理方式,对子任务进行异常处理。
由以上可见,子任务执行失败的情况下,可以根据采用与子任务的异常处理类型相对应的异常处理方式,对子任务进行异常处理,从而保证子任务能够被得到有效处理。另外,这样可以使得具有相同异常处理类型、相同异常处理方式的子任务,使用一套处理代码被处理,这样可以有效降低实现代码的重复撰写概率。
本公开的一个实施例中,所述异常处理方式为重新执行子任务的情况下,调度模块503,具体用于查询所述任务配置数据中记录的执行子任务的第一节点;判断所述第一节点当前是否能够用于执行子任务;若为是,指示所述第一节点重新执行子任务;若为否,依据引起所述第一节点当前不能用于执行子任务的原因,确定用于执行子任务的第二节点,并指示所述第二节点执行子任务。
由以上可见,本公开实施例提供的方案中,不仅能够在第一节点当前能够执行子任务的情况下,子任务被成功执行,还能够保证第一节点当前不能执行子任务的情况下,通过其他节点成功执行子任务,提高了子任务被成功执行的概率。
本公开的一个实施例中,调度模块503还用于判断所述第一节点中存储的子任务的任务信息所指示的数据是否发生数据转移,若为是,判定所述第一节点不能用于执行子任务,若为否,判定所述第一节点能用于执行子任务;
或者
具体用于判断所述第一节点是否发生主备切换,若为是,判定所述第一节点不能用于执行子任务,若为否,判定所述第一节点能用于执行子任务。
由以上可见,本公开实施例提供的方案中,可以将第一节点中存储的子任务的任务信息所指示的数据确定为第二节点。这样可以有效保证第一节点中存储的子任务的任务信息所指示的数据发生数据迁移时,被有效的检测出来,并且确定出准确的能够执行子任务的节点。还可以在第一节点发生主备切换时,被有效检测出来,并且确定出准确的能够执行子任务的节点。
根据本公开的实施例,本公开还提供了一种电子设备、一种可读存储介质和一种计算机程序产品。
本公开的一个实施例中,提供了一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行上述方法实施例中所述的任务管理方法。
本公开的一个实施例中,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行上述方法实施例中所述的任务管理方法。
本公开的一个实施例中,提供了一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现上述方法实施例中所述的任务管理方法。
图6示出了可以用来实施本公开的实施例的示例电子设备600的示意性框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
如图6所示,设备600包括计算单元601,其可以根据存储在只读存储器(ROM)602中的计算机程序或者从存储单元608加载到随机访问存储器(RAM)603中的计算机程序,来执行各种适当的动作和处理。在RAM 603中,还可存储设备600操作所需的各种程序和数据。计算单元601、ROM 602以及RAM 603通过总线604彼此相连。输入/输出(I/O)接口605也连接至总线604。
设备600中的多个部件连接至I/O接口605,包括:输入单元606,例如键盘、鼠标等;输出单元607,例如各种类型的显示器、扬声器等;存储单元608,例如磁盘、光盘等;以及通信单元609,例如网卡、调制解调器、无线通信收发机等。通信单元609允许设备600通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
计算单元601可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元601的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元601执行上文所描述的各个方法和处理,例如任务管理方法。例如,在一些实施例中,任务管理方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元608。在一些实施例中,计算机程序的部分或者全部可以经由ROM 602和/或通信单元609而被载入和/或安装到设备600上。当计算机程序加载到RAM 603并由计算单元601执行时,可以执行上文描述的任务管理方法的一个或多个步骤。备选地,在其他实施例中,计算单元601可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行任务管理方法。
本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、复杂可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,也可以为分布式系统的服务器,或者是结合了区块链的服务器。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。

Claims (17)

1.一种任务管理方法,应用于任务管理服务,包括:
查询任务配置数据,确定待执行任务,其中,所述任务配置数据用于记录分布式系统中任务的信息;
确定所述待执行任务包括的子任务;
将各子任务的任务信息记录至所述任务配置数据,并从所述分布式系统包括的节点中,确定用于执行各子任务的节点;
指示所确定的各节点执行对应的子任务。
2.根据权利要求1所述的方法,其中,所述确定所述待执行任务包括的子任务,包括:
获得所述待执行任务的第一任务类型;
根据所述第一任务类型,确定对所述待执行任务进行子任务划分的划分方式;
依据所述划分方式,确定所述待执行任务包括的子任务。
3.根据权利要求1所述的方法,其中,所述从所述分布式系统包括的节点中,确定用于执行各子任务的节点,包括:
按照以下方式确定用于执行每一子任务的节点:
获得子任务的第二任务类型;
若所述第二任务类型为节点任务类型,则将子任务的任务信息所指示的节点确定为用于执行子任务的节点;
若所述第二任务类型为数据任务类型,则查询所述任务配置数据,得到存储子任务的任务信息所指示的数据的节点,将所得到的节点确定为用于执行子任务的节点。
4.根据权利要求1-3中任一项所述的方法,还包括:
接收用于执行各子任务的节点反馈的任务执行结果;
根据接收到的任务执行结果,在所述任务配置数据中记录各子任务的任务执行状态;
根据各子任务的任务执行状态,在所述任务配置数据中更新所述待执行任务的状态。
5.根据权利要求4所述的方法,还包括:
若子任务的任务执行状态表征执行失败,从所述任务配置数据中查询子任务的异常处理类型;
根据所述异常处理类型,确定异常处理方式;
按照所述异常处理方式,对子任务进行异常处理。
6.根据权利要求5所述的方法,其中,所述异常处理方式为重新执行子任务的情况下,所述按照所述异常处理方式,对子任务进行异常处理,包括:
查询所述任务配置数据中记录的执行子任务的第一节点;
判断所述第一节点当前是否能够用于执行子任务;
若为是,指示所述第一节点重新执行子任务;
若为否,依据引起所述第一节点当前不能用于执行子任务的原因,确定用于执行子任务的第二节点,并指示所述第二节点执行子任务。
7.根据权利要求6所述的方法,其中,所述判断所述第一节点当前是否能够用于执行子任务,包括:
判断所述第一节点中存储的子任务的任务信息所指示的数据是否发生数据转移,若为是,判定所述第一节点不能用于执行子任务,若为否,判定所述第一节点能用于执行子任务;
或者
判断所述第一节点是否发生主备切换,若为是,判定所述第一节点不能用于执行子任务,若为否,判定所述第一节点能用于执行子任务。
8.一种任务管理装置,应用于任务管理服务,包括:
配置模块,用于记录分布式系统中任务的信息;
管理模块,用于查询任务配置数据,确定待执行任务;确定所述待执行任务包括的子任务;将各子任务的任务信息记录至所述任务配置数据;
调度模块,用于从所述分布式系统包括的节点中,确定用于执行各子任务的节点;指示所确定的各节点执行对应的子任务。
9.根据权利要求8所述的装置,其中,
所述管理模块,具体用于获得所述待执行任务的第一任务类型;根据所述第一任务类型,确定对所述待执行任务进行子任务划分的划分方式;依据所述划分方式,确定所述待执行任务包括的子任务。
10.根据权利要求8所述的装置,其中,
所述调度模块,具体用于按照以下方式确定用于执行每一子任务的节点:
获得子任务的第二任务类型;
若所述第二任务类型为节点任务类型,则将子任务的任务信息所指示的节点确定为用于执行子任务的节点;
若所述第二任务类型为数据任务类型,则查询所述任务配置数据,得到存储子任务的任务信息所指示的数据的节点,将所得到的节点确定为用于执行子任务的节点。
11.根据权利要求8-10中任一项所述的装置,其中,
所述管理模块,还用于接收用于执行各子任务的节点反馈的任务执行结果;根据接收到的任务执行结果,指示所述配置模块记录各子任务的任务执行状态;
所述配置模块,还用于在所述任务配置数据中记录各子任务的任务执行状态;根据各子任务的任务执行状态,在所述任务配置数据中更新所述待执行任务的状态。
12.根据权利要求11所述的装置,其中,
所述管理模块,还用于若子任务的任务执行状态表征执行失败,从所述任务配置数据中查询子任务的异常处理类型;根据所述异常处理类型,确定异常处理方式;
所述调度模块,还用于按照所述异常处理方式,对子任务进行异常处理。
13.根据权利要求12所述的装置,其中,所述异常处理方式为重新执行子任务的情况下,
所述调度模块,具体用于查询所述任务配置数据中记录的执行子任务的第一节点;判断所述第一节点当前是否能够用于执行子任务;若为是,指示所述第一节点重新执行子任务;若为否,依据引起所述第一节点当前不能用于执行子任务的原因,确定用于执行子任务的第二节点,并指示所述第二节点执行子任务。
14.根据权利要求13所述的装置,其中,
所述调度模块,具体用于判断所述第一节点中存储的子任务的任务信息所指示的数据是否发生数据转移,若为是,判定所述第一节点不能用于执行子任务,若为否,判定所述第一节点能用于执行子任务;
或者
具体用于判断所述第一节点是否发生主备切换,若为是,判定所述第一节点不能用于执行子任务,若为否,判定所述第一节点能用于执行子任务。
15.一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-7中任一项所述的方法。
16.一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行根据权利要求1-7中任一项所述的方法。
17.一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现根据权利要求1-7中任一项所述的方法。
CN202111600455.3A 2021-12-24 2021-12-24 一种任务管理方法、装置、设备及存储介质 Active CN114327819B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111600455.3A CN114327819B (zh) 2021-12-24 2021-12-24 一种任务管理方法、装置、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111600455.3A CN114327819B (zh) 2021-12-24 2021-12-24 一种任务管理方法、装置、设备及存储介质

Publications (2)

Publication Number Publication Date
CN114327819A true CN114327819A (zh) 2022-04-12
CN114327819B CN114327819B (zh) 2023-02-03

Family

ID=81012513

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111600455.3A Active CN114327819B (zh) 2021-12-24 2021-12-24 一种任务管理方法、装置、设备及存储介质

Country Status (1)

Country Link
CN (1) CN114327819B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114860346A (zh) * 2022-06-02 2022-08-05 北京百度网讯科技有限公司 建模任务的管理方法和建模任务的运行方法

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104199912A (zh) * 2014-08-28 2014-12-10 无锡天脉聚源传媒科技有限公司 一种任务处理的方法及装置
WO2019148728A1 (zh) * 2018-02-01 2019-08-08 平安科技(深圳)有限公司 电子装置、分布式系统执行任务分配方法及存储介质
CN110209496A (zh) * 2019-05-20 2019-09-06 中国平安财产保险股份有限公司 基于数据处理的任务分片方法、装置及分片服务器
CN110750341A (zh) * 2018-07-24 2020-02-04 深圳市优必选科技有限公司 任务调度方法、装置、系统、终端设备及存储介质
CN113238838A (zh) * 2021-04-22 2021-08-10 中国银联股份有限公司 一种任务调度方法、装置及计算机可读存储介质
CN113703929A (zh) * 2020-05-20 2021-11-26 中国移动通信集团浙江有限公司 一种任务调度方法、系统、计算设备和存储介质

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104199912A (zh) * 2014-08-28 2014-12-10 无锡天脉聚源传媒科技有限公司 一种任务处理的方法及装置
WO2019148728A1 (zh) * 2018-02-01 2019-08-08 平安科技(深圳)有限公司 电子装置、分布式系统执行任务分配方法及存储介质
CN110750341A (zh) * 2018-07-24 2020-02-04 深圳市优必选科技有限公司 任务调度方法、装置、系统、终端设备及存储介质
CN110209496A (zh) * 2019-05-20 2019-09-06 中国平安财产保险股份有限公司 基于数据处理的任务分片方法、装置及分片服务器
CN113703929A (zh) * 2020-05-20 2021-11-26 中国移动通信集团浙江有限公司 一种任务调度方法、系统、计算设备和存储介质
CN113238838A (zh) * 2021-04-22 2021-08-10 中国银联股份有限公司 一种任务调度方法、装置及计算机可读存储介质

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114860346A (zh) * 2022-06-02 2022-08-05 北京百度网讯科技有限公司 建模任务的管理方法和建模任务的运行方法

Also Published As

Publication number Publication date
CN114327819B (zh) 2023-02-03

Similar Documents

Publication Publication Date Title
CN108632106B (zh) 监控服务设备的系统
CN112653758B (zh) 边缘节点的更新方法、装置、设备和介质
CN113867916B (zh) 任务处理方法、装置及电子设备
CN112866391A (zh) 消息推送方法、装置、电子设备及存储介质
CN112650576A (zh) 资源调度方法、装置、设备、存储介质及计算机程序产品
CN113742031A (zh) 节点状态信息获取方法、装置、电子设备及可读存储介质
CN114327819B (zh) 一种任务管理方法、装置、设备及存储介质
CN113703946B (zh) 应用恢复方法及其装置、电子设备、计算机可读存储介质
CN114090113B (zh) 数据源处理插件动态加载的方法、装置、设备及存储介质
CN109828830B (zh) 用于管理容器的方法和装置
CN113590329A (zh) 资源处理方法及装置
CN113778644A (zh) 任务的处理方法、装置、设备及存储介质
CN112965799A (zh) 任务状态的提示方法、装置、电子设备和介质
CN111767126A (zh) 分布式批量处理的系统和方法
CN114070889B (zh) 配置方法、流量转发方法、设备、存储介质及程序产品
CN112817992B (zh) 执行更改任务的方法、装置、电子设备以及可读存储介质
CN113747423B (zh) 云手机状态同步方法、装置、设备、存储介质及程序产品
CN112925623B (zh) 任务处理方法、装置、电子设备和介质
CN113010285B (zh) 用于处理数据的方法、装置、设备、介质和产品
CN114860346A (zh) 建模任务的管理方法和建模任务的运行方法
CN111581049B (zh) 分布式系统运行状态监测方法、装置、设备及存储介质
CN113742075A (zh) 基于云端分布式系统的任务处理方法、装置及系统
CN113641688A (zh) 节点更新方法、相关装置及计算机程序产品
CN113656239A (zh) 针对中间件的监控方法、装置及计算机程序产品
CN112579247A (zh) 确定任务状态的方法和装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant