掌桥专利:专业的专利平台
掌桥专利
首页

任务执行方法及装置

文献发布时间:2023-06-19 13:26:15


任务执行方法及装置

技术领域

本发明涉及计算机技术领域,具体涉及一种任务执行方法、装置、计算设备及计算机存储介质。

背景技术

大数据并行计算通常采用如MapReduce、Hive、Tez、spark等计算框架,这些计算框架会将一个大的主任务划分成多个子任务进行计算,然后对多个子任务的计算结果进行合并。当某个子任务计算出现异常时,计算框架通常的做法是进行重试子任务,虽然有分片任务重试机制,当达到重试次数限制的时候,子任务的失败会导致整个主任务的计算也失败,缺乏一个更好的容错机制。且重试子任务等待的时间很长,虽然只是重试一个子任务,即使其他子任务已经完成,但是整个主任务都处于等待状态。

发明内容

鉴于上述问题,提出了本发明实施例以便提供一种克服上述问题或者至少部分地解决上述问题的任务执行方法、装置、计算设备及计算机存储介质。

根据本发明实施例的一个方面,提供了一种任务执行方法,包括:

在主任务的运行过程中,从多个子任务中确定待处理的子任务;其中,多个子任务为主任务划分得到的多个并行执行的子任务,待处理的子任务的重复执行次数大于或等于阈值;

通过预设的预测模型,对待处理的子任务的执行结果进行预测,得到待处理的子任务的预测执行结果;

根据多个子任务中其他子任务的执行结果以及预测执行结果,完成主任务。

可选地,预设的预测模型基于已经执行成功的子任务的执行参数训练得到,执行参数包括子任务的执行耗时、执行完成度和/或数据处理量。

可选地,方法还包括:

根据待处理的子任务的运行时间,确定子任务的执行耗时;

统计待处理的子任务执行得到的数据,确定子任务的数据处理量;

根据待处理的子任务的总数据处理量和数据处理量,计算得到子任务的执行完成度;待处理的子任务的总数据处理量基于主任务划分确定。

可选地,已经执行成功的子任务具体为:与主任务类型相同的其他主任务中,执行成功的子任务。

可选地,预设的预测模型为回归模型。

可选地,通过预设的预测模型,对待处理的子任务的执行结果进行预测,得到待处理的子任务的预测执行结果进一步包括:

根据待处理的子任务的执行耗时、执行完成度计算得到待处理的子任务执行完成总耗时;

将待处理的子任务执行完成总耗时及数据处理量输入至预设的预测模型,得到待处理的子任务的预测执行结果。

可选地,方法还包括:

若判断子任务的重复执行次数小于阈值,则重新执行子任务。

根据本发明实施例的另一方面,提供了一种任务执行装置,包括:

确定模块,适于在主任务的运行过程中,从多个子任务中确定待处理的子任务;其中,多个子任务为主任务划分得到的多个并行执行的子任务,待处理的子任务的重复执行次数大于或等于阈值;

预测模块,适于通过预设的预测模型,对待处理的子任务的执行结果进行预测,得到待处理的子任务的预测执行结果;

完成模块,适于根据多个子任务中其他子任务的执行结果以及预测执行结果,完成主任务。

根据本发明实施例的又一方面,提供了一种计算设备,包括:处理器、存储器、通信接口和通信总线,处理器、存储器和通信接口通过通信总线完成相互间的通信;

存储器用于存放至少一可执行指令,可执行指令使处理器执行上述任务执行方法对应的操作。

根据本发明实施例的再一方面,提供了一种计算机存储介质,存储介质中存储有至少一可执行指令,可执行指令使处理器执行如上述任务执行方法对应的操作。

根据本发明上述实施例提供的方案,通过预测得到待处理的子任务的预测执行结果结合其他子任务的执行结果来完成主任务,可以避免整个主任务的失败,提高了任务执行的容错机制。

上述说明仅是本发明实施例技术方案的概述,为了能够更清楚了解本发明实施例的技术手段,而可依照说明书的内容予以实施,并且为了让本发明实施例的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明实施例的具体实施方式。

附图说明

通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明实施例的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:

图1示出了本发明实施例提供的任务执行方法流程图;

图2示出了本发明实施例提供的任务执行装置的结构示意图;

图3示出了本发明实施例提供的计算设备的结构示意图。

具体实施方式

下面将参照附图更详细地描述本发明的示例性实施例。虽然附图中显示了本发明的示例性实施例,然而应当理解,可以以各种形式实现本发明而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本发明,并且能够将本发明的范围完整的传达给本领域的技术人员。

