【技术实现步骤摘要】
一种任务执行方法、装置以及设备
[0001]本说明书涉及分布式
,尤其涉及一种任务执行方法、装置以及设备。
技术介绍
[0002]随着互联网技术和计算能力的迅速发展,应用为用户服务的智能型和高效性也极大提升,而背后的服务平台也面临着较大的任务执行压力,尤其是一些计算量大很耗时的任务,将这类任务称为长任务。
[0003]在实际应用中,长任务的执行会随着平台的重启操作而丢失任务状态,由此导致长任务难以顺利按时执行完成,会额外浪费大量计算资源重新执行长任务。
[0004]基于此,需要更为可靠和高效的任务执行方案。
技术实现思路
[0005]本说明书一个或多个实施例提供一种任务执行方法、装置、设备以及存储介质,用以解决如下技术问题:需要更为可靠和高效的任务执行方案。
[0006]为解决上述技术问题,本说明书一个或多个实施例是这样实现的:本说明书一个或多个实施例提供的一种任务执行方法,应用于集群中的节点,所述方法包括:确定维护任务状态和任务子步骤状态的数据库,所述任务状态表示任务的执行相关状态,所述任务子步骤状态表示该任务拆分出的多个子步骤分别的执行相关状态;从所述数据库中获取所述任务状态;当所述任务状态为执行中时,判断所述任务的当前执行节点是否可用,所述当前执行节点属于所述集群;若所述当前执行节点不可用时,将自己更新为所述任务的当前执行节点,并保持所述任务状态为执行中;获取所述任务的下一个子步骤;将所述下一个子步骤的状态更新为执行中,并执行所述下一个子步骤。
[0007] ...
【技术保护点】
【技术特征摘要】
1.一种任务执行方法,应用于集群中的节点,所述方法包括:确定维护任务状态和任务子步骤状态的数据库,所述任务状态表示任务的执行相关状态,所述任务子步骤状态表示该任务拆分出的多个子步骤分别的执行相关状态;从所述数据库中获取所述任务状态;当所述任务状态为执行中时,判断所述任务的当前执行节点是否可用,所述当前执行节点属于所述集群;若所述当前执行节点不可用时,将自己更新为所述任务的当前执行节点,并保持所述任务状态为执行中;获取所述任务的下一个子步骤;将所述下一个子步骤的状态更新为执行中,并执行所述下一个子步骤。2.如权利要求1所述的方法,所述从所述数据库中获取所述任务状态之后,所述方法还包括:当所述任务状态为等待执行时,将自己更新为所述任务的当前执行节点,并更新所述任务状态为执行中;获取所述任务的下一个子步骤;将所述下一个子步骤的状态更新为执行中,并执行所述下一个子步骤。3.如权利要求1所述的方法,还包括:若所述子步骤执行失败,则更新所述子步骤状态为失败;若所述子步骤执行成功,则更新所述子步骤状态为成功;在所述子步骤为所述任务的最后一个子步骤的情况下,更新所述任务的任务状态为成功;在所述子步骤不为所述任务的最后一个子步骤的情况下,继续获取所述任务的下一个子步骤进行处理。4.如权利要求1或2所述的方法,所述将自己更新为所述任务的当前执行节点之后,所述方法还包括:从所述数据库中,按照所述任务的子步骤之间的顺序,依次查找对应的子步骤状态;若当前查找到的所述子步骤状态为失败,则更新所述任务的任务状态为失败;若当前查找到的所述子步骤状态为成功,则继续追踪下一个子步骤;若当前查找到的所述子步骤状态为执行中,则追踪结束,继续执行该子步骤状态对应的子步骤。5.如权利要求2所述的方法,所述将自己更新为所述任务的当前执行节点,并更新所述任务状态为执行中之后,所述方法还包括:在自己仍为所述任务的当前执行节点的期间,定时上报心跳信号,以使所述心跳信号的上报时间被记录于数据库中;所述若所述当前执行节点不可用时,将自己更新为所述任务的当前执行节点之前,所述方法还包括:通过所述数据库确定所述任务状态对应的任务的当前执行节点,及其最近一次上报心跳信号的上报时间;判断所述最近一次上报心跳信号的上报时间距离当前时间是否已经超时;若是,则确定所述当前执行节点不可用。
6.如权利要求2所述的方法,还包括:定时扫描自己的线程池空闲的线程数量;若有空闲的线程,则通过所述空闲的线程扫描所述数据库中的所述任务状态,以确定状态为等待执行或执行中的任务。7.如权利要求1所述的方法,所述任务和所述子步骤也保存于所述数据库中,与对应的执行相关状态关联,以便执行;所述将自己更新为所述任务的当前执行节点,具体包括:在所述数据库中,将自己的标识与所述任务或所述子步骤相关联,以表示自己为所述任务的当前执行节点。8.如权利要求1~3任一项所述的方法,所述任务为图平台针对图数据库的长任务;所述长任务包括以下至少一种:点边统计、大点统计、大规模图数据压缩。9.如权利要求1所述的方法,所述任务为图平台针对图数据库的任务;所述将自己更新为所述任务的当前执行节点之前,所述方法还包括:获取通过将所述集群的节点拓扑图与所述任务在所述图数据库中涉及的图数据的拓扑图进行匹配得到的相似区域分布图;判断自己是否处于所述相似区域分布图中,且得到所述判断的结果为是。10.如权利要求9所述的方法,所述任务拆分出的多个子步骤中,包含针对所述涉及的图数据的指定局部区域进行处理的区域性子步骤;所述执行所述下一个子步骤,具体包括:执行所述子步骤状态为执行中,且在所述相似区域分布图中与自己匹配的所述区域性子步骤。11.一种任务执行装置,应用于集群中的节点,所述装置包括:状态数据库确定模块,确定维护任务状态和任务子步骤状态的数据库,所述任务状态表示任务的执行相关状态,所述任务子步骤状态表示该任务拆分出的多个子步骤分别的执行相关状态;任务状态获取模块,从所述数据库中获取所述任务状态;节点可用性判断模块,当所述任务状态为执行中时,判断所述任务的当前执行节点是否可用,所述当前执行节点属于所述集群;任务接续执行模块,若所述当前执行节点不可用时,将...
【专利技术属性】
技术研发人员:袁小花,周猛,王牧群,
申请(专利权)人:支付宝杭州信息技术有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。