一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

任务分层模型的建立方法及任务依赖关系的检测方法与流程

2022-11-30 08:10:28 来源:中国专利 TAG:


1.本技术涉及数据库技术领域,特别是涉及一种任务分层模型的建立方法、一种任务依赖关系的检测方法及一种计算机设备。


背景技术:

2.etl(extract-load-transform)系统主要用于数据的抽取、清洗和转换,把杂乱和孤立的数据转化成标准的二维表,为业务分析和公司决策提供数据分析依据。已知的大部分etl系统的内部都是混乱的、臃肿的。任务没有划分到最细的粒度,导致任务之间的融合度很高,使得依赖任务正常执行的风险增高,并且在任务出错时很难快速的定位到问题及其实际影响,增加了维护人员的工作量。


技术实现要素:

3.基于此,有必要针对现有技术中的上述问题提供一种任务分层模型的建立方法、一种任务依赖关系的检测方法及一种计算机设备。
4.为了实现上述目的,一方面,本发明提供了一种任务分层模型的建立方法,包括:
5.建立任务数据库,任务数据库的数据层包括数据抽取层、数据清洗层和数据支撑层;
6.获取分层任务及分层任务的任务信息,任务信息包括任务类型、运行周期、任务对应的数据层、执行类型;
7.根据任务信息对分层任务进行命名,生成分层任务的任务名称,所述任务名称为:任务类型_运行周期_任务对应的数据层_执行类型;
8.其中,任务对应的数据层选自所述任务数据库的数据层,执行类型是指分层任务在任务对应的数据层中对应的执行类型。
9.在其中一个实施例中,任务类型包括作业和转换;运行周期按照任务的运行频率进行命名,包括:小时任务、日任务、周任务、月任务、季度任务和年任务;
10.其中,运行周期命名的优先级为小时》日》周》月》季度》年。
11.在其中一个实施例中,数据抽取层包括数据库抽取、外部脚本读取,数据清洗层包括数据库内部脚本清洗、外部脚本清洗,数据支撑层包括数据库分发、外部脚本分发;
12.其中,数据库抽取的执行类型包括源数据库名称_源数据库表名,外部脚本读取的执行类型包括脚本名称_目标数据库表名;数据库内部脚本清洗的执行类型包括内部脚本名称,外部脚本清洗的执行类型包括外部脚本名称;数据库分发的执行类型包括目标数据库名称_源数据库表名,外部脚本分发的执行类型包括目标数据库名称_脚本名称。
13.本发明还提供了一种任务依赖关系的检测方法,包括:
14.步骤s10,获取目标任务及目标任务对应的目标存储信息;
15.步骤s20,若目标存储信息符合预设条件,则将目标任务作为目标检测任务;
16.步骤s30,获取目标检测任务的下级依赖任务及其存储信息,分别作为当前任务及
当前任务对应的当前存储信息;
17.步骤s40,若当前存储信息符合预设条件,则将当前任务作为当前检测任务,且对目标存储信息、当前存储信息进行第一更新;
18.步骤s50,若当前检测任务具有下级依赖任务,则将当前检测任务作为新的目标检测任务,第一更新后的当前存储信息作为新的目标存储信息,循环执行步骤s30-s50,直至新的当前检测任务不具有下级依赖任务,则对新的当前存储信息进行第二更新并结束循环;
19.步骤s60,将目标任务和当前任务作为分层任务,根据如上述任务分层模型的建立方法分别获取目标任务的目标任务名称,及当前任务的当前任务名称;
20.其中,目标任务、当前任务均为任务数据库中的任务。
21.在其中一个实施例中,存储信息包括是否已查找、依赖层次、依赖任务组,且是否已查找的初始值为否、依赖层次的初始值为1,依赖任务组的初始值为空;
22.若存储信息中的是否已查找为否,则符合所述预设条件;
23.第一更新包括将目标存储信息中是否已查找更新为是、依赖任务组更新为包括当前任务,将当前存储信息中依赖层次的值更新为目标存储信息中依赖层次的值与1的和、依赖任务组更新为包括目标检测任务;
24.第二更新包括将第一更新后的当前存储信息中是否已查找更新为是。
25.在其中一个实施例中,步骤s40之前还包括步骤s41,若当前存储信息不符合预设条件,则比较目标存储信息中依赖层次的值x0和当前存储信息中依赖层次的值x1;
26.若x1和x0的差值小于1,则对目标存储信息、当前存储信息进行第三更新,否则进行第四更新;
27.其中,第三更新包括将目标存储信息中是否已查找更新为是、依赖任务组更新为包括当前任务,将当前存储信息中依赖层次的值x1更新为x0与1的和、依赖任务组更新为包括目标检测任务,且将上级依赖与当前任务相关的关联任务的存储信息中依赖层次的值更新为原依赖层次的值与1的和;
28.第四更新包括将目标存储信息中是否已查找更新为是、依赖任务组更新为包括当前任务,将当前存储信息中依赖任务组更新为包括目标检测任务。
29.在其中一个实施例中,当前检测任务a包括任务a1、任务a2