图1示出了本发明实施例提供的任务执行方法的流程图。如图1所示,该方法包括以下步骤:

步骤S101,在主任务的运行过程中,从多个子任务中确定待处理的子任务。

本实施例中主任务划分可得到的多个并行执行的子任务,如主任务为mysql数据库的执行语句,其涉及大数据量操作,将其拆分为多个小的子任务,每个子任务为一段单独执行语句,根据多个子任务的执行结果,最终可以得到主任务的执行结果。

现有技术中当某个子任务执行失败时,会导致主任务持续等待该子任务执行成功才能得到最终的执行结果,耗时较长,易因子任务的执行失败导致整个主任务的执行失败。考虑以上问题,本实施例根据子任务的执行情况,记录子任务的重复执行次数,重复执行次数用于标记子任务执行失败次数。具体的,可以在子任务第一次执行时,设置重复执行次数为0,当子任务执行失败,需要重新执行时,在重复执行次数上加1,当子任务多次执行失败,每次重新执行时,均在重复执行次数上加1。为避免子任务执行失败过多,花费时间过长等导致主任务执行失败,本实施例对子任务的重复执行次数进行判断,根据子任务的重复执行次数,判断子任务的重复执行次数大于或等于阈值时,确定该子任务为待处理的子任务。阈值可以根据实施情况设置,如3次,当判断子任务的重复执行次数大于或等于3时,确定该子任务为待处理的子任务,不再继续重新执行该子任务。

进一步,若判断子任务的重复执行次数小于阈值,可以先重新执行该子任务,以获取子任务准确的执行结果,保障主任务的准确性。若本次执行子任务执行成功,则根据执行成功的子任务的执行结果完成主任务的执行;若本次执行子任务执行失败,则将重复执行次数+1,基于更新后的重复执行次数,确定该子任务是否为待处理的子任务。

步骤S102,通过预设的预测模型,对待处理的子任务的执行结果进行预测,得到待处理的子任务的预测执行结果。

本实施例中预设的预测模型可以基于已经执行成功的子任务的执行参数训练得到,以便基于执行成功的子任务来预测待处理的子任务的预测执行结果,保障预测的准确性。优先地,已经执行成功的子任务为本次主任务中执行成功的子任务,基于各子任务位于相同执行环境下,执行相同类型任务其执行结果间的关联来进行预测。进一步,已经执行成功的子任务还可以包括与主任务类型相同的其他主任务中执行成功的子任务,以根据相同类型任务进行预测,增加训练样本,提升训练准确性。

执行参数包括如子任务的执行耗时t、执行完成度p、数据处理量s等。子任务的执行耗时即子任务的运行时间,数据处理量通过统计子任务执行所得到的数据得到,执行完成度对于已经执行成功的子任务,其执行完成度为100%,对于待处理的子任务,需要根据待处理的子任务的总数据处理量和数据处理量,计算得到子任务的执行完成度。待处理的子任务的总数据处理量基于主任务划分确定,如在主任务划分时,预先确定每个子任务的总数据处理量,如128m。在确定待处理的子任务后,根据当前时间点获取的待处理的子任务的数据处理量,利用数据处理量/总数据处理量,得到待处理的子任务的执行完成度。各任务(已经执行成功的子任务和待处理的子任务)的执行参数均在确定待处理的子任务后获取,基于已经执行成功的子任务的执行参数训练预测模型,训练在确定待处理的子任务后开始,保障预测模型更适用于主任务本次执行的情况。

预设的预测模型可以根据实施情况采用不同模型,本实施例中以回归模型为例进行说明,但不仅限于该模型。回归模型基于同一主任务中已经执行成功的子任务的执行参数训练得到,通过多元回归分析,保障整个主任务中各子任务预测的准确率。具体的,将获取的已经执行成功的子任务的执行参数输入至待训练的回归模型中进行训练,将得到的输出结果与已经执行成功的子任务的执行结果进行比对,根据比对结果调整回归模型的训练参数,得到训练后的回归模型。如构建的回归模型为:

y=b

其中,y为输出结果,对应子任务的执行结果;b

步骤S103,根据多个子任务中其他子任务的执行结果以及预测执行结果,完成主任务。

在得到待处理的子任务的预测执行结果后,根据预测执行结果及已经执行成功的子任务的执行结果,将以上各执行结果进行合并、整合等,完成主任务的执行。

