CN113220542B - 一种计算任务的预警方法、装置、计算机设备及存储介质 - Google Patents
一种计算任务的预警方法、装置、计算机设备及存储介质 Download PDFInfo
- Publication number
- CN113220542B CN113220542B CN202110360059.1A CN202110360059A CN113220542B CN 113220542 B CN113220542 B CN 113220542B CN 202110360059 A CN202110360059 A CN 202110360059A CN 113220542 B CN113220542 B CN 113220542B
- Authority
- CN
- China
- Prior art keywords
- task
- estimated
- baseline
- current
- target task
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/32—Monitoring with visual or acoustical indication of the functioning of the machine
- G06F11/324—Display of status information
- G06F11/327—Alarm or error message display
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Quality & Reliability (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种计算任务的预警方法、装置、计算机设备及存储介质,该方法包括:根据基线任务的预估执行时长以及基线任务之间的依赖关系计算得到待监控的目标任务的当前预估完成信息,目标任务包括任一基线任务,获取当前时间目标任务的当前执行状态信息,将目标任务的预估执行时长以及当前预估完成信息与当前执行状态信息进行比较,获取比较结果,根据比较结果判断所述目标任务是否存在异常。本发明通过根据基线任务之间的依赖关系对目标任务监控和预警,节省了人工分析上游依赖任务节点和估算上游依赖任务节点正常运行时长的工作量,同时提高了每个依赖任务的最晚完成时间计算的准确率。
Description
技术领域
本发明涉及计算机技术领域,特别涉及一种计算任务的预警方法、装置、计算机设备及存储介质。
背景技术
随着大数据技术的发展以及业务场景的复杂化,离线计算任务的规模快速扩大,任务节点之间的关系错综复杂,任务链路涉及多个业务***,业务流程较长。
目前,对离线计算任务的监控和预警,大都采用针对任务链路进行人工分析关键任务的上游任务,根据经验值设置每个任务的超时时间,配置任务出错预警和超时预警。由于需要人工分析任务关系和根据经验值配置任务运行时长,导致了当前的离线计算任务监控和预警,存在配置工作量巨大,预警不及时或者误报,大量重复预警,无法及时根据业务调整做出及时调整预警配置等问题。
因此,亟需提出一种新的计算任务的预警方法,以解决上述问题。
发明内容
为了解决现有技术的问题,本发明实施例提供了一种计算任务的预警方法、装置、计算机设备以及存储介质,以克服现有技术中存在的问题。
为解决上述一个或多个技术问题,本发明采用的技术方案是:
第一方面,提供了一种计算任务的预警方法,该方法包括如下步骤:
根据基线任务的预估执行时长以及所述基线任务之间的依赖关系计算得到待监控的目标任务的当前预估完成信息,所述当前预估完成信息包括预估完成时间,所述目标任务包括任一基线任务;
获取当前时间所述目标任务的当前执行状态信息,所述当前执行状态信息包括所述目标任务的实际执行时长以及实际完成信息;
将所述目标任务的预估执行时长以及所述当前预估完成信息与所述当前执行状态信息进行比较,获取比较结果;
根据所述比较结果判断所述目标任务是否存在异常。
进一步的,所述方法包括基线任务的预估执行时长的获取过程,包括:
获取每一基线任务的历史执行时长,根据所述历史执行时长以及预设计算规则计算得到每一所述基线任务的预估执行时长。
进一步的,所述根据基线任务的预估执行时长以及所述基线任务之间的依赖关系计算得到待监控的目标任务的当前预估完成信息包括:
根据基线任务之间的依赖关系生成有向无环图,所述有向无环图的节点为所述基线任务,所述有向无环图的每条边对应所述边的后继节点的预估执行时长;
根据所述有向无环图生成所述有向无环图的转置图,并遍历所述转置图,获取以每一所述目标任务为起始节点的最大连通图;
根据所述最大连通图以及所述最大连通图上相应基线任务的预估执行时长确定每一所述目标任务的当前预估完成信息。
进一步的,所述根据基线任务的预估执行时长以及所述基线任务之间的依赖关系计算得到待监控的目标任务的当前预估完成信息还包括:
查询目标***中是否存在所述目标任务的历史预估完成信息,若存在,则判断所述当前预估完成信息是否小于所述历史预估完成信息,若不是,则将所述历史预估完成信息作为所述目标任务的当前预估完成信息。
进一步的,所述根据所述最大连通图以及所述最大连通图上相应基线任务的预估执行时长确定每一所述目标任务的当前预估完成信息包括:
获取所述目标任务的当前预估开始时间,根据所述当前预估开始时间以及所述最大连通图上相应基线任务的预估执行时长确定每一所述目标任务的当前预估完成信息。
进一步的,所述方法还包括获取所述目标任务的当前预估开始时间的过程,包括:
获取所述有向无环图中所有入度为零的基线任务,根据每一所述入度为零的基线任务的预先配置的开始时间以及相应基线任务的预估执行时长计算获取所述目标任务的当前预估开始时间。
进一步的,所述获取所述目标任务的当前预估开始时间的过程还包括:
查询目标***中是否存在所述目标任务的历史预估开始时间,若存在,则判断所述当前预估开始时间是否小于所述历史预估开始时间,若不是,则将所述历史预估开始时间作为所述目标任务的当前预估开始时间。
第二方面,提供了一种计算任务的预警装置,所述装置包括:
计算模块,用于根据基线任务的预估执行时长以及所述基线任务之间的依赖关系计算得到待监控的目标任务的当前预估完成信息,所述当前预估完成信息包括预估完成时间,所述目标任务包括任一基线任务;
获取模块,用于当前时间所述目标任务的当前执行状态信息,所述当前执行状态信息包括所述目标任务的实际执行时长以及实际完成信息;
比较模块,用于将所述目标任务的预估执行时长以及所述当前预估完成信息与所述当前执行状态信息进行比较,获取比较结果;
判断模块,用于根据所述比较结果判断所述目标任务是否存在异常。
第三方面,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如下步骤:
根据基线任务的预估执行时长以及所述基线任务之间的依赖关系计算得到待监控的目标任务的当前预估完成信息,所述当前预估完成信息包括预估完成时间,所述目标任务包括任一基线任务;
获取当前时间所述目标任务的当前执行状态信息,所述当前执行状态信息包括所述目标任务的实际执行时长以及实际完成信息;
将所述目标任务的预估执行时长以及所述当前预估完成信息与所述当前执行状态信息进行比较,获取比较结果;
根据所述比较结果判断所述目标任务是否存在异常。
第四方面,提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时,实现如下步骤:
根据基线任务的预估执行时长以及所述基线任务之间的依赖关系计算得到待监控的目标任务的当前预估完成信息,所述当前预估完成信息包括预估完成时间,所述目标任务包括任一基线任务;
获取当前时间所述目标任务的当前执行状态信息,所述当前执行状态信息包括所述目标任务的实际执行时长以及实际完成信息;
将所述目标任务的预估执行时长以及所述当前预估完成信息与所述当前执行状态信息进行比较,获取比较结果;
根据所述比较结果判断所述目标任务是否存在异常。
本发明实施例提供的技术方案带来的有益效果是:
本发明实施例提供的计算任务的预警方法、装置、计算机设备及存储介质,通过根据基线任务的预估执行时长以及所述基线任务之间的依赖关系计算得到待监控的目标任务的当前预估完成信息,所述当前预估完成信息包括预估完成时间,所述目标任务包括任一基线任务,获取当前时间所述目标任务的当前执行状态信息,所述当前执行状态信息包括所述目标任务的实际执行时长以及实际完成信息,将所述目标任务的预估执行时长以及所述当前预估完成信息与所述当前执行状态信息进行比较,获取比较结果,根据所述比较结果判断所述目标任务是否存在异常,根据基线任务之间的依赖关系对目标任务监控和预警,节省了人工分析上游依赖任务节点和估算上游依赖任务节点正常运行时长的工作量,同时提高了每个依赖任务的最晚完成时间计算的准确率;
本发明实施例提供的计算任务的预警方法、装置、计算机设备及存储介质,根据基线任务之间的依赖关系生成有向无环图,所述有向无环图的节点为所述基线任务,所述有向无环图的每条边对应所述边的后继节点的预估执行时长,根据所述有向无环图生成所述有向无环图的转置图,并遍历所述转置图,获取以每一所述目标任务为起始节点的最大连通图,根据所述最大连通图以及所述最大连通图上相应基线任务的预估执行时长确定每一所述目标任务的当前预估完成信息,通过有向无环图判断任务的依赖关系,对预警消息进行聚合,避免预警消息风暴的发生;
本发明实施例提供的计算任务的预警方法、装置、计算机设备及存储介质,在任务链路较长和依赖复杂的场景下,现有方案在上游任务节点出错或变慢时不能及时预警下游任务节点的责任人,本方案通过有向无环图的深度优先遍历算法能够在上游任务节点出错或变慢的场景下及时预警下游节点的责任人,并预估出任务的预计完成时间,供下游任务责任人及时做出相应调整,保障数据及时准确产出。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是根据一示例性实施例示出的计算任务的预警***的结构示意图;
图2是根据一示例性实施例示出的计算任务的预警方法的流程图;
图3是根据一示例性实施例示出的计算任务的预警装置的结构示意图;
图4是根据一示例性实施例示出的计算机设备的内部结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
如背景技术所述,现有技术中的计算任务的预警方案中存在配置工作量巨大,预警不及时或者误报,大量重复预警,无法及时根据业务调整做出及时调整预警配置等问题。
为解决上述问题,本发明实施例中创造性的提出了一种计算任务的预警方法,能够提高离线计算任务预警的效率。该方法适用于通过任务依赖分析智能预警任务出错和变慢的场景。在配置基线保障时间时,***根据用户配置的保障任务节点和构建的有向无环图计算基线的预计完成时间,提示用户设置合理的基线保障时间,避免配置错误,导致基线无效运行。使用有向无环权重图构建任务关系,任务正常预估执行时长作为任务节点之间边的权重值,使用最大连通子图算法计算基线依赖任务,使用最长路径算法计算每个依赖任务的必须完成时间。
下面将结合附图和各个实施例,对本申请的方案进行详细介绍。
实施例一
为实现上述方法,本发明实施例中还提供了一种计算任务的预警***,参照图1所示,该***至少包括基线管理模块、任务正常运行时长预估模块、任务依赖管理模块、任务关系图重构模块、基线实例管理模块、基线任务依赖节点计算模块、监控节点注册模块、监控节点检查模块、预警事件管理模块以及预警消息聚合模块等,这里不一一列举。其中,主要模块的功能如下:
基线管理模块主要提供用户新增、修改、删除、上下线基线的管理接口。通常一个基线的配置主要包括基线名称、基线保障任务、基线保障时间等关键要素。为保障用户正确配置基线的保障时间,基线管理模块还提供了基线预计完成时间计算功能,在用户输入基线保障任务后计算出基线预期完成的时间,提供用户参考,选择合适的基线保障时间,具体过程如下:
首先,遍历基线任务前置任务有向无环图,计算图中每个节点的入度,入度是指有向图中某节点作为图中边的终点的次数之和。将所有入度为0的节点放入到处理队列Q。其次,将处理队列Q队首的节点U出队进行处理,计算节点U的当前预估开始时间Tus1,Tus1取节点U配置的任务开始调度时间和节点U所在任务流配置的开始时间的较大值。然后,查询节点U是否存在已经计算过的预估开始时间Tus0(即其他到达节点U路径的预估开始时间)。若节点U不存在已经计算过的预估开始时间Tus0,则将计算得到的当前预估开始时间Tus1保存到节点U的属性值;若节点U存在已经计算过的预估开始时间Tus0,则比较Tus1和Tus0的大小,若Tus1≥Tus0,则将计算得到的当前预估开始时间Tus1保存到节点U的属性值,若Tusl<Tus0,则保持U的属性值不变。接着,计算节点U的所有后继节点Vi的预计开始时间Tvsi,将计算得到的预计开始时间Tvsi写入节点Vi的属性,将完成计算预计开始时间的节点Vi入队到处理队列Q的队尾。最后,重复执行上述步骤,直至处理队列Q为空队列。
任务正常运行时长预估模块,用于从数据库读取所有任务实例的执行历史记录,任务实例历史记录包括任务标识、任务执行开始时间、任务执行完成时间,***对每一个任务实例,计算任务执行开始时间和任务执行结束时间相差的秒数,按照任务标识对执行时长分组,得到每个任务的历史执行时长序列,对每个任务的历史执行时长序列按照从小到大的顺序进行排序,取每个任务的历史执行时长序列的中位数作为每个任务的正常执行时长的预估值,参与后续任务关系图构建模块的计算;
任务依赖管理模块,用于从消息队列接收任务节点依赖关系的新增、修改、删除等变更信息;
任务关系图重构模块,用于根据任务依赖管理模块接收的依赖变更信息对任务节点有向图做相应的调整,新增的任务节点关系在原有有向图中添加权重边,边的权重值为后继节点任务的正常运行时长预估值,若后驱节点为新建任务无执行历史,则使用默认值,其中,修改的任务节点关系在原有有向图中先删除原有边,再添加新的从前驱节点到后继节点的有向边,删除的任务节点关系在原有有向图中删除从前驱节点到后继节点的有向边;
基线实例管理模块,用于主要完成按照数据时间生成基线实例批次,和关键任务实例批次绑定,基线实例状态更新等功能,其中,基线实例状态包括基线余量充足的安全状态,基线余量触发预警的预警状态,基线余量为负数的破线状态;
基线依赖任务节点计算模块,用于主要完成根据基线实例的保障时间计算上游依赖任务实例的保障开始时间和保障完成时间的功能,具体流程如下:
首先,从基线的保障任务出发,将该节点放入待处理队列Q。其次,将处理队列Q队首的节点U出队进行处理,计算该节点所有后继节点Vi的保障完成时间Tvi1。接着,对处理节点U的所有后继节点Vi判断是否存在已经计算过的保障完成时间Tvi0,若节点Vi不存在已经计算过的保障完成时间Tvi0,则将计算得到的保障完成时间Tvi1保存到节点Vi的属性值;若节点Vi存在已经计算过的保障完成时间Tvi0,则比较Tvi1和Tvi0,若Tvi1<Tvi0,则将计算得到的保障完成时间Tvi1保存到节点Vi的属性值,若Tvi1≥Tvi0,则保持Vi的属性值不变。然后,将计算完成保障完成时间的节点Vi入队到处理队列Q的队尾,最后,重复上述步骤,直至处理队列Q为空队列。
监控节点注册模块,用于使用基线依赖任务节点计算模块计算得到的每个上游依赖任务,加入使用保障开始时间大小作为权重值的监控队列,同时针对每个任务实例创建任务实例状态机,记录每个任务实例的当前状态;
监控节点检查模块,用于接收任务状态消息队列推送的任务实例状态变更消息,包括待调度(新建)、参数检查错误、资源准备失败、执行中、杀死、执行失败、失败重试、忽略错误、执行成功等状态消息,任务实例状态机根据从任务状态消息队列接收到的消息,转换状态机状态。同时监控节点检查模块定时对监控队列中的任务依次检查,如果当前任务实例状态处于运行成功或者忽略错误状态,将当前任务实例从监控队列移除,同时检查监控队列是否为空,判断当前基线是否完成;如果当前任务实例状态处于参数检查错误、资源准备失败、杀死、执行失败状态,触发任务失败预警事件;如果任务处于待调度状态,判断当前时间是否已经晚于任务实例的无预警保障开始时间,其中任务实例的无预警保障开始时间等于任务实例的保障开始时间减去基线的预警余量,触发任务延迟预警;如果任务处于失败重试和执行中状态,判断当前时间是否晚于任务实例的无预警保障完成时间,其中任务实例的无预警保障完成时间等于任务实例的保障完成时间减去基线预警余量,触发任务延迟预警。对于处于待调度、失败重试和执行中状态的任务实例需要检查当前时间是否晚于任务实例的保障完成时间,判断基线实例是否处于破线状态。
预警事件管理模块,用于接收监控节点检查模块产生的任务失败事件和任务延迟事件,根据用户设定的规则判断是否需要忽略预警事件,同时记录预警事件记录到数据库,并把过滤后的预警事件发送到预警消息聚合模块;
预警消息聚合模块,用于接收过滤后的预警事件后,按照任务实例的保障开始时间排序取第一个出错或延迟的预警事件定义为基线阻塞事件,根据用户定义的预警间隔时间和预警次数判断是否满足预警消息推送要求,对满足要求的预警消息推送至预警消息队列,最终发送到用户。
具体的,通过上述计算任务的预警***实现计算任务的预警的过程包括如下步骤:
步骤一、***根据基线任务的历史执行时长以及预设计算规则计算得到每一基线任务的预估执行时长;
具体的,通过***查询基线任务最近一周的历史执行实例,获取基线任务的多次执行时的历史执行时长,采用预设计算规则,如中位数算法,计算获取基线任务的预估执行时长。
步骤二、***根据基线任务之间的依赖关系生成基线任务的有向无环图;
具体的,***根据任务之间的依赖关系,把所有任务节点(即基线任务)构建为一个有向无环图,该有向无环图即为基线任务之间的任务关系图,其中,有向无环图中的每个节点为基线任务,每条边的权重为该边的后继节点的预估执行时长。
步骤三、生成所述有向无环图的转置图;
具体的,***对有向无环图的每条边进行反转处理,即将每条边前驱节点变为后继节点,后继节点变为前驱节点,得到该有向无环图的转置图。
步骤四、根据所述转置图生成目标任务的最大连通子图;
具体的,本发明实施例中,目标任务包括但不限于用户配置的基线的关键任务节点,其中,关键任务可以是基线任务中的任意一个任务。在有向无环图的转置图中以目标任务为起始节点,使用深度优先遍历算法遍历,得到以目标任务为起始节点的最大连通子图,该最大连通子图就是基线任务的依赖转置图。
步骤五、根据上述最大连通子图以及最大连通子图中包含的基线任务的预估执行时长计算得到目标任务的当前预估完成信息;
具体的,当前预估完成信息包括但不限于预估完成时间以及完成状态等。***根据上一步得到的最大连通子图,采用深度优先遍历算法遍历所有节点,并计算每个节点距离起始节点(目标任务)的最长距离,同时根据用户配置的保障时间可以计算得到每个任务节点的预估完成时间等信息。
步骤六、将目标任务的预估执行时长以及当前预估完成信息与该目标任务的当前执行状态信息,判断目标任务是否异常。
具体的,***扫描基线依赖的所有任务节点(即目标任务),并检查当前时间所有依赖任务的状态,获取目标任务的当前执行状态信息,其中,当前执行状态信息包括所述目标任务的实际执行时长以及实际完成信息。实际完成信息包括但不限于完成状态,如待调度(新建)、参数检查错误、资源准备失败、执行中、杀死、执行失败、失败重试、忽略错误、执行成功等状态。对于状态为出错的任务,直接发出任务出错预警,对于当前时间已经超过任务最晚完成时间,而状态处于非执行成功的其他状态的任务发出任务变慢预警。
实施例二
对应于上述实施例一,如图2所示,本发明提供了一种计算任务的预警方法,该方法包括如下步骤:
S10:根据基线任务的预估执行时长以及所述基线任务之间的依赖关系计算得到待监控的目标任务的当前预估完成信息,所述当前预估完成信息包括预估完成时间,所述目标任务包括任一基线任务。
具体的,本发明实施例中,待预警的目标任务包括但不限于用户配置的基线的关键任务节点,关键任务节点包括任一基线任务。
S20:获取当前时间所述目标任务的当前执行状态信息,所述当前执行状态信息包括所述目标任务的实际执行时长以及实际完成信息。
S30:将所述目标任务的预估执行时长以及所述当前预估完成信息与所述当前执行状态信息进行比较,获取比较结果。
S40:根据所述比较结果判断所述目标任务是否存在异常。
具体的,判断预估执行时长以及当前预估完成信息与当前执行状态信息是否一致,若一致,则判定目标任务不存在异常,否则,判定目标任务存在异常。
作为一种较优的实施方式,本发明实施例中,所述方法包括基线任务的预估执行时长的获取过程,包括:
获取每一基线任务的历史执行时长,根据所述历史执行时长以及预设计算规则计算得到每一所述基线任务的预估执行时长。
作为一种较优的实施方式,本发明实施例中,所述根据基线任务的预估执行时长以及所述基线任务之间的依赖关系计算得到待监控的目标任务的当前预估完成信息包括:
S101:根据基线任务之间的依赖关系生成有向无环图,所述有向无环图的节点为所述基线任务,所述有向无环图的每条边对应所述边的后继节点的预估执行时长;
S102:根据所述有向无环图生成所述有向无环图的转置图,并遍历所述转置图,获取以每一所述目标任务为起始节点的最大连通图;
S103:根据所述最大连通图以及所述最大连通图上相应基线任务的预估执行时长确定每一所述目标任务的当前预估完成信息。
作为一种较优的实施方式,本发明实施例中,所述根据基线任务的预估执行时长以及所述基线任务之间的依赖关系计算得到待监控的目标任务的当前预估完成信息还包括:
查询目标***中是否存在所述目标任务的历史预估完成信息,若存在,则判断所述当前预估完成信息是否小于所述历史预估完成信息,若不是,则将所述历史预估完成信息作为所述目标任务的当前预估完成信息。
作为一种较优的实施方式,本发明实施例中,所述根据所述最大连通图以及所述最大连通图上相应基线任务的预估执行时长确定每一所述目标任务的当前预估完成信息包括:
获取所述目标任务的当前预估开始时间,根据所述当前预估开始时间以及所述最大连通图上相应基线任务的预估执行时长确定每一所述目标任务的当前预估完成信息。
作为一种较优的实施方式,本发明实施例中,所述方法还包括获取所述目标任务的当前预估开始时间的过程,包括:
获取所述有向无环图中所有入度为零的基线任务,根据每一所述入度为零的基线任务的预先配置的开始时间以及相应基线任务的预估执行时长计算获取所述目标任务的当前预估开始时间。
具体的,本发明实施例中,还可以根据每一所述入度为零的基线任务的预先配置的开始时间以及相应基线任务的预估执行时长计算获取所述目标任务的当前预估完成时间。
作为一种较优的实施方式,本发明实施例中,所述获取所述目标任务的当前预估开始时间的过程还包括:
查询目标***中是否存在所述目标任务的历史预估开始时间,若存在,则判断所述当前预估开始时间是否小于所述历史预估开始时间,若不是,则将所述历史预估开始时间作为所述目标任务的当前预估开始时间。
具体的,所述历史预估开始时间包括但不限于其他路径计算的预估开始时间。
实施例三
应于上述实施例一和二,如图3所示,本发明还提供了一种计算任务的预警装置,该装置包括:
计算模块,用于根据基线任务的预估执行时长以及所述基线任务之间的依赖关系计算得到待监控的目标任务的当前预估完成信息,所述当前预估完成信息包括预估完成时间,所述目标任务包括任一基线任务;
获取模块,用于当前时间所述目标任务的当前执行状态信息,所述当前执行状态信息包括所述目标任务的实际执行时长以及实际完成信息;
比较模块,用于将所述目标任务的预估执行时长以及所述当前预估完成信息与所述当前执行状态信息进行比较,获取比较结果;
判断模块,用于根据所述比较结果判断所述目标任务是否存在异常。
作为一种较优的实施方式,本发明实施例中,所述计算模块还用于:
获取每一基线任务的历史执行时长,根据所述历史执行时长以及预设计算规则计算得到每一所述基线任务的预估执行时长。
作为一种较优的实施方式,本发明实施例中,所述计算模块还用于:
根据基线任务之间的依赖关系生成有向无环图,所述有向无环图的节点为所述基线任务,所述有向无环图的每条边对应所述边的后继节点的预估执行时长;
根据所述有向无环图生成所述有向无环图的转置图,并遍历所述转置图,获取以每一所述目标任务为起始节点的最大连通图;
根据所述最大连通图以及所述最大连通图上相应基线任务的预估执行时长确定每一所述目标任务的当前预估完成信息。
作为一种较优的实施方式,本发明实施例中,所述计算模块还用于:
查询目标***中是否存在所述目标任务的历史预估完成信息,若存在,则判断所述当前预估完成信息是否小于所述历史预估完成信息,若不是,则将所述历史预估完成信息作为所述目标任务的当前预估完成信息。
作为一种较优的实施方式,本发明实施例中,所述计算模块还用于:
获取所述目标任务的当前预估开始时间,根据所述当前预估开始时间以及所述最大连通图上相应基线任务的预估执行时长确定每一所述目标任务的当前预估完成信息。
作为一种较优的实施方式,本发明实施例中,所述计算模块还用于:
获取所述有向无环图中所有入度为零的基线任务,根据每一所述入度为零的基线任务的预先配置的开始时间以及相应基线任务的预估执行时长计算获取所述目标任务的当前预估开始时间。
作为一种较优的实施方式,本发明实施例中,所述计算模块还用于:
查询目标***中是否存在所述目标任务的历史预估开始时间,若存在,则判断所述当前预估开始时间是否小于所述历史预估开始时间,若不是,则将所述历史预估开始时间作为所述目标任务的当前预估开始时间。
实施例四
对应于上述实施例一至三,本发明还提供了一种计算机设备。图4是根据一示例性实施例示出的计算机设备的内部结构示意图,参照图4所示,该计算机设备包括通过***总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作***、计算机程序和数据库。该内存储器为非易失性存储介质中的操作***和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种执行计划的优化方法。
本领域技术人员可以理解,图4中示出的结构,仅仅是与本发明方案相关的部分结构的框图,并不构成对本发明方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
作为一种较优的实施方式,本发明实施例中,计算机设备包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现以下步骤:
根据基线任务的预估执行时长以及所述基线任务之间的依赖关系计算得到待监控的目标任务的当前预估完成信息,所述当前预估完成信息包括预估完成时间,所述目标任务包括任一基线任务;
获取当前时间所述目标任务的当前执行状态信息,所述当前执行状态信息包括所述目标任务的实际执行时长以及实际完成信息;
将所述目标任务的预估执行时长以及所述当前预估完成信息与所述当前执行状态信息进行比较,获取比较结果;
根据所述比较结果判断所述目标任务是否存在异常。
作为一种较优的实施方式,本发明实施例中,处理器执行计算机程序时还实现以下步骤:
获取每一基线任务的历史执行时长,根据所述历史执行时长以及预设计算规则计算得到每一所述基线任务的预估执行时长。
作为一种较优的实施方式,本发明实施例中,处理器执行计算机程序时还实现以下步骤:
根据基线任务之间的依赖关系生成有向无环图,所述有向无环图的节点为所述基线任务,所述有向无环图的每条边对应所述边的后继节点的预估执行时长;
根据所述有向无环图生成所述有向无环图的转置图,并遍历所述转置图,获取以每一所述目标任务为起始节点的最大连通图;
根据所述最大连通图以及所述最大连通图上相应基线任务的预估执行时长确定每一所述目标任务的当前预估完成信息。
作为一种较优的实施方式,本发明实施例中,处理器执行计算机程序时还实现以下步骤:
查询目标***中是否存在所述目标任务的历史预估完成信息,若存在,则判断所述当前预估完成信息是否小于所述历史预估完成信息,若不是,则将所述历史预估完成信息作为所述目标任务的当前预估完成信息。
作为一种较优的实施方式,本发明实施例中,处理器执行计算机程序时还实现以下步骤:
获取所述目标任务的当前预估开始时间,根据所述当前预估开始时间以及所述最大连通图上相应基线任务的预估执行时长确定每一所述目标任务的当前预估完成信息。
作为一种较优的实施方式,本发明实施例中,处理器执行计算机程序时还实现以下步骤:
获取所述有向无环图中所有入度为零的基线任务,根据每一所述入度为零的基线任务的预先配置的开始时间以及相应基线任务的预估执行时长计算获取所述目标任务的当前预估开始时间。
作为一种较优的实施方式,本发明实施例中,处理器执行计算机程序时还实现以下步骤:
查询目标***中是否存在所述目标任务的历史预估开始时间,若存在,则判断所述当前预估开始时间是否小于所述历史预估开始时间,若不是,则将所述历史预估开始时间作为所述目标任务的当前预估开始时间。
实施例五
对应于上述实施例一至四,本申请实施例中,还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时,实现如下步骤:
根据基线任务的预估执行时长以及所述基线任务之间的依赖关系计算得到待监控的目标任务的当前预估完成信息,所述当前预估完成信息包括预估完成时间,所述目标任务包括任一基线任务;
获取当前时间所述目标任务的当前执行状态信息,所述当前执行状态信息包括所述目标任务的实际执行时长以及实际完成信息;
将所述目标任务的预估执行时长以及所述当前预估完成信息与所述当前执行状态信息进行比较,获取比较结果;
根据所述比较结果判断所述目标任务是否存在异常。
作为一种较优的实施方式,本发明实施例中,所述计算机程序被处理器执行时,还实现如下步骤:
获取每一基线任务的历史执行时长,根据所述历史执行时长以及预设计算规则计算得到每一所述基线任务的预估执行时长。
作为一种较优的实施方式,本发明实施例中,所述计算机程序被处理器执行时,还实现如下步骤:
根据基线任务之间的依赖关系生成有向无环图,所述有向无环图的节点为所述基线任务,所述有向无环图的每条边对应所述边的后继节点的预估执行时长;
根据所述有向无环图生成所述有向无环图的转置图,并遍历所述转置图,获取以每一所述目标任务为起始节点的最大连通图;
根据所述最大连通图以及所述最大连通图上相应基线任务的预估执行时长确定每一所述目标任务的当前预估完成信息。
作为一种较优的实施方式,本发明实施例中,所述计算机程序被处理器执行时,还实现如下步骤:
查询目标***中是否存在所述目标任务的历史预估完成信息,若存在,则判断所述当前预估完成信息是否小于所述历史预估完成信息,若不是,则将所述历史预估完成信息作为所述目标任务的当前预估完成信息。
作为一种较优的实施方式,本发明实施例中,所述计算机程序被处理器执行时,还实现如下步骤:
获取所述目标任务的当前预估开始时间,根据所述当前预估开始时间以及所述最大连通图上相应基线任务的预估执行时长确定每一所述目标任务的当前预估完成信息。
作为一种较优的实施方式,本发明实施例中,所述计算机程序被处理器执行时,还实现如下步骤:
获取所述有向无环图中所有入度为零的基线任务,根据每一所述入度为零的基线任务的预先配置的开始时间以及相应基线任务的预估执行时长计算获取所述目标任务的当前预估开始时间。
作为一种较优的实施方式,本发明实施例中,所述计算机程序被处理器执行时,还实现如下步骤:
查询目标***中是否存在所述目标任务的历史预估开始时间,若存在,则判断所述当前预估开始时间是否小于所述历史预估开始时间,若不是,则将所述历史预估开始时间作为所述目标任务的当前预估开始时间。
综上所述,本发明实施例提供的技术方案带来的有益效果是:
本发明实施例提供的计算任务的预警方法、装置、计算机设备及存储介质,通过根据基线任务的预估执行时长以及所述基线任务之间的依赖关系计算得到待监控的目标任务的当前预估完成信息,所述当前预估完成信息包括预估完成时间,所述目标任务包括任一基线任务,获取当前时间所述目标任务的当前执行状态信息,所述当前执行状态信息包括所述目标任务的实际执行时长以及实际完成信息,将所述目标任务的预估执行时长以及所述当前预估完成信息与所述当前执行状态信息进行比较,获取比较结果,根据所述比较结果判断所述目标任务是否存在异常,根据基线任务之间的依赖关系对目标任务监控和预警,节省了人工分析上游依赖任务节点和估算上游依赖任务节点正常运行时长的工作量,同时提高了每个依赖任务的最晚完成时间计算的准确率;
本发明实施例提供的计算任务的预警方法、装置、计算机设备及存储介质,根据基线任务之间的依赖关系生成有向无环图,所述有向无环图的节点为所述基线任务,所述有向无环图的每条边对应所述边的后继节点的预估执行时长,根据所述有向无环图生成所述有向无环图的转置图,并遍历所述转置图,获取以每一所述目标任务为起始节点的最大连通图,根据所述最大连通图以及所述最大连通图上相应基线任务的预估执行时长确定每一所述目标任务的当前预估完成信息,通过有向无环图判断任务的依赖关系,对预警消息进行聚合,避免预警消息风暴的发生;
本发明实施例提供的计算任务的预警方法、装置、计算机设备及存储介质,在任务链路较长和依赖复杂的场景下,现有方案在上游任务节点出错或变慢时不能及时预警下游任务节点的责任人,本方案通过有向无环图的深度优先遍历算法能够在上游任务节点出错或变慢的场景下及时预警下游节点的责任人,并预估出任务的预计完成时间,供下游任务责任人及时做出相应调整,保障数据及时准确产出。
需要说明的是:上述实施例提供的计算任务的预警装置在触发预警业务时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的计算任务的预警装置与计算任务的预警方法实施例属于同一构思,即该装置是基于该计算任务的预警方法的,其具体实现过程详见方法实施例,这里不再赘述。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (9)
1.一种计算任务的预警方法,其特征在于,所述方法包括如下步骤:
根据基线任务的预估执行时长以及所述基线任务之间的依赖关系计算得到待监控的目标任务的当前预估完成信息,
所述当前预估完成信息包括预估完成时间,所述目标任务包括任一基线任务;
获取当前时间所述目标任务的当前执行状态信息,所述当前执行状态信息包括所述目标任务的实际执行时长以及实际完成信息;
将所述目标任务的预估执行时长以及所述当前预估完成信息与所述当前执行状态信息进行比较,获取比较结果;
根据所述比较结果判断所述目标任务是否存在异常;
其中,所述根据基线任务的预估执行时长以及所述基线任务之间的依赖关系计算得到待监控的目标任务的当前预估完成信息,包括:
根据基线任务之间的依赖关系生成有向无环图,所述有向无环图的节点为所述基线任务,所述有向无环图的每条边对应所述边的后继节点的预估执行时长;
根据所述有向无环图生成所述有向无环图的转置图,并遍历所述转置图,获取以每一所述目标任务为起始节点的最大连通图;
根据所述最大连通图以及所述最大连通图上相应基线任务的预估执行时长确定每一所述目标任务的当前预估完成信息。
2.根据权利要求1所述的计算任务的预警方法,其特征在于,所述方法包括基线任务的预估执行时长的获取过程,包括:
获取每一基线任务的历史执行时长,根据所述历史执行时长以及预设计算规则计算得到每一所述基线任务的预估执行时长。
3.根据权利要求1所述的计算任务的预警方法,其特征在于,所述根据基线任务的预估执行时长以及所述基线任务之间的依赖关系计算得到待监控的目标任务的当前预估完成信息还包括:
查询目标***中是否存在所述目标任务的历史预估完成信息,若存在,则判断所述当前预估完成信息是否小于所述历史预估完成信息,若不是,则将所述历史预估完成信息作为所述目标任务的当前预估完成信息。
4.根据权利要求1所述的计算任务的预警方法,其特征在于,所述根据所述最大连通图以及所述最大连通图上相应基线任务的预估执行时长确定每一所述目标任务的当前预估完成信息包括:
获取所述目标任务的当前预估开始时间,根据所述当前预估开始时间以及所述最大连通图上相应基线任务的预估执行时长确定每一所述目标任务的当前预估完成信息。
5.根据权利要求1所述的计算任务的预警方法,其特征在于,所述方法还包括获取所述目标任务的当前预估开始时间的过程,包括:
获取所述有向无环图中所有入度为零的基线任务,根据每一所述入度为零的基线任务的预先配置的开始时间以及相应基线任务的预估执行时长计算获取所述目标任务的当前预估开始时间。
6.根据权利要求5所述的计算任务的预警方法,其特征在于,所述获取所述目标任务的当前预估开始时间的过程还包括:
查询目标***中是否存在所述目标任务的历史预估开始时间,若存在,则判断所述当前预估开始时间是否小于所述历史预估开始时间,若不是,则将所述历史预估开始时间作为所述目标任务的当前预估开始时间。
7.一种计算任务的预警装置,其特征在于,所述装置包括:
计算模块,用于根据基线任务的预估执行时长以及所述基线任务之间的依赖关系计算得到待监控的目标任务的当前预估完成信息,
所述当前预估完成信息包括预估完成时间,所述目标任务包括任一基线任务;
获取模块,用于当前时间所述目标任务的当前执行状态信息,所述当前执行状态信息包括所述目标任务的实际执行时长以及实际完成信息;
比较模块,用于将所述目标任务的预估执行时长以及所述当前预估完成信息与所述当前执行状态信息进行比较,获取比较结果;
判断模块,用于根据所述比较结果判断所述目标任务是否存在异常;
其中,所述根据基线任务的预估执行时长以及所述基线任务之间的依赖关系计算得到待监控的目标任务的当前预估完成信息,包括:
根据基线任务之间的依赖关系生成有向无环图,所述有向无环图的节点为所述基线任务,所述有向无环图的每条边对应所述边的后继节点的预估执行时长;
根据所述有向无环图生成所述有向无环图的转置图,并遍历所述转置图,获取以每一所述目标任务为起始节点的最大连通图;
根据所述最大连通图以及所述最大连通图上相应基线任务的预估执行时长确定每一所述目标任务的当前预估完成信息。
8.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至6中任一项所述方法的步骤。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至6中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110360059.1A CN113220542B (zh) | 2021-04-01 | 2021-04-01 | 一种计算任务的预警方法、装置、计算机设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110360059.1A CN113220542B (zh) | 2021-04-01 | 2021-04-01 | 一种计算任务的预警方法、装置、计算机设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113220542A CN113220542A (zh) | 2021-08-06 |
CN113220542B true CN113220542B (zh) | 2022-10-28 |
Family
ID=77086455
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110360059.1A Active CN113220542B (zh) | 2021-04-01 | 2021-04-01 | 一种计算任务的预警方法、装置、计算机设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113220542B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113886459A (zh) * | 2021-09-24 | 2022-01-04 | 深圳市云网万店电子商务有限公司 | 基于有向图处理自定义公式的方法、***及存储介质 |
CN114020370A (zh) * | 2021-11-09 | 2022-02-08 | 阿里云计算有限公司 | 数据处理方法、电子设备、计算机存储介质及程序产品 |
CN114925979B (zh) * | 2022-04-19 | 2023-03-24 | 北京人人云图信息技术有限公司 | 一种机场加油派工的装置 |
CN115134224A (zh) * | 2022-08-31 | 2022-09-30 | 杭州玳数科技有限公司 | Dag图的监控方法及*** |
CN115221211B (zh) * | 2022-09-21 | 2023-02-28 | 国网智能电网研究院有限公司 | 一种图计算处理方法、装置、电子设备及存储介质 |
CN118051412B (zh) * | 2024-04-16 | 2024-06-25 | 深圳清华大学研究院 | 一种利用ai和ar的虚拟现实展示*** |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8549002B2 (en) * | 2008-05-15 | 2013-10-01 | Oracle International Corporation | Cluster health indicator with dynamic load correlation |
CN106383746A (zh) * | 2016-08-30 | 2017-02-08 | 北京航空航天大学 | 大数据处理***的配置参数确定方法和装置 |
CN107526631B (zh) * | 2017-09-01 | 2021-01-08 | 百度在线网络技术(北京)有限公司 | 一种任务监控方法、装置、设备和介质 |
CN107608862B (zh) * | 2017-10-13 | 2020-10-27 | 众安信息技术服务有限公司 | 监控告警方法、监控告警装置及计算机可读存储介质 |
CN110008079A (zh) * | 2018-12-25 | 2019-07-12 | 阿里巴巴集团控股有限公司 | 监控指标异常检测方法、模型训练方法、装置及设备 |
CN112130966A (zh) * | 2019-06-24 | 2020-12-25 | 北京京东尚科信息技术有限公司 | 任务调度方法和*** |
CN110597695A (zh) * | 2019-08-29 | 2019-12-20 | 浙江大搜车软件技术有限公司 | 报警方法、装置、计算机设备和可读存储介质 |
CN110554909A (zh) * | 2019-09-06 | 2019-12-10 | 腾讯科技(深圳)有限公司 | 任务的调度处理方法、装置及计算机设备 |
CN111010292A (zh) * | 2019-11-26 | 2020-04-14 | 苏宁云计算有限公司 | 一种离线任务延时告警***、方法及计算机*** |
CN111291123A (zh) * | 2020-02-12 | 2020-06-16 | 支付宝(杭州)信息技术有限公司 | 任务节点管理方法以及装置 |
CN111427748B (zh) * | 2020-03-31 | 2023-06-23 | 携程计算机技术(上海)有限公司 | 任务告警方法、***、设备及存储介质 |
CN112328377B (zh) * | 2020-11-04 | 2022-04-19 | 北京字节跳动网络技术有限公司 | 基线监控方法、装置、可读介质及电子设备 |
CN112559287B (zh) * | 2020-12-11 | 2024-08-06 | 万达信息股份有限公司 | 一种数据中台任务流的优化方法和装置 |
-
2021
- 2021-04-01 CN CN202110360059.1A patent/CN113220542B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN113220542A (zh) | 2021-08-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113220542B (zh) | 一种计算任务的预警方法、装置、计算机设备及存储介质 | |
US11132288B2 (en) | Data-driven scheduling of automated software program test suites | |
CN108632365B (zh) | 服务资源调整方法、相关装置和设备 | |
EP0288043B1 (en) | Simulation method for programs | |
US11449014B2 (en) | Combined learned and dynamic control system | |
US8949676B2 (en) | Real-time event storm detection in a cloud environment | |
CN110489086B (zh) | 流程执行控制方法、装置、计算机设备及存储介质 | |
CN112434061A (zh) | 支持循环依赖的任务调度方法和*** | |
CN108319538B (zh) | 大数据平台运行状态的监控方法和*** | |
CN113704046A (zh) | 一种故障告警处理方法及装置、设备、存储介质 | |
CN113342500B (zh) | 任务执行方法、装置、设备及存储介质 | |
CN114035948A (zh) | 一种分布式任务调度方法及*** | |
JOHNSON | Reliability analysis of large, complex systems using ASSIST | |
KR20230016896A (ko) | 통신 시스템에서 응용 서비스 응답 시간 예측 방법 및 장치 | |
CN113835916A (zh) | 一种基于Ambari大数据平台的告警方法、***及设备 | |
CN112328487A (zh) | 故障注入用例的并行联合仿真调度方法、装置和设备 | |
CN113677583A (zh) | 基于图计算的车辆驾驶数据处理方法、装置和计算机设备 | |
Maggio | Paper V | |
Lamperti et al. | Diagnosis of active systems by automata-based reasoning techniques | |
CN116048656A (zh) | 一种***组件部署的方法、装置以及介质 | |
CN114942801B (zh) | 基于fsm的应用发布任务处理方法、装置及电子设备 | |
CN118467139A (zh) | 回溯实例血缘图构建方法、任务回溯方法及*** | |
JP6897867B2 (ja) | システム更新装置およびシステム更新方法 | |
CN113886215A (zh) | 接口测试方法、装置及存储介质 | |
CN118446737A (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 |