任务an,与当前检测任务一一对应的当前存储信息b包括当前存储信息b1、当前存储信息b2

当前存储信息bn;其中,n为大于或等于2的整数;
30.步骤s50包括:
31.步骤s502,选取当前检测任务a中任一具有下级依赖任务的任务am作为新的目标检测任务am,目标检测任务am对应的第一更新后的当前存储信息bm作为新的目标存储信息bm0,循环执行步骤s30-s50,直至新的当前检测任务不具有下级依赖任务,则对新的当前存储信息进行第二更新并结束循环;其中,m为大于或等于1的整数;
32.步骤s504,再选取当前检测任务a中任一具有下级依赖任务的任务at作为新的目标检测任务at,目标检测任务at对应的第一更新后的当前存储信息bt作为新的目标存储信息bt0,循环执行步骤s30-s50,直至新的当前检测任务不具有下级依赖任务,则对新的当前存储信息进行第二更新并结束循环;其中,t为大于或等于1的整数;
33.步骤s506,依次执行步骤s502-s504,直至当前检测任务a中不存在符合预设条件的任务。
34.在其中一个实施例中,步骤s506之后还包括:
35.对当前检测任务a中剩余的不具有下级依赖任务的当前检测任务对应的当前存储信息进行第二更新。
36.在其中一个实施例中,所述任务am、任务at均包括一个下级依赖任务。
37.在其中一个实施例中,依赖任务组包括下级依赖任务组和上级依赖任务组。
38.在其中一个实施例中,第一更新将目标存储信息中下级依赖任务组更新为包括当前任务,将当前存储信息中上级依赖组更新为包括目标检测任务;第三更新将所述目标存储信息中的下级依赖任务组更新为包括当前任务,将当前存储信息中上级依赖任务组更新为包括目标检测任务;第四更新将目标存储信息中的下级依赖任务组更新为包括当前任务,将当前存储信息中上级依赖任务组更新为包括目标检测任务。
39.在其中一个实施例中,任务am包括多个存储信息符合预设条件的下级依赖任务作为当前检测任务m1,当前检测任务m1中的任一任务n1包括多个存储信息符合预设条件的下级依赖任务作为当前检测任务m2,