在实际应用中,主任务的计算往往需要的是近似值即可,如计算用户月活量的主任务,其需要一个大概数值,不需要将其精确到个位,通过本实施例,对某个待处理的子任务采用预测方式得到执行结果,可以避免因某个子任务执行失败导致整个主任务的失败。

根据本发明上述实施例提供的方法,通过预测得到待处理的子任务的预测执行结果结合其他子任务的执行结果来完成主任务,可以避免整个主任务的失败,提高了任务执行的容错机制。进一步,基于子任务的执行参数进行预测,预测执行结果准确性较高。

图2示出了根据本发明一个实施例的任务执行装置的功能框图。如图2所示,任务执行装置包括如下模块:

确定模块210,适于在主任务的运行过程中,从多个子任务中确定待处理的子任务;其中,多个子任务为主任务划分得到的多个并行执行的子任务,待处理的子任务的重复执行次数大于或等于阈值;

预测模块220,适于通过预设的预测模型,对待处理的子任务的执行结果进行预测,得到待处理的子任务的预测执行结果;

完成模块230,适于根据多个子任务中其他子任务的执行结果以及预测执行结果,完成主任务。

可选地,预设的预测模型基于已经执行成功的子任务的执行参数训练得到,执行参数包括子任务的执行耗时、执行完成度和/或数据处理量。

可选地,装置还包括:参数获取模块240,适于根据待处理的子任务的运行时间,确定子任务的执行耗时;统计待处理的子任务执行得到的数据,确定子任务的数据处理量;根据待处理的子任务的总数据处理量和数据处理量,计算得到子任务的执行完成度;待处理的子任务的总数据处理量基于主任务划分确定。

可选地,已经执行成功的子任务具体为:与主任务类型相同的其他主任务中,执行成功的子任务。

可选地,预设的预测模型为回归模型。

可选地,预测模块220进一步适于:

根据待处理的子任务的执行耗时、执行完成度计算得到待处理的子任务执行完成总耗时;

将待处理的子任务执行完成总耗时及数据处理量输入至预设的预测模型,得到待处理的子任务的预测执行结果。

可选地,装置还包括:重新执行模块250,适于若判断子任务的重复执行次数小于阈值,则重新执行子任务。

以上各模块的描述参照方法实施例中对应的描述,在此不再赘述。

本发明实施例提供了一种非易失性计算机存储介质,计算机存储介质存储有至少一可执行指令,该计算机可执行指令可执行上述任意方法实施例中的任务执行方法。

图3示出了本发明实施例提供的计算设备的结构示意图,本发明具体实施例并不对计算设备的具体实现做限定。

如图3所示,该计算设备可以包括:处理器(processor)、通信接口(Communications Interface)、存储器(memory)、以及通信总线。

其中:处理器、通信接口、以及存储器通过通信总线完成相互间的通信。通信接口,用于与其它设备比如客户端或其它服务器等的网元通信。处理器,用于执行程序,具体可以执行上述用于计算设备的任务执行方法实施例中的相关步骤。

具体地,程序可以包括程序代码,该程序代码包括计算机操作指令。

处理器可能是中央处理器CPU,或者是特定集成电路ASIC(Application SpecificIntegrated Circuit),或者是被配置成实施本发明实施例的一个或多个集成电路。计算设备包括的一个或多个处理器,可以是同一类型的处理器,如一个或多个CPU;也可以是不同类型的处理器,如一个或多个CPU以及一个或多个ASIC。

存储器,用于存放程序。存储器可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。

程序具体可以用于使得处理器执行上述任意方法实施例中的任务执行方法。程序中各步骤的具体实现可以参见上述任务执行实施例中的相应步骤和单元中对应的描述,在此不赘述。所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的设备和模块的具体工作过程,可以参考前述方法实施例中的对应过程描述,在此不再赘述。

在此提供的算法或显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明实施例也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明实施例的内容,并且上面对特定语言所做的描述是为了披露本发明实施例的最佳实施方式。

在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。

类似地,应当理解,为了精简本发明实施例并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明实施例的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明实施例要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。

本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。

此外,本领域的技术人员能够理解,尽管在此的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。

本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的一些或者全部部件的一些或者全部功能。本发明实施例还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明实施例的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。

应该注意的是上述实施例对本发明实施例进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明实施例可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。上述实施例中的步骤,除有特殊说明外,不应理解为对执行顺序的限定。

相关技术
  • 储存装置及其任务执行方法以及对应于储存装置的主机及其任务执行方法
  • 预定任务执行方法和管理任务执行方法、及其终端设备
技术分类

06120113678640