异常作业预警方法、装置、设备、存储介质和程序产品与流程

文档序号:32609785发布日期:2022-12-20 19:24阅读:41来源:国知局
异常作业预警方法、装置、设备、存储介质和程序产品与流程

1.本技术涉及数据处理技术领域,尤其涉及一种异常作业预警方法、装置、设备、存储介质和程序产品。


背景技术:

2.在面对大规模使用批量作业分析数据的系统中目标作业经常会出现迟到现象,也即目标作业未在预设时间内运行的现象。现有技术在目标作业异常时,运维人员往往关注的是目标作业本身是否出现问题。
3.然而,很多时候目标作业的异常并不是由目标作业自身造成的,而是由于上游作业异常导致的。无法及时发现上游项目组中存在异常的作业,从而导致目标作业会被极大延迟,最终影响业务数据的使用。
4.因此,现有技术中存在无法及时发现异常作业的缺陷。


技术实现要素:

5.本技术提供一种异常作业预警方法、装置、设备、存储介质和程序产品,用于解决现有技术中存在的无法及时发现异常作业的缺陷。
6.一方面,本技术提供一种异常作业预警方法,包括:
7.获取作业运行数据和作业依赖数据,其中,所述作业运行数据包括多个作业的运行状态流水,所述作业依赖数据用于指示作业之间的依赖关系;
8.根据所述作业依赖数据和目标作业,获取所述目标作业所依赖的依赖作业,所述依赖作业包括直接依赖作业和间接依赖作业;
9.根据所述作业运行数据获取每个作业的作业信息,所述作业信息包括已完成作业的流水信息或待完成作业的开始信息;
10.根据每个作业的作业信息、所述目标作业和所述依赖作业,确定所述目标作业是否为异常作业,并在所述目标作业为异常作业时,发送预警提醒。
11.可选的,所述根据所述作业依赖数据和目标作业,获取所述目标作业所依赖的依赖作业,包括:
12.根据所述作业依赖数据,获取每个作业的当前执行节点的依赖信息,其中,所述作业依赖数据包括具有直接依赖关系的作业,所述依赖信息包括当前执行节点的直接依赖节点和间接依赖节点;
13.根据每个当前执行节点的依赖信息和执行所述目标作业的目标节点的标识,获取所述目标作业所依赖的依赖作业。
14.可选的,所述根据所述作业依赖数据,获取每个作业的当前执行节点的依赖信息,包括:
15.针对当前执行节点,设置待发送节点列表和已发送节点列表,所述待发送节点列表用于存储所述当前执行节点的标识以及从直接依赖节点接收的标识信息,所述标识信息
包括与所述直接依赖节点具有间接或直接依赖关系的执行节点的标识;
16.在所述待发送节点列表为空时,根据每个当前执行节点的已发送节点列表,获取每个当前执行节点的依赖信息,所述已发送节点列表用于记录向预设节点发送的列表信息,所述列表信息包括所述待发送节点列表中的当前执行节点的标识以及从直接依赖节点接收的标识信息,所述预设节点为依赖所述当前执行节点的执行节点。
17.可选的,所述作业信息包括已完成作业的流水信息,所述根据每个作业的作业信息、所述目标作业和所述依赖作业,确定所述目标作业是否为异常作业,包括:
18.根据每个作业的已完成作业的流水信息,获取运行状态为错误的至少一个错误作业;
19.判断所述目标作业和/或所述依赖作业是否为所述至少一个错误作业中的作业;
20.若所述依赖作业和/或所述目标作业为错误作业,则确定所述目标作业为异常作业。
21.可选的,所述作业信息包括已完成作业的流水信息,所述根据每个作业的作业信息、所述目标作业和所述依赖作业,确定所述目标作业是否为异常作业,包括:
22.根据每个作业的已完成作业的流水信息,获取所述目标作业和所述依赖作业的当次作业时长;
23.若所述目标作业的当次作业时长超过预设时长,和/或所述依赖作业的当次作业时长超过预设时长,则确定所述目标作业为异常作业,所述预设时长是根据平均运行时长、标准差和纠偏时长确定的。
24.可选的,所述作业信息包括待完成作业的开始信息,所述根据每个作业的作业信息、所述目标作业和所述依赖作业,确定所述目标作业是否为异常作业,包括:
25.根据待完成作业的开始信息,获取待完成作业的作业开始时间;
26.根据所述待完成作业的作业开始时间和所述目标作业,获取所述目标作业的作业开始时间;
27.在所述目标作业的作业开始时间发生延迟时,根据所述待完成作业的作业开始时间和所述依赖作业,获取所述依赖作业的作业开始时间;
28.根据所述依赖作业的作业开始时间,确定所述目标作业是否为异常作业。
29.可选的,所述根据所述依赖作业的作业开始时间,确定所述目标作业是否为异常作业,包括:
30.根据所述依赖作业的作业开始时间,获取发生延迟的目标依赖作业;
31.根据所述目标依赖作业和依赖关系,获取每个所述目标依赖作业所对应的目标直接依赖作业;
32.若所述目标直接依赖作业与所述目标依赖作业为同一作业,则删除所述目标直接依赖作业对应的目标依赖作业;
33.获取剩余的目标依赖作业,确定所述目标作业为异常作业。
34.可选的,所述预警提醒用于指示所述目标作业和/或所述依赖作业为错误作业;
35.或者,所述预警提醒用于指示所述目标作业和/或所述依赖作业的当次作业时长超过预设时长;
36.或者,所述预警提醒用于指示所述依赖作业发生延迟。
37.第二方面,本技术提供一种异常作业预警装置,包括:
38.获取模块,用于获取作业运行数据和作业依赖数据,其中,所述作业运行数据包括多个作业的运行状态流水,所述作业依赖数据用于指示作业之间的依赖关系;
39.所述获取模块,还用于根据所述作业依赖数据和目标作业,获取所述目标作业所依赖的依赖作业,所述依赖作业包括直接依赖作业和间接依赖作业;
40.所述获取模块,还用于根据所述作业运行数据获取每个作业的作业信息,所述作业信息包括已完成作业的流水信息或待完成作业的开始信息;
41.检测模块,用于根据每个作业的作业信息、所述目标作业和所述依赖作业,确定所述目标作业是否为异常作业;
42.发送模块,用于在所述目标作业为异常作业时,发送预警提醒。
43.可选的,所述获取模块,具体用于根据所述作业依赖数据,获取每个作业的当前执行节点的依赖信息,其中,所述作业依赖数据包括具有直接依赖关系的作业,所述依赖信息包括当前执行节点的直接依赖节点和间接依赖节点;根据每个当前执行节点的依赖信息和执行所述目标作业的目标节点的标识,获取所述目标作业所依赖的依赖作业。
44.可选的,所述获取模块,具体用于针对当前执行节点,设置待发送节点列表和已发送节点列表,所述待发送节点列表用于存储所述当前执行节点的标识以及从直接依赖节点接收的标识信息,所述标识信息包括与所述直接依赖节点具有间接或直接依赖关系的执行节点的标识;
45.在所述待发送节点列表为空时,根据每个当前执行节点的已发送节点列表,获取每个当前执行节点的依赖信息,所述已发送节点列表用于记录向预设节点发送的列表信息,所述列表信息包括所述待发送节点列表中的当前执行节点的标识以及从直接依赖节点接收的标识信息,所述预设节点为依赖所述当前执行节点的执行节点。
46.可选的,当所述作业信息包括已完成作业的流水信息时,所述检测模块,具体用于根据每个作业的已完成作业的流水信息,获取运行状态为错误的至少一个错误作业;判断所述目标作业和/或所述依赖作业是否为所述至少一个错误作业中的作业;若所述依赖作业和/或所述目标作业为错误作业,则确定所述目标作业为异常作业。
47.可选的,当所述作业信息包括已完成作业的流水信息时,所述检测模块,具体用于根据每个作业的已完成作业的流水信息,获取所述目标作业和所述依赖作业的当次作业时长;若所述目标作业的当次作业时长超过预设时长,和/或所述依赖作业的当次作业时长超过预设时长,则确定所述目标作业为异常作业,所述预设时长是根据平均运行时长、标准差和纠偏时长确定的。
48.可选的,当所述作业信息包括待完成作业的开始信息时,所述检测模块,具体用于根据待完成作业的开始信息,获取待完成作业的作业开始时间;根据所述待完成作业的作业开始时间和所述目标作业,获取所述目标作业的作业开始时间;在所述目标作业的作业开始时间发生延迟时,根据所述待完成作业的作业开始时间和所述依赖作业,获取所述依赖作业的作业开始时间;根据所述依赖作业的作业开始时间,确定所述目标作业是否为异常作业。
49.可选的,所述检测模块具体用于根据所述依赖作业的作业开始时间,获取发生延迟的目标依赖作业;根据所述目标依赖作业和依赖关系,获取每个所述目标依赖作业所对
应的目标直接依赖作业;若所述目标直接依赖作业与所述目标依赖作业为同一作业,则删除所述目标直接依赖作业对应的目标依赖作业;获取剩余的目标依赖作业,确定所述目标作业为异常作业。
50.可选的,所述预警提醒用于指示所述目标作业和/或所述依赖作业为错误作业;或者,所述预警提醒用于指示所述目标作业和/或所述依赖作业的当次作业时长超过预设时长;或者,所述预警提醒用于指示所述依赖作业发生延迟。
51.第三方面,本技术提供一种异常作业预警设备,包括:
52.存储器;
53.处理器;
54.其中,所述存储器存储计算机执行指令;
55.所述处理器执行所述存储器存储的计算机执行指令,以实现如上述第一方面及第一方面各种可能的实现方式所述的异常作业预警方法。
56.第四方面,本技术提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行以实现如上述第一方面及第一方面各种可能的实现方式所述的异常作业预警方法。
57.第五方面,本技术提供一种程序产品,包括:计算机程序,所述计算机程序被处理器执行时实现如上述第一方面及第一方面各种可能的实现方式所述的异常作业预警方法。
58.本技术提供的异常作业预警方法,通过获取作业运行数据和作业依赖数据;根据所述作业依赖数据和目标作业,获取所述目标作业所依赖的直接依赖作业和间接依赖作业;根据所述作业运行数据获取每个作业的作业信息;根据每个作业的作业信息、所述目标作业和所述依赖作业,确定所述目标作业是否为异常作业,并在所述目标作业为异常作业时,发送预警提醒;由于通过目标作业和该目标作业的依赖作业来确定目标作业是否为异常作业,因此可以及时发现目标作业异常,同时节省了运维人员人工查询异常原因的时间,提高了发现异常作业的效率。
附图说明
59.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本技术的实施例,并与说明书一起用于解释本技术的原理。
60.图1为本技术提供的异常作业预警方法的流程图一;
61.图2为本技术提供的异常作业预警方法的流程图二;
62.图3为本技术提供的异常作业预警方法的流程图三;
63.图4为本技术提供的异常作业预警方法的流程图四;
64.图5为本技术提供的异常作业预警方法的流程图五;
65.图6为本技术提供的确定目标依赖作业的示意图;
66.图7为本技术提供的异常作业预警装置的结构示意图;
67.图8为本技术提供的异常作业预警设备的结构示意图。
68.通过上述附图,已示出本技术明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本技术构思的范围,而是通过参考特定实施例为本领域技术人员说明本技术的概念。
具体实施方式
69.为使本技术的目的、技术方案和优点更加清楚,下面将结合本技术中的附图,对本技术中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
70.首先,针对本技术涉及的名词进行解释说明:
71.作业:指通过程序或者脚本来对数据进行数据抽取、转换和加载(extraction transformation loading,etl)的过程。
72.作业流:一组作业构成的一个整体,作业之间可以相互依赖,依赖构成的图为有向图不存在环,这一组作业都完成后,进入下一批次的运行。
73.作业依赖:当一个作业依赖另一个作业时,其只能等待另一个作业完成才能开始运行。在本技术中,为了便于说明,将该一个作业称为目标作业,将另一个作业称为依赖作业,即目标作业等待依赖作业完成后,才能开始运行。依赖作业可以分为直接依赖作业和间接依赖作业。
74.异常作业:未在规定时刻完成的作业,都称为异常作业。
75.在大规模使用批量作业分析数据的系统中,同一批次的作业按照预定的依赖关系运行处理,在一组作业构成的作业流都运行完成后,下一批次的作业才会运行。
76.可以理解的,作业流是有向的,先运行的作业为上游作业,后运行的作业为下游作业。对于存在依赖关系的作业,由于作业之间存在依赖关系,因此当上游的依赖作业出现异常,也会影响到下游的作业的正常运行(可能会导致下游作业也存在异常)。
77.现有技术在目标作业出现异常时,运维人员往往关注的是目标作业本身是否出现问题,很少关注上游的依赖作业是否异常,或者是通过人工的方式去查询原因,然而,现有技术的上述方法存在不能及时发现异常作业、且发现异常作业的效率不高、费时费力的缺陷。
78.针对现有技术中存在的问题,本技术提供了一种异常作业预警方法,根据作业依赖数据和目标作业,获取目标作业的直接依赖作业和间接依赖作业;通过目标作业和该目标作业的依赖作业的运行状态流水,来确定目标作业本身是否为异常作业,或者是否因为依赖作业异常而导致目标作业异常,从而可以及时发现目标作业异常,同时节省了运维人员人工查询异常原因的时间,提高了发现异常作业的效率。
79.下面以具体地实施例对本技术的技术方案以及本技术的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本技术的实施例进行描述。
80.图1为本技术实施例提供的异常作业预警方法的流程图一。如图1所示,本实施例示出的异常作业预警方法包括:
81.s101:获取作业运行数据和作业依赖数据,其中,所述作业运行数据包括多个作业的运行状态流水,所述作业依赖数据用于指示作业之间的依赖关系。
82.其中,作业运行数据是指作业运行的流水,例如作业运行的开始时间、运行时长、是否完成运行等。作业运行数据例如可以包括作业的历史运行数据和当次运行数据,本技术对此不做限制。
83.作业依赖数据用于指示作业之间的直接依赖关系,例如:作业a为作业b的直接依赖作业等。
84.作业运行数据和作业依赖数据例如可以是用户预先设置的,也可以是根据历史数据获取的。
85.s102:根据所述作业依赖数据和目标作业,获取所述目标作业所依赖的依赖作业,所述依赖作业包括直接依赖作业和间接依赖作业。
86.其中,目标作业所依赖的依赖作业是指:只有当该依赖作业运行完成后,目标作业才可以运行的作业。依赖作业包括直接依赖作业和间接依赖作业。
87.例如:作业a-c的运行顺序为:a
→b→
c;即当作业a运行完成后,作业b才能运行,当作业b运行完成后,作业c才能运行。则作业a是作业b的直接依赖作业,作业b是作业c的直接依赖作业,作业a是作业c的间接依赖作业。
88.这一步的目的是为了找到目标作业的所有依赖作业,也即目标作业的直接依赖作业和间接依赖作业,以便后续基于目标作业的依赖作业来确定目标作业是否异常。
89.例如可以采用列表的方式来获取目标作业的直接依赖作业和间接依赖作业,或者采用溯源的方式来获取目标作业的直接依赖作业和间接依赖作业。本技术对此不做特殊限制。
90.可选的,目标作业可以有一个,也可以有多个。同理,目标作业的依赖作业可以有多个,也可以有一个。
91.s103:根据所述作业运行数据获取每个作业的作业信息,所述作业信息包括已完成作业的流水信息或待完成作业的开始信息。
92.其中,每个作业的作业信息可以包括已完成作业的流水信息或待完成作业的开始信息,已完成作业的流水信息例如可以包括已完成作业的开始信息和运行信息等。
93.s104:根据每个作业的作业信息、所述目标作业和所述依赖作业,确定所述目标作业是否为异常作业,并在所述目标作业为异常作业时,发送预警提醒。
94.其中,可以根据每个作业的作业信息、目标作业和该目标作业的依赖作业,确定依赖作业或者该目标是否为异常作业。
95.例如可以根据依赖作业的已完成作业的流水信息确定该依赖作业异常时,从而确定目标作业为异常作业。
96.或者在目标作业待完成时,根据目标作业的开始信息,确定该目标作业无法及时开始时,确定该目标作业为异常作业。本技术对根据每个作业的作业信息、目标作业和依赖作业,确定目标作业是否为异常作业的具体实现方式不做特殊限制。
97.可以理解的,现实场景中存在目标作业还未运行,但是目标作业的依赖作业已经运行的场景,在该场景中,若依赖作业异常,则该目标作业也大概率是异常作业。因此,该步骤基于目标作业和该目标作业的依赖作业来确定目标作业是否异常,可以及时发现目标作业异常,节省了运维人员人工查询异常原因的时间,提高了发现异常作业的效率。同时在确定目标作业异常后,发送预警提醒,确保运维人员及时对存在异常的作业进行处理,从而保证目标作业的正常运行。
98.本实施例提供的异常作业预警方法,通过获取作业运行数据和作业依赖数据;根据所述作业依赖数据和目标作业,获取所述目标作业所依赖的直接依赖作业和间接依赖作
业;根据所述作业运行数据获取每个作业的作业信息;根据每个作业的作业信息、所述目标作业和所述依赖作业,确定所述目标作业是否为异常作业,并在所述目标作业为异常作业时,发送预警提醒;由于通过目标作业和该目标作业的依赖作业来确定目标作业是否为异常作业,因此可以及时发现目标作业异常,同时节省了运维人员人工查询异常原因的时间,提高了发现异常作业的效率。
99.图2为本技术实施例提供的异常作业预警方法的流程图二。如图2所示,本实施例在上述图1实施例的基础上,对根据作业依赖数据和目标作业,获取目标作业所依赖的依赖作业进行详细说明,本实施例示出的异常作业预警方法包括:
100.s201:根据作业依赖数据,获取每个作业的当前执行节点的依赖信息,其中,所述作业依赖数据包括具有直接依赖关系的作业,所述依赖信息包括当前执行节点的直接依赖节点和间接依赖节点。
101.其中,每个作业的当前执行节点是指与每个作业对应的能够执行该作业的节点。例如:作业a对应节点a,则节点a为作业a的当前执行节点。每个作业的当前执行节点的依赖信息是指:该作业对应的当前执行节点的直接依赖节点和间接依赖节点。
102.作业依赖数据中存储有作业之间的直接依赖关系,根据该直接依赖关系,可以获取到每个作业对应的节点的直接依赖节点和间接依赖节点。例如可以根据溯源的方式或者列表的方式来获取。本技术对获取每个作业对应的节点的直接依赖节点和间接依赖节点的具体实现方式不做特殊限制。
103.示例性的,此处给出一种可能的实现方式。针对当前执行节点,设置待发送节点列表和已发送节点列表,所述待发送节点列表用于存储所述当前执行节点的标识以及从直接依赖节点接收的标识信息,所述标识信息包括与所述直接依赖节点具有间接或直接依赖关系的执行节点的标识;在所述待发送节点列表为空时,根据每个当前执行节点的已发送节点列表,获取每个当前执行节点的依赖信息,所述已发送节点列表用于记录向预设节点发送的列表信息,所述列表信息包括所述待发送节点列表中的当前执行节点的标识以及从直接依赖节点接收的标识信息,所述预设节点为依赖所述当前执行节点的执行节点。
104.其中,每个节点都被配置有待发送节点列表和已发送节点列表,待发送节点列表用于存储当前执行节点的标识以及从直接依赖节点接收的标识信息,标识信息包括与直接依赖节点具有间接或直接依赖关系的执行节点的标识。
105.例如:作业a-e的运行顺序为:a
→b→c→d→
e。作业a-e分别对应节点a-e。每个节点向直接依赖其的节点发送节点标识。即节点b直接依赖节点a,则节点a向节点b发送节点标识,以此类推。
106.节点a没有直接依赖节点,因此节点a的待发送节点列表中只存储有节点a的标识,节点a根据直接依赖关系,向节点b发送待发送节点列表中节点a的标识。
107.节点b的待发送节点列表中存储有节点b的标识和节点a发送的标识信息,也即节点a的标识,节点b根据直接依赖关系,向节点c发送待发送节点列表中节点a和b的标识;
108.节点c的待发送节点列表中存储有节点c的标识和从节点b接收的节点b的标识和节点a的标识,节点c根据直接依赖关系,向节点d发送待发送节点列表中存储的节点a、节点b以及节点c的标识。
109.节点d的待发送节点列表中存储有节点d的标识和从节点c接收的节点c的标识、节
点b的标识和节点a的标识,节点d根据直接依赖关系,向节点e发送待发送节点列表中存储的节点a、节点b、节点c以及节点d的标识。
110.节点e的待发送节点列表中存储有节点e的标识和从节点d接收的节点a、节点b、节点c以及节点d的标识。
111.已发送节点列表用于记录向预设节点发送的列表信息;列表信息包括待发送节点列表中的当前执行节点的标识以及从直接依赖节点接收的标识信息,预设节点为依赖当前执行节点的执行节点。
112.预设节点是指:依赖当前执行节点的执行节点。继续以上述节点a-e为例:节点b是节点a的预设节点,节点c是节点b的预设节点,节点d是节点c的预设节点,节点e是节点d的预设节点。
113.在该步骤中,执行节点会向预设节点发送标识信息,也即向依赖自身的执行节点发送自身的标识和与自身具有间接或直接依赖关系的执行节点的标识。例如:节点d向节点e发送节点a-d的标识。在执行节点发送了标识信息之后,存储在待发送节点列表中的当前执行节点的标识以及从直接依赖节点接收的标识信息会被删除,同时已发送节点列表中会记录向预设节点发送的自身的标识和与自身具有间接或直接依赖关系的执行节点的标识。
114.例如,节点a的已发送节点列表中存储有节点a的标识,节点b的已发送节点列表中存储有节点a和节点b的标识,节点c的已发送节点列表中存储有节点a、节点b、节点c的标识,节点d的已发送节点列表中存储有节点a、节点b、节点c、节点d的标识。
115.当待发送节点列表为空,则表明当前执行节点已经向预设节点发送了当前执行节点的标识和与当前执行节点具有间接或直接依赖关系的执行节点的标识,且已发送节点列表中也记录有该当前执行节点的标识和与当前执行节点具有间接或直接依赖关系的执行节点的标识。此时就可以根据每个当前执行节点的已发送节点列表,获取每个当前执行节点的依赖信息。可以理解的,此时获取的当前执行节点的依赖信息包括当前执行节点的直接依赖节点的标识和间接依赖节点的标识。
116.由上可知,节点b的依赖节点为节点a,节点c的依赖节点为节点a和节点b,节点d的依赖节点为节点a、节点b和节点c。
117.对于节点e而言,没有依赖其的节点,所以节点e的已发送节点列表为空,此时根据待发送节点列表,确定节点e的依赖节点为节点a、节点b和节点c、节点d。
118.s202:根据每个当前执行节点的依赖信息和执行所述目标作业的目标节点的标识,获取所述目标作业所依赖的依赖作业。
119.其中,在获取到每个当前执行节点的依赖信息之后,由于作业与执行节点对应,因此可以根据每个当前执行节点的依赖信息和执行目标作业的目标节点的标识,确定出每个作业的依赖作业,然后再找到目标作业的依赖作业即可。
120.本领域技术人员可以理解,对于作业d而言,由于传递的内容仅为节点的标识,并没有传递节点之间的关系,所以此处所确定的依赖作业具体为作业a、作业b以及作业c,并没有确定具体的依赖链,即节点之间的具体依赖关系,从而简化了运算。
121.本实施例提供的异常作业预警方法,能够根据每个当前执行节点的依赖信息和执行所述目标作业的目标节点的标识,获取到目标作业的直接依赖作业和间接依赖作业,从而提高了基于依赖作业确定目标作业是否异常的准确率;同时节省了运维人员确定目标作
业的间接依赖作业的时间成本。
122.图3为本技术实施例提供的异常作业预警方法的流程图三。在本实施例中,作业信息包括已完成作业的流水信息。本实施例检测的是错误的作业。如图3所示,本实施例在上述图1实施例的基础上,对根据每个作业的作业信息、目标作业和依赖作业,确定目标作业是否为异常作业进行详细说明,本实施例示出的异常作业预警方法包括:
123.s301:根据每个作业的已完成作业的流水信息,获取运行状态为错误的至少一个错误作业。
124.其中,错误作业是指运行出错的作业。作业的已完成作业的流水信息可以指示作业的运行状态,例如指示当前作业运行错误,或者当前作业运行正常。
125.根据每个作业的已完成作业的流水信息,可以确定出每个作业中运行错误的至少一个错误作业。
126.s302:判断所述目标作业和/或所述依赖作业是否为所述至少一个错误作业中的作业;若否,则执行步骤s303,若是,则执行步骤s304。
127.其中,可以将目标作业和/或依赖作业与至少一个错误作业进行比较,若目标作业和/或依赖作业与至少一个错误作业存在交集,也即目标作业和/或依赖作业存在错误作业,则确定目标作业是异常作业。
128.可以理解的,由于目标作业需要依仗依赖作业的运行才能运行,因此当依赖作业为错误作业,可以确定目标作业为异常作业。
129.s303:确定所述目标作业不是异常作业。
130.s304:确定所述目标作业为异常作业。
131.本实施例针对的是已完成的作业,通过根据每个作业的已完成作业的流水信息,获取到所有错误作业,判断目标作业以及该目标作业的依赖作业是否为至少一个错误作业中的作业,若是,则确定目标作业为异常作业;从而可以准确的找到错误作业,并在依赖作业为错误作业时,提前预警到目标作业为异常作业,从而及时发现目标作业异常,同时节省了运维人员人工查询异常原因的时间,提高了发现异常作业的效率。
132.图4为本技术实施例提供的异常作业预警方法的流程图四。在本实施例中,作业信息包括已完成作业的流水信息。本实施例检测的是已完成作业中作业时长过长的作业。如图4所示,本实施例在上述图1实施例的基础上,对根据每个作业的作业信息、目标作业和依赖作业,确定目标作业是否为异常作业进行详细说明,本实施例示出的异常作业预警方法包括:
133.s401:根据每个作业的已完成作业的流水信息,获取所述目标作业和所述依赖作业的当次作业时长。
134.其中,当次作业时长是指:作业开始时刻至作业运行完成时刻的时长。
135.作业的已完成作业的流水信息例如可以包括作业的作业时长,或者包括作业开始时刻和作业运行完成时刻,本技术对此不做限制。
136.这一步骤中,可以先获取到每个作业的当次作业时长,然后从中获取目标作业和依赖作业的当次作业时长;也可以先获取目标作业和依赖作业的已完成作业的流水信息,然后根据该已完成作业的流水信息,确定目标作业和依赖作业的当次作业时长,本技术对此不做限制。
137.s402:判断所述目标作业的当次作业时长和/或所述依赖作业的当次作业时长是否超过预设时长;若否,则执行步骤s403,若是,则执行步骤s404。
138.其中,所述预设时长是根据平均运行时长、标准差和纠偏时长确定的。其可以是平均运行时长、标准差和纠偏时长的和,也可以是根据预设规则计算得到的,平均运行时长和对应的标准差例如可以根据作业历史运行数据获得,纠偏时长是运维人员预先设置的,例如可以是60分钟。
139.这一步判断目标作业的当次作业时长和/或依赖作业的当次作业时长是否超过预设时长是为了确定目标作业和/或依赖作业的当次作业时长是否过长,若目标作业的当次作业时长和/或依赖作业的当次作业时长超过预设时长,表明目标作业和/或依赖作业的当次作业时长过长,也即出现了延迟现象,此时可以确定目标作业为异常作业。
140.可以理解的,这里判断的顺序是从依赖链上端的依赖作业至依赖链下端的目标作业;也即:先判断依赖链上端的依赖作业的当次作业时长是否过长,若依赖链上端的依赖作业的当次作业时长过长,那也就无需判断下端的依赖作业和/或目标作业。因为下端的作业需要等待上端作业运行完成才能运行,在上端作业的当次作业时长过长时,下端作业的当次作业时长大概率也会过长。
141.例如:已完成作业a-c的运行顺序为:a
→b→
c。先检测作业a的当次作业时长是否过长,若是,则表明作业a的运行出现了延迟现象,那么等待作业a运行完成后才能运行的作业b和c,大概率也会出现延迟现象。因此即使不去判断下端的作业b和作业c的当次作业时长是否过长,也可以确定出作业b和作业c是异常作业。若作业a的当次作业时长正常,则就需要去判断作业a下端的作业b的当次作业时长是否过长,以此类推,直至找到当次作业时长过长的依赖作业或者目标作业和依赖作业的当次作业时长都正常。
142.s403:确定所述目标作业不是异常作业。
143.s404:确定所述目标作业为异常作业。
144.本实施例检测的是已完成作业中作业时长过长的作业,通过根据每个作业的已完成作业的流水信息,获取目标作业和依赖作业的当次作业时长,在目标作业的当次作业时长和/或依赖作业的当次作业时长超过预设时长时,确定目标作业为异常作业;从而可以准确的找到作业时长过长的作业,并在依赖作业的当次作业时长过长时,提前预警到目标作业为异常作业,从而及时发现目标作业异常,同时节省了运维人员人工查询异常原因的时间,提高了发现异常作业的效率。
145.图5为本技术实施例提供的异常作业预警方法的流程图五。在本实施例中,作业信息包括待完成作业的开始信息。本实施例检测的是待完成作业中作业开始时间发生延迟的作业。如图5所示,本实施例在上述图1实施例的基础上,对根据每个作业的作业信息、目标作业和依赖作业,确定目标作业是否为异常作业进行详细说明,本实施例示出的异常作业预警方法包括:
146.s501:根据待完成作业的开始信息,获取待完成作业的作业开始时间。
147.其中,待完成作业的开始信息中包括有待完成作业的作业开始时间。作业的作业开始时间例如可以是根据作业历史运行数据确定的。例如可以将预设时间内的该作业的平均开始时间作为该作业的作业开始时间。可以根据所有待完成作业的开始信息,获取所有待完成作业的作业开始时间。
148.s502:根据所述待完成作业的作业开始时间和所述目标作业,获取所述目标作业的作业开始时间。
149.其中,本实施例针对的是待完成的作业;也即在本实施例中,目标作业和依赖作业均为待完成的作业。
150.在获取到所有待完成作业的作业开始时间后,从中确定出目标作业的作业开始时间。
151.s503:在所述目标作业的作业开始时间发生延迟时,根据所述待完成作业的作业开始时间和所述依赖作业,获取所述依赖作业的作业开始时间。
152.其中,此处需要判断目标作业的作业开始时间是否发生延迟,若目标作业没有发生延迟,则该目标作业的依赖作业也大概率没有发生延迟,也即目标作业和依赖作业都没有出现延迟现象,因此不需要进行后续操作。
153.若目标作业的作业开始时间发生了延迟,则存在两种情况:1、目标作业自身的原因导致;2、目标作业的依赖作业发生了延迟导致该目标作业也发生了延迟。
154.因此,当目标作业的作业开始时间发生了延迟,就需要获取依赖作业的作业开始时间,以便确定是上述两种情况中的哪一种。
155.在获取到作业开始时间后,根据所述依赖作业的作业开始时间,确定所述目标作业是否为异常作业。
156.s504、根据所述依赖作业的作业开始时间,获取发生延迟的目标依赖作业;
157.其中,上述步骤中已经确定了目标作业延迟,也即目标作业为异常作业。因此,该步骤的目的是为了确定出目标作业延迟的原因,也即是哪些依赖作业导致目标作业延迟,以便于后续的发送预警提醒。
158.在该步骤中,例如可以判断当前时刻是否超过依赖作业的作业开始时间、标准差和纠偏时长三者之和,若超过,则表明该依赖作业发生延迟。
159.目标依赖作业是指:发生了延迟的依赖作业。
160.s505、根据所述目标依赖作业和依赖关系,获取每个所述目标依赖作业所对应的目标直接依赖作业。
161.其中,目标直接依赖作业是指:发生了延迟的依赖作业的直接依赖作业。
162.根据目标依赖作业和用于指示直接依赖作业的依赖关系,可以获取直接依赖作业。
163.可以理解的,当获取到目标依赖作业,则表明目标作业延迟是因为情况2。这里获取到的目标依赖作业可以有多个。在获取到目标依赖作业之后,需要去获取每个目标依赖作业的直接依赖作业。这是因为:当目标依赖作业发生了延迟,分为两种情况:1、目标依赖作业自身的原因导致延迟;2、目标依赖作业上端的目标直接依赖作业发生延迟导致该目标依赖作业也发生了延迟。
164.若是情况1,则证明该目标依赖作业存在问题,是异常作业。
165.若是情况2,则证明该目标依赖作业自身不存在问题,是其对应的目标直接依赖作业存在。
166.s506、若所述目标直接依赖作业与所述目标依赖作业为同一作业,则删除所述目标直接依赖作业对应的目标依赖作业;
167.s507、获取剩余的目标依赖作业,确定所述目标作业为异常作业。
168.本领域技术人员可以理解,对于每个依赖作业,其同时也可能是目标直接依赖作业,例如在依赖链a
→b→c→d→
e中,b为目标依赖作业,同时b也是目标依赖作业c的目标直接依赖作业。
169.若目标直接依赖作业发生延迟,由于该目标直接依赖作业与对应的目标依赖作业存在依赖关系,则目标依赖作业必然也发生了延迟,然而,延迟并不是该目标依赖作业引起,而是由目标直接依赖作业引起。此时,就可以删除该目标直接依赖作业对应的目标依赖作业。此时可以证明发生延迟是因为目标直接依赖作业导致,而非该目标直接依赖作业对应的目标依赖作业导致。
170.可以理解的,这里获取剩余的目标依赖作业的目的是为了确定出存在异常的目标依赖作业,以便后续发送预警提醒。
171.图6为本实施例示出的确定目标依赖作业的示意图。如图6所示,作业a-f的运行顺序为:a
→b→c→d→e→
f,对于作业f而言,待完成的依赖作业包括:a、b、c、d、e;获取到的发生延迟的目标依赖作业有:c、d、e。根据该目标依赖作业和依赖关系,获取到的目标直接依赖作业有:b、c、d。
172.此时,目标直接依赖作业c与目标依赖作业c为同一作业,因此需要删除目标直接依赖作业c对应的目标依赖作业d;目标直接依赖作业d与目标依赖作业d为同一作业,因此需要删除目标直接依赖作业d对应的目标依赖作业e。因此,目标依赖作业中只剩下了目标依赖作业c,也即目标作业发生延迟是因为目标依赖作业c造成的。
173.本领域技术人员可以理解,在本实施例中仅知道具有直接依赖关系的两个作业,以及作业f的所有依赖作业,实际并不知道a
→b→c→d→e→
f这样的依赖链,所以需要结合依赖关系,通过上述删除节点的方式,来确定造成延迟的目标依赖作业。而上述删除节点的方式,相比于获取完整依赖链的方式而言,计算过程简单快捷。
174.本实施例检测的是待完成作业中作业开始时间发生延迟的作业,通过在目标作业的作业开始时间发生延迟时,根据待完成作业的作业开始时间和依赖作业,获取依赖作业的作业开始时间,然后根据依赖作业的作业开始时间,确定该目标作业是否为异常作业;从而可以准确的找到待完成作业中作业开始时间发生延迟的依赖作业,并在该依赖作业的作业开始时间发生延迟时,提前预警到目标作业的作业开始时间也可能发生延迟,从而提前发现目标作业异常,同时节省了运维人员人工查询异常原因的时间,提高了发现异常作业的效率。
175.可以理解的,在上述图1-5的实施例的基础上,可以根据不同的检测情况,发送不同的预警提醒。
176.例如:图3实施例中,在确定目标作业和/或依赖作业存在错误作业的情况下,该预警提醒用于指示目标作业和/或依赖作业中的错误作业。
177.再例如:图4实施例中,在确定目标作业的当次作业时长和/或依赖作业的当次作业时长超过预设时长的情况下,该预警提醒用于指示目标作业和/或依赖作业中当次作业时长超过预设时长的作业。
178.再例如:图5实施例中,获取到剩余的目标依赖作业的情况下,该预警提醒用于指示剩余的目标依赖作业发生延迟。
179.图7为本技术提供的异常作业预警装置的结构示意图。如图5所示,本技术提供一种异常作业预警装置,该异常作业预警装置300包括:
180.获取模块301,用于获取作业运行数据和作业依赖数据,其中,所述作业运行数据包括多个作业的运行状态流水,所述作业依赖数据用于指示作业之间的依赖关系;
181.所述获取模块301,还用于根据所述作业依赖数据和目标作业,获取所述目标作业所依赖的依赖作业,所述依赖作业包括直接依赖作业和间接依赖作业;
182.所述获取模块301,还用于根据所述作业运行数据获取每个作业的作业信息,所述作业信息包括已完成作业的流水信息或待完成作业的开始信息;
183.检测模块302,用于根据每个作业的作业信息、所述目标作业和所述依赖作业,确定所述目标作业是否为异常作业;
184.发送模块303,用于在所述目标作业为异常作业时,发送预警提醒。
185.可选的,所述获取模块301,具体用于根据所述作业依赖数据,获取每个作业的当前执行节点的依赖信息,其中,所述作业依赖数据包括具有直接依赖关系的作业,所述依赖信息包括当前执行节点的直接依赖节点和间接依赖节点;根据每个当前执行节点的依赖信息和执行所述目标作业的目标节点的标识,获取所述目标作业所依赖的依赖作业。
186.可选的,所述获取模块301,具体用于针对当前执行节点,设置待发送节点列表和已发送节点列表,所述待发送节点列表用于存储所述当前执行节点的标识以及从直接依赖节点接收的标识信息,所述标识信息包括与所述直接依赖节点具有间接或直接依赖关系的执行节点的标识;
187.在所述待发送节点列表为空时,根据每个当前执行节点的已发送节点列表,获取每个当前执行节点的依赖信息,所述已发送节点列表用于记录向预设节点发送的列表信息,所述列表信息包括所述待发送节点列表中的当前执行节点的标识以及从直接依赖节点接收的标识信息,所述预设节点为依赖所述当前执行节点的执行节点。
188.可选的,当所述作业信息包括已完成作业的流水信息时,所述检测模块302,具体用于根据每个作业的已完成作业的流水信息,获取运行状态为错误的至少一个错误作业;判断所述目标作业和/或所述依赖作业是否为所述至少一个错误作业中的作业;若所述依赖作业和/或所述目标作业为错误作业,则确定所述目标作业为异常作业。
189.可选的,当所述作业信息包括已完成作业的流水信息时,所述检测模块302,具体用于根据每个作业的已完成作业的流水信息,获取所述目标作业和所述依赖作业的当次作业时长;若所述目标作业的当次作业时长超过预设时长,和/或所述依赖作业的当次作业时长超过预设时长,则确定所述目标作业为异常作业,所述预设时长是根据平均运行时长、标准差和纠偏时长确定的。
190.可选的,当所述作业信息包括待完成作业的开始信息时,所述检测模块302,具体用于根据待完成作业的开始信息,获取待完成作业的作业开始时间;根据所述待完成作业的作业开始时间和所述目标作业,获取所述目标作业的作业开始时间;在所述目标作业的作业开始时间发生延迟时,根据所述待完成作业的作业开始时间和所述依赖作业,获取所述依赖作业的作业开始时间;根据所述依赖作业的作业开始时间,确定所述目标作业是否为异常作业。
191.可选的,所述检测模块302具体用于根据所述依赖作业的作业开始时间,获取发生
延迟的目标依赖作业;根据所述目标依赖作业和依赖关系,获取每个所述目标依赖作业所对应的目标直接依赖作业;若所述目标直接依赖作业与所述目标依赖作业为同一作业,则删除所述目标直接依赖作业对应的目标依赖作业;获取剩余的目标依赖作业,确定所述目标作业为异常作业。
192.可选的,所述预警提醒用于指示所述目标作业和/或所述依赖作业为错误作业;或者,所述预警提醒用于指示所述目标作业和/或所述依赖作业的当次作业时长超过预设时长;或者,所述预警提醒用于指示所述依赖作业发生延迟。
193.图6为本技术提供的异常作业预警设备的结构示意图。如图6所示,本技术提供一种异常作业预警设备,该异常作业预警设备400包括:接收器401、发送器402、处理器403以及存储器404。
194.接收器401,用于接收指令和数据;
195.发送器402,用于发送指令和数据;
196.存储器404,用于存储计算机执行指令;
197.处理器403,用于执行存储器404存储的计算机执行指令,以实现上述实施例中异常作业预警方法所执行的各个步骤。具体可以参见前述异常作业预警方法实施例中的相关描述。
198.可选地,上述存储器404既可以是独立的,也可以跟处理器403集成在一起。
199.当存储器404独立设置时,该电子设备还包括总线,用于连接存储器404和处理器403。
200.本技术还提供一种计算机可读存储介质,计算机可读存储介质中存储有计算机执行指令,当处理器执行计算机执行指令时,实现如上述异常作业预警设备所执行的异常作业预警方法。
201.本技术还提供一种程序产品,该程序产品中包括有计算机程序,当处理器执行该计算机程序时,实现如上述异常作业预警设备所执行的异常作业预警方法。
202.本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统、装置中的功能模块/单元可以被实施为软件、固件、硬件及其适当的组合。在硬件实施方式中,在以上描述中提及的功能模块/单元之间的划分不一定对应于物理组件的划分;例如,一个物理组件可以具有多个功能,或者一个功能或步骤可以由若干物理组件合作执行。某些物理组件或所有物理组件可以被实施为由处理器,如中央处理器、数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读介质上,计算机可读介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于ram、rom、eeprom、闪存或其他存储器技术、cd-rom、数字多功能盘(dvd)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。
203.本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本技术的其它实施方案。本技术旨在涵盖本技术的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本技术的一般性原理并包括本技术未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本技术的真正范围和精神由下面的权利要求书指出。
204.应当理解的是,本技术并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本技术的范围仅由所附的权利要求书来限制。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1