,当前检测任务mn-1中的任一任务nn-1包括多个存储信息符合预设条件的下级依赖任务作为当前检测任务mn,且当前检测任务mn中的任一任务nn均不具有下级依赖任务;
40.所述步骤s502中循环执行步骤s30-s50包括:
41.对当前检测任务mn中的任务nn进行第二更新;
42.对当前检测任务mn-1中的其余任务循环执行步骤s30-s50;
43.以此类推,直至对当前检测任务m1中其余任务循环执行步骤s30-s50。
44.在其中一个实施例中,步骤s60之后还包括:
45.步骤s70,输出所述目标任务、所述目标检测任务、所述当前检测任务及其之间的依赖关系。
46.本发明还提供一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现如上述任务分层模型的建立方法的步骤。
47.本发明还提供一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现如上述任务依赖关系的检测方法的步骤。
48.上述任务分层模型的建立方法,包括建立数据库模型,所述数据库模型的数据层包括数据抽取层、数据清洗层和数据支撑层;然后获取分层任务及其任务信息,所述任务信息包括任务类型、运行周期、任务对应的数据层、执行类型;并根据所述任务信息对分层任务进行命名,生成所述分层任务的任务名称,所述任务名称为:任务类型_运行周期_任务对应的数据层_执行类型;执行类型是指分层任务在任务对应的数据层中对应的执行类型。通过该方式使得数据库系统清晰的展示在运维和开发人员的面前,方便运维和开发人员追踪数据的流向,理清数据的关系,进而进行后续操作,提高了运维和开发效率。并且,用户根据任务名称即可获取异常作业的数据流向、对数据库中各分层任务造成的影响及各分层任务受影响的先后顺序和受影响的频率,从而降低维护人员的工作量,提高数据库系统的稳定性。
49.上述任务依赖关系的检测方法,获取目标任务后,将目标存储信息符合预设条件
的目标任务作为目标检测任务,然后获取与目标检测任务具有依赖关系的当前任务及其当前存储信息,在当前存储信息符合预设条件时,将当前任务作为当前检测任务,且对目标存储信息、当前存储信息进行第一更新;若当前检测任务具有下级依赖任务,则将当前检测任务作为新的目标检测任务,第一更新后的当前存储信息作为新的目标存储信息,循环执行步骤s30-s50,直至新的当前检测任务不具有下级依赖任务,则对新的当前存储信息进行第二更新并结束循环,并获取目标任务的目标任务名称,及当前任务的当前任务名称。通过该方法可以获取目标任务的依赖关系及对应的任务名称,从而在目标任务出现异常时可以获取受其影响的所有任务及各任务受影响的先后顺序、受影响的频率,从而降低维护人员的工作量,提高数据库系统的稳定性,提高了运维和开发效率。
附图说明
50.为了更清楚地说明本技术实施例或传统技术中的技术方案,下面将对实施例或传统技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
51.图1为一实施例中任务分层模型的建立方法的流程示意图;
52.图2为一实施例中任务依赖关系的检测方法的流程示意图;
53.图3为一实施例中步骤s50的流程示意图;
54.图4为一实施例中任务依赖关系的检测方法输出的目标任务g的下级依赖任务的任务依赖关系示意图。
具体实施方式
55.为了便于理解本技术,下面将参照相关附图对本技术进行更全面的描述。附图中给出了本技术的首选实施例。但是,本技术可以以许多不同的形式来实现,并不限于本文所描述的实施例。相反地,提供这些实施例的目的是使对本技术的公开内容更加透彻全面。
56.除非另有定义,本文所使用的所有的技术和科学术语与属于本技术的技术领域的技术人员通常理解的含义相同。本文中在本技术的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本技术。本文所使用的术语“及/或”包括一个或多个相关的所列项目的任意的和所有的组合。
57.在此使用时,单数形式的“一”、“一个”和“所述/该”也可以包括复数形式,除非上下文清楚指出另外的方式。还应明白,当术语“组成”和/或“包括”在该说明书中使用时,可以确定所述特征、整数、步骤、操作、元件和/或部件的存在,但不排除一个或更多其它的特征、整数、步骤、操作、元件、部件和/或组的存在或添加。同时,在此使用时,术语“和/或”包括相关所列项目的任何及所有组合。
58.在本技术的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。在本技术的描述中,“若干”的含义是至少一个,例如一个,两个等,除非另有明确具体的限定。需要说明的是,本技术中任务对应的存储信息仅为当前状态下最新的存储信息。
59.图1为一实施例中任务分层模型的建立方法的流程示意图。参见图1,在本实施例
中,提供一种任务分层模型的建立方法,包括:
60.s102,建立任务数据库。
61.具体地,根据需要建立任务数据库,所述任务数据库的数据层包括数据抽取层、数据清洗层和数据支撑层,其中,数据抽取层主要用于抽取源数据,该源数据可以来源于数据库、文件以及互联网,例如sql server(structured query language server,关系数据库管理系统)、mysql(mysql_num_rows,关系型数据库管理系统脚本)、oracle(oracle database,关系数据库管理系统)、hana数据库(high-performance analytic appliance)等;数据清洗层用于把杂乱和孤立的数据(数据抽取层抽取的源数据)通过数据库任务转化成标准的二维表;数据支撑层用于把数据清洗层和/或数据抽取层的数据通过数据库系统分发至各个数据集市或上层应用系统。
62.s104,获取分层任务及分层任务的任务信息。
63.具体地,将任务数据库中任一任务作为分层任务,并获取该分层任务的任务信息,所述任务信息包括任务类型、运行周期、任务对应的数据层、执行类型,其中,任务对应的数据层是指分层任务在任务数据库所处的数据层,执行类型是指分层任务在任务对应的数据层中对应的执行类型。
64.s106,根据任务信息对分层任务进行命名,生成分层任务的任务名称。
65.具体地,根据分层任务的任务信息对分层任务进行命名后,生成分层任务的任务名称,所述任务名称为:任务类型_运行周期_任务对应的数据层_执行类型。
66.上述任务分层模型的建立方法,包括建立数据库模型,所述数据库模型的数据层包括数据抽取层、数据清洗层和数据支撑层;然后获取分层任务及其任务信息,所述任务信息包括任务类型、运行周期、任务对应的数据层、执行类型;并根据所述任务信息对分层任务进行命名,生成所述分层任务的任务名称,所述任务名称为:任务类型_运行周期_任务对应的数据层_执行类型;执行类型是指分层任务在任务对应的数据层中对应的执行类型。通过该方式使得数据库系统清晰的展示在运维和开发人员的面前,方便运维和开发人员追踪数据的流向,理清数据的关系,进而进行后续操作,提高了运维和开发效率。并且,用户根据任务名称即可获取异常作业的数据流向、对数据库中各分层任务造成的影响及各分层任务受影响的先后顺序和受影响的频率,从而降低维护人员的工作量,提高数据库系统的稳定性。
67.在其中一个实施例中,任务类型包括作业和转换,可以理解的是,转换为最基本的操作,属于最细粒度的模块,例如从系统1中抽取表2,转换只实现单一功能,作业是转换的扩展,执行的最小单元,例如如果要执行从系统1中抽取表2,只需要执行作业就行了,作业包含一个或多个转换。对任务数据库中的各任务进行命名后,通过当前任务的任务名称即可获知该任务是作业还是转换,而不需要进行文档的查阅。任务数据库中各任务的运行周期是按照任务的运行频率进行命名的,包括:小时任务、日任务、周任务、月任务、季度任务和年任务,进一步地,每天运行超过一次的任务为小时任务,每天运行一次的任务为日任务,每周运行一次或多次的任务为周任务,每月运行一次或多次的任务为月任务,每季度运行一次或多次的任务为季度任务,每年运行一次或多次的任务为年任务,其中,运行周期命名的优先级为小时》日》周》月》季度》年。对任务数据库中的各任务进行命名后,在出现异常时,技术人员可根据异常发生的频率及各任务的任务名称快速找到出现异常的任务,减小
了维护人员的工作量,提高了任务数据库的稳定性。
68.在其中一个实施例中,数据抽取层包括数据库抽取、外部脚本读取,数据清洗层包括数据库内部脚本清洗、外部脚本清洗,数据支撑层包括数据库分发、外部脚本分发;
69.其中,数据库抽取的执行类型包括源数据库名称_源数据库表名,外部脚本读取的执行类型包括脚本名称_目标数据库表名;数据库内部脚本清洗的执行类型包括内部脚本名称,外部脚本清洗的执行类型包括外部脚本名称;数据库分发的执行类型包括目标数据库名称_源数据库表名,外部脚本分发的执行类型包括目标数据库名称_脚本名称。通过在任务名称中设置执行类型,使得维护人员在发现异常任务后,根据异常任务对应的任务名称很容易得到异常任务是数据库脚本还是外部脚本,如果是数据库脚本则去数据库中查找,如果是外部脚本需要去指定的服务器查找,从而达到缩短维护周期,提高维护速度的目的。
70.图2为一实施例中任务依赖关系的检测方法的流程示意图,参见图2,在本实施例中,任务依赖关系的检测方法,包括:
71.步骤s10,获取目标任务及目标任务对应的目标存储信息。
72.将任务数据库中需要进行依赖关系检测的任务作为目标任务,并获取目标任务的存储信息即初始存储信息作为目标存储信息。
73.步骤s20,若目标存储信息符合预设条件,则将目标任务作为目标检测任务。
74.步骤s30,获取目标检测任务的下级依赖任务及其存储信息,分别作为当前任务及当前任务对应的当前存储信息。
75.具体地,判断目标检测任务的输出数据是否和任务数据库中其他任务的输入数据直接关联,若目标检测任务的输出数据和任务数据库中第一任务的输入数据直接关联,则判定第一任务为目标检测任务的下级依赖任务,将第一任务作为当前任务,并将第一任务的存储信息即第一任务的初始存储信息作为当前存储信息,即当前任务为任务数据库中的任务。
76.步骤s40,若当前存储信息符合预设条件,则将当前任务作为当前检测任务,且对目标存储信息、当前存储信息进行第一更新。
77.具体地,判断当前存储信息(第一任务的初始存储信息)是否符合预设条件,若符合,对该当前存储信息(第一任务的初始存储信息)进行第一更新得到更新后的当前存储信息(第一任务的第一存储信息)、对目标存储信息(目标任务的初始存储信息),进行第一更新后得到更新后的目标存储信息(目标任务的第一存储信息),并将当前任务作为当前检测任务。
78.步骤s50,若当前检测任务具有下级依赖任务,则将当前检测任务作为新的目标检测任务,第一更新后的当前存储信息作为新的目标存储信息,循环执行步骤s30-s50,直至新的当前检测任务不具有下级依赖任务,则对新的当前存储信息进行第二更新并结束循环。
79.步骤s60,将目标任务和当前任务作为分层任务,根据如上述任务分层模型的建立方法分别获取目标任务的目标任务名称,及当前任务的当前任务名称。
80.上述任务依赖关系的检测方法,获取目标任务后,将目标存储信息符合预设条件的目标任务作为目标检测任务,然后获取与目标检测任务具有依赖关系的当前任务及其当
前存储信息,在当前存储信息符合预设条件时,将当前任务作为当前检测任务,且对目标存储信息、当前存储信息进行第一更新;若当前检测任务具有下级依赖任务,则将当前检测任务作为新的目标检测任务,第一更新后的当前存储信息作为新的目标存储信息,循环执行步骤s30-s50,直至新的当前检测任务不具有下级依赖任务,则对新的当前存储信息进行第二更新并结束循环,并获取目标任务的目标任务名称,及当前任务的当前任务名称。通过该方法可以获取目标任务的依赖关系及对应的任务名称,从而在目标任务出现异常时可以获取受其影响的所有任务及各任务受影响的先后顺序、受影响的频率,从而降低维护人员的工作量,提高任务数据库系统的稳定性,提高运维和开发效率。
81.在其中一个实施例中,任务数据库中各任务的存储信息包括是否已查找、依赖层次、依赖任务组,且是否已查找的初始值为否、依赖层次的初始值为1,依赖任务组的初始值为空,可以理解的是,任务数据库中任务1的存储信息可以表示为[{任务名称:任务1,是否已查找:否,依赖层次:1,依赖任务组:[]}];若存储信息中的是否已查找为否,则符合预设条件;第一更新包括将目标存储信息中是否已查找更新为是、依赖任务组更新为包括当前任务,将当前存储信息中依赖层次的值更新为目标存储信息中依赖层次的值与1的和、依赖任务组更新为包括目标检测任务;第二更新包括将第一更新后的当前存储信息中是否已查找更新为是。
[0082]
在其中一个实施例中,步骤s40之前还包括步骤s41,若当前存储信息不符合预设条件,则比较目标存储信息中依赖层次的值x0和当前存储信息中依赖层次的值x1;若x1和x0的差值小于1,则对目标存储信息、当前存储信息进行第三更新,否则进行第四更新;
[0083]
其中,第三更新包括将目标存储信息中是否已查找更新为是、依赖任务组更新为包括当前任务,将当前存储信息中依赖层次的值x1更新为x0与1的和、依赖任务组更新为包括目标检测任务,且将上级依赖与当前任务相关的关联任务的存储信息中依赖层次的值更新为原依赖层次的值与1的和,关联任务是指该任务的输入数据与当前任务的输出数据直接关联或间接关联,例如,根据从当前任务开始数据的流向为:当前任务-任务01-任务p02-任务p03-任务p04-任务p05,当前任务-任务11-任务p12-任务p13-任务p14-任务p15,则任务01、任务p02、任务p03、任务p04、任务p05、任务11、任务p12、任务p13、任务p14、任务p15均属于上级依赖与当前任务相关的关联任务;
[0084]
第四更新包括将目标存储信息中是否已查找更新为是、依赖任务组更新为包括当前任务,将当前存储信息中依赖任务组更新为包括目标检测任务。通过该方式可以避免检测任务依赖关系过程中的重复检测,减少了检测的时间。
[0085]
图3为一实施例中步骤s50的流程示意图,参见图3,在本实施例中当前检测任务a包括任务a1、任务a2

任务an,与当前检测任务一一对应的当前存储信息b包括当前存储信息b1、当前存储信息b2

当前存储信息bn;其中,n为大于或等于2的整数;
[0086]
步骤s50包括:
[0087]
步骤s502,选取当前检测任务a中任一具有下级依赖任务的任务am作为新的目标检测任务am,目标检测任务am对应的第一更新后的当前存储信息bm作为新的目标存储信息bm0,循环执行步骤s30-s50,直至新的当前检测任务不具有下级依赖任务,则对新的当前存储信息进行第二更新并结束循环;其中,m为大于或等于1的整数;
[0088]
步骤s504,再选取当前检测任务a中任一具有下级依赖任务的任务at作为新的目
标检测任务at,目标检测任务at对应的第一更新后的当前存储信息bt作为新的目标存储信息bt0,循环执行步骤s30-s50,直至新的当前检测任务不具有下级依赖任务,则对新的当前存储信息进行第二更新并结束循环;其中,t为大于或等于1的整数;
[0089]
步骤s506,依次执行步骤s502-s506,直至当前检测任务a中不存在符合预设条件的任务。
[0090]
在其中一个实施例中,步骤s506之后还包括:
[0091]
对当前检测任务a中剩余的不具有下级依赖任务的当前检测任务对应的当前存储信息进行第二更新。
[0092]
在其中一个实施例中,所述任务am、任务at均包括一个下级依赖任务。
[0093]
在其中一个实施例中,依赖任务组包括下级依赖任务组和上级依赖任务组此时,任务数据库中任务1的存储信息可以表示为[{任务名称:任务1,是否已查找:否,依赖层次:1,上级依赖任务组:[],下级依赖任务组:[]}]。具体地,下级依赖任务组用于记录该任务的下级依赖任务,上级依赖任务组用于记录该任务的上级依赖任务,判断该任务的输入数据是否和任务数据库中其他任务的输出数据直接关联,若该任务的输入数据和任务数据库中第二任务的输出数据直接关联,则判定第二任务为该任务的上级依赖任务。
[0094]
在其中一个实施例中,第一更新将目标存储信息中下级依赖任务组更新为包括当前任务,将当前存储信息中上级依赖组更新为包括目标检测任务;第三更新将所述目标存储信息中的下级依赖任务组更新为包括当前任务,将当前存储信息中上级依赖任务组更新为包括目标检测任务;第四更新将目标存储信息中的下级依赖任务组更新为包括当前任务,将当前存储信息中上级依赖任务组更新为包括目标检测任务。
[0095]
在其中一个实施例中,任务am包括多个存储信息符合预设条件的下级依赖任务作为当前检测任务m1,当前检测任务m1中的任一任务n1包括多个存储信息符合预设条件的下级依赖任务作为当前检测任务m2,

,当前检测任务mn-1中的任一任务nn-1包括多个存储信息符合预设条件的下级依赖任务作为当前检测任务mn,且当前检测任务mn中的任一任务nn均不具有下级依赖任务;
[0096]
所述步骤s502中循环执行步骤s30-s50包括:
[0097]
对当前检测任务mn中的任务nn进行第二更新;
[0098]
对当前检测任务mn-1中的其余任务循环执行步骤s30-s50;
[0099]
以此类推,直至对当前检测任务m1中其余任务循环执行步骤s30-s50。
[0100]
在其中一个实施例中,步骤s60之后还包括:
[0101]
步骤s70,输出所述目标任务、所述目标检测任务、所述当前检测任务及其之间的依赖关系。
[0102]
图4为一实施例中任务依赖关系的检测方法输出的目标任务g的下级依赖任务的任务依赖关系示意图。参见图4,对本技术任务依赖关系的检测方法进行示例性描述。第一步,获取需要进行依赖关系检测的任务g作为目标任务g,以及目标任务g的目标存储信息g0[{任务名称:任务g,是否已查找:否,依赖层次:1,上级依赖任务组:[],下级依赖任务组:[]}],典型的,将目标任务g加入临时数据存储位置,目标存储信息g0是目标任务g在临时数据存储位置的存储值。第二步,判断目标存储信息g0中的是否已查找为否,则将目标任务g作为目标检测任务g,即通过临时数据存储位置的存储值判断临时数据存储位置是否有未
查找的任务,若有则将存储值对应的目标任务作为目标检测任务。第三步,获取目标检测任务g的下级依赖任务(任务i和任务h),及其存储信息(任务i的存储信息i0、任务h的存储信息h0),分别作为当前任务i、当前任务h及当前任务i对应的当前存储信息i0[{任务名称:任务i,是否已查找:否,依赖层次:1,上级依赖任务组:[],下级依赖任务组:[]}],当前任务h对应的当前存储信息h0[{任务名称:任务h,是否已查找:否,依赖层次:1,上级依赖任务组:[],下级依赖任务组:[]]。第四步,判断当前存储信息i0和当前存储信息h0中的是否已查找为否,则将当前任务i作为当前检测任务i,将当前任务h作为当前检测任务h;并对目标存储信息g0进行第一更新,将是否已查找更新为是,下级依赖任务组更新为包括当前任务i、当前任务h,得到新的目标存储信息g1[{任务名称:任务g,是否已查找:是,依赖层次:1,上级依赖任务组:[],下级依赖任务组:[任务h,任务i]}];对当前存储信息i0进行第一更新,将当前存储信息i0中的依赖层次的值更新为目标存储信息g0的依赖层次值1 1=2,上级依赖任务组更新为包括目标检测任务g,得到新的当前存储信息i1[{任务名称:任务i,是否已查找:否,依赖层次:2,上级依赖任务组:[任务g],下级依赖任务组:[]}];对当前存储信息h0进行第一更新,将当前存储信息h0中的依赖层次的值更新为目标存储信息g0的依赖层次值1 1=2,上级依赖任务组更新为包括目标检测任务g,得到新的当前存储信息h1[{任务名称:任务h,是否已查找:否,依赖层次:2,上级依赖任务组:[任务g],下级依赖任务组:[]}]。第五步,将具有下级依赖任务的当前检测任务i作为新的目标检测任务i,第一更新后的当前存储信息i1作为新的目标存储信息i10。第六步,获取目标检测任务i的下级依赖任务(任务j和任务l),及其存储信息(任务j的存储信息j0、任务l的存储信息l0),分别作为当前任务j、当前任务l及当前任务j对应的当前存储信息j0[{任务名称:任务j,是否已查找:否,依赖层次:1,上级依赖任务组:[],下级依赖任务组:[]}],当前任务l对应的当前存储信息l0[{任务名称:任务l,是否已查找:否,依赖层次:1,上级依赖任务组:[],下级依赖任务组:[]]。第七步,判断当前存储信息j0和当前存储信息l0中的是否已查找为否,则将当前任务j作为新的当前检测任务j,将当前任务l作为新的当前检测任务l;并对目标存储信息i10进行第一更新,将是否已查找更新为是,下级依赖任务组更新为包括当前任务j、当前任务l,得到新的目标存储信息i11[{任务名称:任务i,是否已查找:是,依赖层次:2,上级依赖任务组:[任务g],下级依赖任务组:[任务j,任务l]}];对当前存储信息j0进行第一更新,将当前存储信息j0中的依赖层次的值更新为目标存储信息i10的依赖层次值2 1=3,上级依赖任务组更新为包括目标检测任务i,得到新的当前存储信息j1[{任务名称:任务j,是否已查找:否,依赖层次:3,上级依赖任务组:[任务i],下级依赖任务组:[]}];对当前存储信息l0进行第一更新,将当前存储信息l0中的依赖层次的值更新为目标存储信息i10的依赖层次值2 1=3,上级依赖任务组更新为包括目标检测任务i,得到新的当前存储信息l1[{任务名称:任务l,是否已查找:否,依赖层次:3,上级依赖任务组:[任务i],下级依赖任务组:[]}]。第八步,将具有下级依赖任务的当前检测任务j作为新的目标检测任务j,第一次更新后的当前存储信息j1作为新的目标存储信息j10。第九步,获取目标检测任务j的下级依赖任务(任务k),及其存储信息(任务k的存储信息k0),作为当前任务k及当前任务k对应的当前存储信息k0[{任务名称:任务k,是否已查找:否,依赖层次:1,上级依赖任务组:[],下级依赖任务组:[]}]。第十步,判断当前存储信息k0中的是否已查找为否,则将当前任务k作为新的当前检测任务k,并对目标存储信息j10进行第一更新,将是否已查找更新为是,
下级依赖任务组更新为包括当前任务k,得到新的目标存储信息j11[{任务名称:任务j,是否已查找:是,依赖层次:3,上级依赖任务组:[任务i],下级依赖任务组:[任务k]}];对当前存储信息k0进行第一更新,将当前存储信息k0中的依赖层次的值更新为目标存储信息j10的依赖层次值3 1=4,上级依赖任务组更新为包括目标检测任务j,得到新的当前存储信息k1[{任务名称:任务k,是否已查找:否,依赖层次:4,上级依赖任务组:[任务j],下级依赖任务组:[]}]。第十一步,当前检测任务k不具有下级依赖任务,对新的当前存储信息k1进行第二更新,将是否已查找更新为是,得到新的当前存储信息k2[{任务名称:任务k,是否已查找:是,依赖层次:4,上级依赖任务组:[任务j],下级依赖任务组:[]}]。第十二步,对不具有下级依赖任务的当前检测任务l的当前存储信息l1进行第二更新,将是否已查找更新为是,得到新的当前存储信息l2[{任务名称:任务l,是否已查找:是,依赖层次:3,上级依赖任务组:[任务i],下级依赖任务组:[]}]。第十三步,将具有下级依赖任务的当前检测任务h作为新的目标检测任务h,第一更新后的当前存储信息h1作为新的目标存储信息h10。第十四步,获取目标检测任务h的下级依赖任务(任务i和任务l)及其存储信息(任务i的存储信息i11,即任务i的最新存储信息、任务l的存储信息l2,即任务l的最新存储信息),分别作为当前任务i、当前任务l及当前任务i对应的当前存储信息i110[{任务名称:任务i,是否已查找:是,依赖层次:2,上级依赖任务组:[任务g],下级依赖任务组:[任务j,任务l]}],当前任务l对应的当前存储信息l20[{任务名称:任务l,是否已查找:是,依赖层次:3,上级依赖任务组:[任务i],下级依赖任务组:[]}]。第十五步,判断当前存储信息i110和当前存储信息l20中是否已查找均为是,则首先,比较目标存储信息h10中依赖层次的值x0=2和当前存储信息i110中依赖层次的值x1=2,而x1-x0=2-2=0《1,则对目标存储信息h10、当前存储信息i110进行第三更新,将目标存储信息h10中是否已查找更新为是,下级依赖任务组更新为包括当前任务i、当前任务l,得到新的目标存储信息h11[{任务名称:任务h,是否已查找:是,依赖层次:2,上级依赖任务组:[任务g],下级依赖任务组:[任务i,任务l]}],将当前存储信息i110中的依赖层次的值x1=2更新为x0 1=2 1=3,上级依赖任务组更新为包括目标检测任务h,得到新的当前存储信息i111[{任务名称:任务i,是否已查找:是,依赖层次:3,上级依赖任务组:[任务g,任务h],下级依赖任务组:[任务j,任务l]}],将上级依赖与当前任务i相关的关联任务(任务l,任务j、任务k)的存储信息中依赖层次的值更新为原依赖层次的值与1的和,即将任务l最新的存储信息(当前存储信息l20)中依赖层次的值更新为原依赖层次的值3 1=4,将当前任务l的当前存储信息l20更新为新的当前存储信息l21[{任务名称:任务l,是否已查找:是,依赖层次:4,上级依赖任务组:[任务i],下级依赖任务组:[]}],将任务j最新的存储信息(新的目标存储信息j11)中依赖层次的值更新为原依赖层次的值3 1=4,将任务j的新的目标存储信息j11更新为j12[{任务名称:任务j,是否已查找:是,依赖层次:4,上级依赖任务组:[任务i],下级依赖任务组:[任务k]}],将任务k最新的存储信息(新的当前存储信息k2)中依赖层次的值更新为原依赖层次的值4 1=5,将任务k的新的目标存储信息k2更新为k3[{任务名称:任务k,是否已查找:是,依赖层次:5,上级依赖任务组:[任务j],下级依赖任务组:[]}]。其次,比较新的目标存储信息h11中依赖层次的值x0=2和当前存储信息l21中依赖层次的值x1=4,而x1-x0=4-2=2》1,则对目标存储信息h11、当前存储信息l21进行第四更新,将目标存储信息h11中是否已查找更新为是,下级依赖任务组更新为包括当前任务i、当前任务l,得到新的目标存储信息h12[{任务名称:
任务h,是否已查找:是,依赖层次:2,上级依赖任务组:[任务g],下级依赖任务组:[任务i,任务l]}],因在上述第三更新中已完成此次需要对目标存储信息h11的更新,因此目标存储信息h12与h11相同;将当前存储信息l21中上级依赖任务更新为包括目标检测任务h,得到新的当前存储信息l22[{任务名称:任务l,是否已查找:是,依赖层次:4,上级依赖任务组:[任务i,任务h],下级依赖任务组:[]}]。第十六步,根据上述任务分层模型的建立方法,获取任务g、任务i、任务h、任务l、任务j、任务k的任务名称后进行存储,同时存储依赖关系的查找结果,即存储任务g、任务i、任务h、任务l、任务j、任务k的任务名称,任务g新的存储信息g1[{任务名称:任务g,是否已查找:是,依赖层次:1,上级依赖任务组:[],下级依赖任务组:[任务h,任务i]}],任务i新的存储信息i111[{任务名称:任务i,是否已查找:是,依赖层次:3,上级依赖任务组:[任务g,任务h],下级依赖任务组:[任务j,任务l]}],任务h新的存储信息h12[{任务名称:任务h,是否已查找:是,依赖层次:2,上级依赖任务组:[任务g],下级依赖任务组:[任务i,任务l]}],任务l新的存储信息l22[{任务名称:任务l,是否已查找:是,依赖层次:4,上级依赖任务组:[任务i,任务h],下级依赖任务组:[]}],任务j新的存储信息j12[{任务名称:任务j,是否已查找:是,依赖层次:4,上级依赖任务组:[任务i],下级依赖任务组:[任务k]}],任务k新的存储信息k3[{任务名称:任务k,是否已查找:是,依赖层次:5,上级依赖任务组:[任务j],下级依赖任务组:[]}]。第十七步,输出所述目标任务、所述目标检测任务、所述当前检测任务及其之间的依赖关系,即输出如图4所示的任务g、任务i、任务h、任务l、任务j、任务k及其之间的依赖关系,及其相应的任务名称,可以理解的是,通过前端代码处理把第十六步存储的依赖关系的查找结果以web形式展示出来,其中,任务g、任务i、任务h、任务l、任务j、任务k均为任务数据库中的任务。
[0103]
维护人员可以将任务数据库中的异常任务作为目标任务,通过输出的目标任务与任务数据库中相关任务的依赖关系及各任务的任务名称,可以在找到异常任务后进行提前预防,达到减小异常任务造成的影响,将异常任务的影响控制在一定范围内的目的。
[0104]
本技术实施例还提供一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现如上述任务分层模型的建立方法的步骤。
[0105]
本技术实施例还提供一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现如上述任务依赖关系的检测方法的步骤。
[0106]
应该理解的是,虽然图1的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图1中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
[0107]
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
[0108]
以上所述实施例仅表达了本技术的几种实施方式,其描述较为具体和详细,但并
不能因此而理解为对申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本技术构思的前提下,还可以做出若干变形和改进,这些都属于本技术的保护范围。因此,本技术专利的保护范围应以所附权利要求为准。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献