基于Oracle代码的定时任务关系网络图生成方法及相关设备与流程

文档序号:24658338发布日期:2021-04-13 21:50阅读:155来源:国知局
基于Oracle代码的定时任务关系网络图生成方法及相关设备与流程
基于oracle代码的定时任务关系网络图生成方法及相关设备
技术领域
1.本申请涉及大数据技术领域,尤其涉及基于oracle代码的定时任务关系网络图生成方法、装置、计算机设备及存储介质。


背景技术:

2.目前市面上数据库任务调度工具,需要事先人工设置定时任务间的先后顺序和依赖关系,如果依赖关系复杂,定时任务引用了多处中间表,由人工设置容易出错,且无法对设置的定时任务间的依赖关系进行验证和检查,如何有效得到定时任务的依赖关系并展示成为亟待解决的技术问题。


技术实现要素:

3.本申请实施例的目的在于提出一种基于oracle代码的定时任务关系网络图生成方法、装置、计算机设备及存储介质,以解决现有技术中无法对设置的定时任务间的依赖关系进行验证和检查,以致不能有效得到定时任务的依赖关系并展示的问题。
4.为了解决上述技术问题,本申请实施例提供一种基于oracle代码的定时任务关系网络图生成方法,采用了如下所述的技术方案:
5.一种基于oracle代码的定时任务关系网络图生成方法,包括下述步骤:
6.接收定时任务关系网络生成请求,根据所述定时任务关系网络生成请求访问oracle数据库,读取所述oracle数据库中的oracle脚本代码;
7.解析所述oracle脚本代码,得到多个定时任务,以及与所述多个定时任务对应的数据表信息;
8.根据各所述定时任务的数据表信息得到各所述定时任务的依赖关系,并根据所述依赖关系生成依赖关系表,基于所述依赖关系表的表结构生成多个定时任务的有向图,并根据所述有向图生成定时任务关系网络图,使得目标对象端接收所述定时任务关系网络图后,可根据所述定时任务关系网络图执行目标操作。
9.为了解决上述技术问题,本申请实施例还提供一种基于oracle代码的定时任务关系网络图生成装置,采用了如下所述的技术方案:
10.一种基于oracle代码的定时任务关系网络图生成装置,包括:
11.代码获取模块,用于接收定时任务关系网络生成请求,根据所述定时任务关系网络生成请求访问oracle数据库,读取所述oracle数据库中的oracle脚本代码;
12.解析模块,用于解析所述oracle脚本代码,得到多个定时任务,以及与所述多个定时任务对应的数据表信息;
13.网络图生成模块,用于根据各所述定时任务的数据表信息得到各所述定时任务的依赖关系,并根据所述依赖关系生成依赖关系表,基于所述依赖关系表的表结构生成多个定时任务的有向图,并根据所述有向图生成定时任务关系网络图,使得目标对象端接收所述定时任务关系网络图后,可根据所述定时任务关系网络图执行目标操作。
14.为了解决上述技术问题,本申请实施例还提供一种计算机设备,采用了如下所述的技术方案:
15.一种计算机设备,包括存储器和处理器,所述存储器中存储有计算机可读指令,所述处理器执行所述计算机可读指令时实现如上所述的基于oracle代码的定时任务关系网络图生成方法的步骤。
16.为了解决上述技术问题,本申请实施例还提供一种计算机可读存储介质,采用了如下所述的技术方案:
17.一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机可读指令,所述计算机可读指令被处理器执行时实现如上所述的基于oracle代码的定时任务关系网络图生成方法的步骤。
18.与现有技术相比,本申请实施例提供的基于oracle代码的定时任务关系网络图生成方法、装置、计算机设备及存储介质主要有以下有益效果:
19.本发明基于对oracle数据库中代码的解析结果,分析出每个定时任务的数据表信息,然后数据表信息进行匹配,自动生成每个定时任务的依赖路径,形成图形化的定时任务关系网络图,直观高效的反映整个定时任务依赖关系的网络拓扑结构,生成过程效率高,且准确度高,可对定时任务提供定时任务运行前参考,运行中监控,运行后分析的全流程提供辅助,保障定时任务运行的准确性和可靠性。
附图说明
20.为了更清楚地说明本申请中的方案,下面将对本申请实施例描述中所需要使用的附图作一个简单介绍,下面描述中的附图对应于本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
21.图1是本申请可以应用于其中的示例性系统架构图;
22.图2是根据本申请的基于oracle代码的定时任务关系网络图生成方法的一个实施例的流程图;
23.图3是根据本申请的基于oracle代码的定时任务关系网络图生成装置的一个实施例的结构示意图;
24.图4是根据本申请的计算机设备的一个实施例的结构示意图。
具体实施方式
25.除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同;本文中在申请的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本申请;本申请的说明书和权利要求书及上述附图说明中的术语“包括”和“具有”以及它们的任何变形,意图在于覆盖不排他的包含。本申请说明书和权利要求书或上述附图中的术语“第一”、“第二”等是用于区别不同对象,而不是用于描述特定顺序。
26.在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和
隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
27.为了使本技术领域的人员更好地理解本申请方案,下面将结合附图,对本申请实施例中的技术方案进行清楚、完整地描述。
28.如图1所示,系统架构100可以包括终端设备101、102、103,网络104和服务器105。网络104用以在终端设备101、102、103和服务器105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
29.用户可以使用终端设备101、102、103通过网络104与服务器105交互,以接收或发送消息等。终端设备101、102、103上可以安装有各种通讯客户端应用,例如网页浏览器应用、购物类应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等。
30.终端设备101、102、103可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、电子书阅读器、mp3播放器(moving picture experts group audio layer iii,动态影像专家压缩标准音频层面3)、mp4(moving picture experts group audio layer iv,动态影像专家压缩标准音频层面4)播放器、膝上型便携计算机和台式计算机等等。
31.服务器105可以是提供各种服务的服务器,例如对终端设备101、102、103上显示的页面提供支持的后台服务器。
32.需要说明的是,本申请实施例所提供的基于oracle代码的定时任务关系网络图生成方法一般由服务器执行,相应地,基于oracle代码的定时任务关系网络图生成装置一般设置于服务器中。
33.应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
34.继续参考图2,其示出了根据本申请的基于oracle代码的定时任务关系网络图生成方法的一个实施例的流程图。所述的基于oracle代码的定时任务关系网络图生成方法包括以下步骤:
35.s201,接收定时任务关系网络生成请求,根据所述定时任务关系网络生成请求访问oracle数据库,读取所述oracle数据库中的oracle脚本代码;
36.s202,解析所述oracle脚本代码,得到多个定时任务,以及与所述多个定时任务对应的数据表信息;
37.s203,根据各所述定时任务的数据表信息得到各所述定时任务的依赖关系,并根据所述依赖关系生成依赖关系表,基于所述依赖关系表的表结构生成多个定时任务的有向图,并根据所述有向图生成定时任务关系网络图,使得目标对象端接收所述定时任务关系网络图后,可根据所述定时任务关系网络图执行目标操作。
38.下面对上述步骤进行展开说明。
39.对于步骤s201,在oracle脚本代码被执行之前,由目标对象端向服务器系统发起或者服务器系统定时自动触发定时任务关系网络生成请求,在任务关系网络生成请求中包含有待访问的oracle数据库信息以及oracle脚本代码在oracle数据库中的存储路径信息,通过这些信息可以访问oracle数据库并读取其中的oracle脚本代码。
40.对于步骤s202,本实施例解析oracle脚本代码包括在oracle脚本中确定定时任务,然后识别与定时任务相关联的数据表信息。在一些实施例中,所述解析所述oracle脚本
代码,得到多个定时任务,以及与所述多个定时任务对应的数据表信息的步骤包括:
41.查找所述oracle脚本代码中的定时任务标识,并从所述oracle数据库中获取oracle的定时任务调度信息,根据所述定时任务调度信息确定所述oracle脚本代码中的定时任务数量;当所述定时任务数量达到预设值时,根据所述定时任务数量确定多个用作切分点的定时任务标识,基于切分点对所述oracle脚本代码进行切分得到多个代码片段,并在完成oracle脚本代码切分后生成与代码片段的数量对应的多个解析任务;同时执行所述多个解析任务,得到多个定时任务,以及与所述多个定时任务对应的数据表信息。
42.具体的,本实施例中所述定时任务标识具体为任务起止标识,可包括任务开始时间标识和结束时间标识,oracle的定时任务调度信息存放在oracle管理视图dba_jobs中,oracle管理视图dba_jobs可存储于所述oracle数据库中,由此可以检查当前定时任务的个数。
43.本实施例中根据定时任务数量进行等分切分得到多个用作切分点的定时任务标识,以对oracle脚本代码进行等分切分,得到至少两个代码片段,由此可以进行并发解析,提高解析速度,进而提高得到定时任务关系网络图的效率。
44.本实施例中所述数据表信息包括输入数据表和输出数据表,执行解析任务得到定时任务的输入数据表和输出数据表的过程包括,在oracle脚本代码或代码片段中识别与定时任务相关联的数据库表在oracle脚本代码或代码片段中的位置及数据库表上下文的关键字,基于关键字判断与定时任务相关联的数据库表为输入数据表还是输出数据表。由此可得到多个定时任务及对应的输入数据表信息和输出数据表信息,其中数据库表的位置通过查找oracle脚本代码中数据库表的表名来确定,而关键字则包括输出关键字和输入关键字,分别用于确定数据库表为输出数据表和输入数据表,本实施例中的输出关键字可以是insert、update、delete和merge等,输入关键字可包括slect等。
45.在一些实施例中,在所述基于切分点对所述oracle脚本代码进行切分得到多个代码片段之前,所述方法还包括:获取系统可用资源,根据所述系统可用资源是否满足预设阈值来确定是否对oracle脚本代码进行切分,当确定切分时,根据所述系统可用资源确定代码片段的切分数量,根据所述代码片段的切分数量对所述切分点进行调整,以根据调整后的切分点对所述oracle脚本代码进行切分。需要说明的是,若根据原始切分点获得的代码片段数量与根据系统可用资源确定的代码片段数量相同,则不对切分点进行调整。在完成切分点的调整后,后续根据调整后的切分点执行对oracle脚本代码的切分操作。
46.若根据系统可用资源确定不切分时,后续取消对oracle脚本代码进行切分的操作,生成针对全部oracle脚本代码的单个解析任务,并在解析过程中实时监控系统可用资源的变化,当系统可用资源满足预设阈值后,暂停当前单个解析任务,对剩余未解析的oracle脚本代码进行切分,再对应生成多个解析任务进行并发解析,提高解析速度。
47.对于步骤s203,在本实施例中,数据表信息包括输入数据表和输出数据表,根据各定时任务的数据表信息得到各定时任务的依赖关系可根据输入数据表和输出数据表的表名进行匹配,如定时任务a的输出数据表的表名为t1,定时任务b的输入数据表的表名也为t1,则定时任务b在定时任务b后启动,即定时任务b依赖于定时任务a。
48.在本实施例中,依赖关系表采用由定时任务名称和依赖任务名称两个表字段组成的表结构,将所有具有依赖关系的定时任务及其依赖对象按照前述表结构进行表填充,即
得到最终的依赖关系表,在根据依赖关系表的表结构生成多个定时任务的有向图时,具体针对有依赖关系的两个定时任务生成有向图,以两个定时任务为有向图的节点,从被依赖的定时任务节点指向依赖的定时任务节点,比如定时任务b依赖于定时任务a,则在构建有向图时,定时任务a的节点指向定时任务b的节点。
49.在构建完成有向图后,将各有向图中同一定时任务的节点合并得到定时任务关系网络图,定时任务关系网络图直观易懂,生成后可发生给目标对象端,目标对象端可以是开发人员或维护人员所在的终端,目标对象端可基于定时任务关系网络图执行试算检查、排查复杂依赖关系、监测定时任务运行进度、依赖关系优化等目标操作。
50.本实施例在定时任务系统上线前可由系统自动试算定时任务关系网络图,以供开发人员检查定时任务的依赖关系,排查关系复杂的依赖定时任务,提高系统上线的准确率。
51.具体的,在一些实施例中,在所述解析所述oracle脚本代码,得到多个定时任务,以及与所述多个定时任务对应的数据表信息的步骤之后,所述方法还包括:判断各所述定时任务的数据表是否缺失,如果判定存在定时任务的数据表缺失,则在生成的所述定时任务关系网络图中对存在数据表缺失的定时任务节点进行标识,并输出调整所述oracle脚本代码的提示信息,在调整所述oracle脚本代码后,重新触发所述解析所述oracle脚本代码,得到多个定时任务,以及与所述多个定时任务对应的数据表信息的步骤,重新获取所述依赖关系;其中定时任务的数据表缺失包括输入数据表和/或输出数据表缺失。由此实现在执行oracle脚本代码前对异常定时任务的筛查。
52.在一些实施例中,存在依赖关系异常的情况,具体的,在所述根据所述有向图生成定时任务关系网络图的步骤之后,所述方法还包括:试算所述定时任务关系网络图,当试算确定所述定时任务关系网络图存在两个定时任务相互依赖的情况时,判定为定时任务依赖异常,输出调整定时任务依赖关系的提示信息,并根据调整后的依赖关系重新生成定时任务关系网络图。由此实现在执行oracle脚本代码前对定时任务的异常依赖关系的筛查。
53.在一些实施例中,在定时任务运行时,可基于定时任务关系网络图对各定时任务的运行状态进行监控,具体的,在所述根据所述有向图生成定时任务关系网络图的步骤之后,所述方法还包括:在各所述定时任务运行时,从所述目标对象端实时获取各所述定时任务的运行状态,以所述定时任务关系网络图为图片基层,将各所述定时任务的运行状态以目标方式在所述定时任务关系网络图标识,生成第二定时任务关系网络图并输出至所述目标对象端。其中定时任务的运行状态可以为运行中、正确运行结束、运行异常等,所述目标方式可以是颜色标识或文字标识或图像标识等的一种或多种。
54.进一步地,对于运行异常的定时任务,可以在定时任务关系网络图中展示影响范围。具体的,在所述从所述目标对象端实时获取各所述定时任务的运行状态的步骤之后,所述方法还包括:当从所述目标对象端实时获取到任意所述定时任务的运行状态为运行异常时,根据所述依赖关系表确定受运行异常的定时任务影响的其它定时任务,并以所述定时任务关系网络图为图片基层,将所述运行异常的定时任务和受影响的定时任务对应的节点,以目标方式在所述定时任务关系网络图上进行标识,生成第三定时任务关系网络图并输出至所述目标对象端。由此可以直观展示异常运行的定时任务的影响范围,便于快速启动重新运行。
55.在一些实施例中,解析oracle脚本代码还包括识别周期执行的定时任务,获取被
周期执行的定时任务依赖的非周期执行的定时任务,根据周期执行的定时任务之间的依赖关系,以及周期执行的定时任务依赖与获取的非周期执行的定时任务的依赖关系,生成基于时间的网络图定时任务关系网络图。便于实现基于时间的定时任务的管理。
56.在一些实施例中,定时任务关系网络生成请求中还可包括定时任务关系网络图的生成配置信息,在根据有向图生成定时任务关系网络图时,可基于生成配置信息生成不同展现形式的定时任务关系网络图,比如网络拓扑图、链式图、树形图等,在本实施例中,定时任务关系网络图具体为网络拓扑图,当网络拓扑图中定时任务过多时,可以通过优化依赖关系来优化网络拓扑图。
57.在一些实施例中,所述方法还包括:实时监控oracle数据库中的oracle脚本代码的更新状态,更新状态包括oracle脚本代码的修改、增加或删除;对oracle脚本代码的更新部分进行局部解析,并基于局部解析结果更新依赖关系表,重新生成新的定时任务关系网络图。由此可以实现定时任务关系网络图的实时更新。
58.本申请提供的基于oracle代码的定时任务关系网络图生成方法,基于对oracle数据库中代码的解析结果,分析出每个定时任务的数据表信息,然后数据表信息进行匹配,自动生成每个定时任务的依赖路径,形成图形化的定时任务关系网络图,直观高效的反映整个定时任务依赖关系的网络拓扑结构,生成过程效率高,且准确度高,可对定时任务提供定时任务运行前参考,运行中监控,运行后分析的全流程提供辅助,保障定时任务运行的准确性和可靠性。
59.需要强调的是,为进一步保证信息的私密和安全性,在解析所述oracle脚本代码得到多个定时任务以及与所述多个定时任务对应的数据表信息后,所述数据表信息中被确定为隐私信息的数据还可以存储于一区块链的节点中。
60.本申请所指区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层等。
61.本申请可用于众多通用或专用的计算机系统环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器系统、基于微处理器的系统、置顶盒、可编程的消费电子设备、网络pc、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等等。本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
62.本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机可读指令来指令相关的硬件来完成,该计算机可读指令可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,前述的存储介质可为磁碟、光盘、只读存储记忆体(read

only memory,rom)等非易失性存储介质,或随机存储记忆体(random access memory,ram)等。
63.应该理解的是,虽然附图的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,其可以以其他的顺序执行。而且,附图的流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,其执行顺序也不必然是依次进行,而是可以与其他步骤或者其他步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
64.进一步参考图3,作为对上述图2所示方法的实现,本申请提供了一种基于oracle代码的定时任务关系网络图生成装置的一个实施例,该装置实施例与图2所示的方法实施例相对应,该装置具体可以应用于各种电子设备中。
65.如图3所示,本实施例所述的基于oracle代码的定时任务关系网络图生成装置包括:代码获取模块301、解析模块302以及网络图生成模块303。其中,所述代码获取模块用于接收定时任务关系网络生成请求,根据所述定时任务关系网络生成请求访问oracle数据库,读取所述oracle数据库中的oracle脚本代码;所述解析模块用于解析所述oracle脚本代码,得到多个定时任务,以及与所述多个定时任务对应的数据表信息;所述网络图生成模块用于根据各所述定时任务的数据表信息得到各所述定时任务的依赖关系,并根据所述依赖关系生成依赖关系表,基于所述依赖关系表的表结构生成多个定时任务的有向图,并根据所述有向图生成定时任务关系网络图,使得目标对象端接收定时任务关系网络图后可根据其执行目标操作。
66.在本实施例中,在oracle脚本代码被执行之前,由目标对象端向服务器系统发起或者服务器系统定时自动触发定时任务关系网络生成请求,在任务关系网络生成请求中包含有待访问的oracle数据库信息以及oracle脚本代码在oracle数据库中的存储路径信息,代码获取模块301通过这些信息可以访问oracle数据库并读取其中的oracle脚本代码。
67.本实施例解析模块302解析oracle脚本代码包括在oracle脚本中确定定时任务,然后识别与定时任务相关联的数据表信息。在一些实施例中,所述解析模块302解析所述oracle脚本代码,得到多个定时任务,以及与所述多个定时任务对应的数据表信息时,具体用于:查找所述oracle脚本代码中的定时任务标识,并从所述oracle数据库中获取oracle的定时任务调度信息,根据所述定时任务调度信息确定所述oracle脚本代码中的定时任务数量;当所述定时任务数量达到预设值时,根据所述定时任务数量确定多个用作切分点的定时任务标识,基于切分点对所述oracle脚本代码进行切分得到多个代码片段,并在完成oracle脚本代码切分后生成与代码片段的数量对应的多个解析任务;同时执行所述多个解析任务,得到多个定时任务,以及与所述多个定时任务对应的数据表信息。
68.具体的,本实施例中所述定时任务标识具体为任务起止标识,可包括任务开始时间标识和结束时间标识,oracle的定时任务调度信息存放在oracle管理视图dba_jobs中,可以检查当前任务的个数。
69.本实施例中根据定时任务数量进行等分切分得到多个用作切分点的定时任务标识,以对oracle脚本代码进行等分切分,得到至少两个代码片段,由此可以进行并发解析,提高解析速度,进而提高得到定时任务关系网络图的效率。
70.本实施例中所述数据表信息包括输入数据表和输出数据表,执行解析任务得到定时任务的输入数据表和输出数据表的过程包括,在oracle脚本代码或代码片段中识别与定
时任务相关联的数据库表在oracle脚本代码或代码片段中的位置及数据库表上下文的关键字,基于关键字判断与定时任务相关联的数据库表为输入数据表还是输出数据表。由此可得到多个定时任务及对应的输入数据表信息和输出数据表信息,其中数据库表的位置通过查找oracle脚本代码中数据库表的表名来确定,而关键字则包括输出关键字和输入关键字,分别用于确定数据库表为输出数据表和输入数据表,本实施例中的输出关键字可以是insert、update、delete和merge等,输入关键字可包括slect等。
71.在一些实施例中,所述解析模块302在基于切分点对所述oracle脚本代码进行切分得到多个代码片段之前,还用于:获取系统可用资源,根据所述系统可用资源是否满足预设阈值来确定是否对oracle脚本代码进行切分,当确定切分时,根据所述系统可用资源确定代码片段的切分数量,根据所述代码片段的切分数量对所述切分点进行调整,以根据调整后的切分点对所述oracle脚本代码进行切分。需要说明的是,若根据原始切分点获得的代码片段数量与根据系统可用资源确定的代码片段数量相同,则不对切分点进行调整。在完成切分点的调整后,后续根据调整后的切分点执行对oracle脚本代码的切分操作。
72.若根据系统可用资源确定不切分时,后续解析模块302取消对oracle脚本代码进行切分的操作,仅生成针对全部oracle脚本代码的单个解析任务,并在解析过程中实时监控系统可用资源的变化,当系统可用资源满足预设阈值后,暂停当前单个解析任务,对剩余未解析的oracle脚本代码进行切分,再对应生成多个解析任务进行并发解析,提高解析速度。
73.对于步骤s203,在本实施例中,数据表信息包括输入数据表和输出数据表,网络图生成模块303根据各定时任务的数据表信息得到各定时任务的依赖关系可根据输入数据表和输出数据表的表名进行匹配,如定时任务a的输出数据表的表名为t1,定时任务b的输入数据表的表名也为t1,则定时任务b在定时任务b后启动,即定时任务b依赖于定时任务a。
74.在本实施例中,依赖关系表采用由定时任务名称和依赖任务名称两个表字段组成的表结构,网络图生成模块303将所有具有依赖关系的定时任务及其依赖对象按照前述表结构进行表填充,即得到最终的依赖关系表,网络图生成模块303在根据依赖关系表的表结构生成多个定时任务的有向图时,具体针对有依赖关系的两个定时任务生成有向图,以两个定时任务为有向图的节点,从被依赖的定时任务节点指向依赖的定时任务节点,比如定时任务b依赖于定时任务a,则在构建有向图时,定时任务a的节点指向定时任务b的节点。
75.网络图生成模块303在构建完成有向图后,将各有向图中同一定时任务的节点合并得到定时任务关系网络图,定时任务关系网络图直观易懂,生成后可发生给目标对象端,目标对象端可以是开发人员或维护人员所在的终端,目标对象端可基于定时任务关系网络图执行试算检查、排查复杂依赖关系、监测定时任务运行进度、依赖关系优化等目标操作。
76.本实施例在定时任务系统上线前可由系统自动试算定时任务关系网络图,以供开发人员检查定时任务的依赖关系,排查关系复杂的依赖定时任务,提高系统上线的准确率。
77.在一些实施例中,网络图生成模块303在所述解析所述oracle脚本代码,得到多个定时任务,以及与所述多个定时任务对应的数据表信息之后,还用于:判断各所述定时任务的数据表是否缺失,如果判定存在定时任务的数据表缺失,则在生成的所述定时任务关系网络图中对存在数据表缺失的定时任务节点进行标识,并输出调整所述oracle脚本代码的提示信息,在调整所述oracle脚本代码后,重新触发所述解析所述oracle脚本代码,得到多
个定时任务,以及与所述多个定时任务对应的数据表信息,重新获取所述依赖关系;其中定时任务的数据表缺失包括输入数据表和/或输出数据表缺失。由此实现在执行oracle脚本代码前对异常定时任务的筛查。
78.在一些实施例中,存在依赖关系异常的情况,具体的,网络图生成模块303在所述根据所述有向图生成定时任务关系网络图的步骤之后,还用于:试算所述定时任务关系网络图,当试算确定所述定时任务关系网络图存在两个定时任务相互依赖的情况时,判定为定时任务依赖异常,输出调整定时任务依赖关系的提示信息,并根据调整后的依赖关系重新生成定时任务关系网络图。由此实现在执行oracle脚本代码前对定时任务的异常依赖关系的筛查。
79.在一些实施例中,所述基于oracle代码的定时任务关系网络图生成装置还包括监控模块(未示出),用于在定时任务运行时,基于定时任务关系网络图对各定时任务的运行状态进行监控,具体的,所述监控模块用于:在各所述定时任务运行时,从所述目标对象端实时获取各所述定时任务的运行状态。所述网络图生成模块303以所述定时任务关系网络图为图片基层,将各所述定时任务的运行状态以目标方式在所述定时任务关系网络图标识,生成第二定时任务关系网络图并输出至所述目标对象端。其中定时任务的运行状态可以为运行中、正确运行结束、运行异常等,所述目标方式可以是颜色标识或文字标识或图像标识等的一种或多种。
80.在一些实施例中,所述监控模块方法还用于:实时监控oracle数据库中的oracle脚本代码的更新状态,更新状态包括oracle脚本代码的修改、增加或删除;解析模块302对oracle脚本代码的更新部分进行局部解析,网络图生成模块303基于局部解析结果更新依赖关系表,重新生成新的定时任务关系网络图。由此可以实现定时任务关系网络图的实时更新。
81.进一步地,对于运行异常的定时任务,可以在定时任务关系网络图中展示影响范围。具体的,所述网络图生成模块303还用于:当解析模块302从所述目标对象端实时获取到任意所述定时任务的运行状态为运行异常时,根据所述依赖关系表确定受运行异常的定时任务影响的其它定时任务,并以所述定时任务关系网络图为图片基层,将所述运行异常的定时任务和受影响的定时任务对应的节点,以目标方式在所述定时任务关系网络图上进行标识,生成第三定时任务关系网络图并输出至所述目标对象端。由此可以直观展示异常运行的定时任务的影响范围,便于快速启动重新运行。
82.在一些实施例中,解析模块302解析oracle脚本代码还包括识别周期执行的定时任务,获取被周期执行的定时任务依赖的非周期执行的定时任务,再由网络图生成模块303根据周期执行的定时任务之间的依赖关系,以及周期执行的定时任务依赖与获取的非周期执行的定时任务的依赖关系,生成基于时间的网络图定时任务关系网络图。便于实现基于时间的定时任务的管理。
83.在一些实施例中,定时任务关系网络生成请求中还可包括定时任务关系网络图的生成配置信息,网络图生成模块303在根据有向图生成定时任务关系网络图时,可基于生成配置信息生成不同展现形式的定时任务关系网络图,比如网络拓扑图、链式图、树形图等,在本实施例中,定时任务关系网络图具体为网络拓扑图,当网络拓扑图中定时任务过多时,可以通过优化依赖关系来优化网络拓扑图。
84.本申请提供的基于oracle代码的定时任务关系网络图生成装置,基于对oracle数据库中代码的解析结果,分析出每个定时任务的数据表信息,然后数据表信息进行匹配,自动生成每个定时任务的依赖路径,形成图形化的定时任务关系网络图,直观高效的反映整个定时任务依赖关系的网络拓扑结构,生成过程效率高,且准确度高,可对定时任务提供定时任务运行前参考,运行中监控,运行后分析的全流程提供辅助,保障定时任务运行的准确性和可靠性。
85.为解决上述技术问题,本申请实施例还提供计算机设备。具体请参阅图4,图4为本实施例计算机设备基本结构框图。所述计算机设备4包括通过系统总线相互通信连接存储器41、处理器42、网络接口43,所述存储器41中存储有计算机可读指令,所述处理器42执行所述计算机可读指令时实现上述方法实施例中所述的基于oracle代码的定时任务关系网络图生成方法的步骤,并具有与上述基于oracle代码的定时任务关系网络图生成方法相对应的有益效果,在此不作展开。
86.需要指出的是,图中仅示出了具有存储器41、处理器42、网络接口43的计算机设备4,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。其中,本技术领域技术人员可以理解,这里的计算机设备是一种能够按照事先设定或存储的指令,自动进行数值计算和/或信息处理的设备,其硬件包括但不限于微处理器、专用集成电路(application specific integrated circuit,asic)、可编程门阵列(field-programmable gate array,fpga)、数字处理器(digital signal processor,dsp)、嵌入式设备等。
87.所述计算机设备可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述计算机设备可以与用户通过键盘、鼠标、遥控器、触摸板或声控设备等方式进行人机交互。
88.在本实施例中,所述存储器41至少包括一种类型的可读存储介质,所述可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,sd或dx存储器等)、随机访问存储器(ram)、静态随机访问存储器(sram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、可编程只读存储器(prom)、磁性存储器、磁盘、光盘等。在一些实施例中,所述存储器41可以是所述计算机设备4的内部存储单元,例如该计算机设备4的硬盘或内存。在另一些实施例中,所述存储器41也可以是所述计算机设备4的外部存储设备,例如该计算机设备4上配备的插接式硬盘,智能存储卡(smart media card,smc),安全数字(secure digital,sd)卡,闪存卡(flash card)等。当然,所述存储器41还可以既包括所述计算机设备4的内部存储单元也包括其外部存储设备。本实施例中,所述存储器41通常用于存储安装于所述计算机设备4的操作系统和各类应用软件,例如对应于上述基于oracle代码的定时任务关系网络图生成方法的计算机可读指令等。此外,所述存储器41还可以用于暂时地存储已经输出或者将要输出的各类数据。
89.所述处理器42在一些实施例中可以是中央处理器(central processing unit,cpu)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器42通常用于控制所述计算机设备4的总体操作。本实施例中,所述处理器42用于运行所述存储器41中存储的计算机可读指令或者处理数据,例如运行对应于所述基于oracle代码的定时任务关系网络图生成方法的计算机可读指令。
90.所述网络接口43可包括无线网络接口或有线网络接口,该网络接口43通常用于在所述计算机设备4与其他电子设备之间建立通信连接。
91.本申请还提供了另一种实施方式,即提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可读指令,所述计算机可读指令可被至少一个处理器执行,以使所述至少一个处理器执行如上述的基于oracle代码的定时任务关系网络图生成方法的步骤,并具有与上述基于oracle代码的定时任务关系网络图生成方法相对应的有益效果,在此不作展开。
92.通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术实施例本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本申请各个实施例所述的方法。
93.显然,以上所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例,附图中给出了本申请的较佳实施例,但并不限制本申请的专利范围。本申请可以以许多不同的形式来实现,相反地,提供这些实施例的目的是使对本申请的公开内容的理解更加透彻全面。尽管参照前述实施例对本申请进行了详细的说明,对于本领域的技术人员来而言,其依然可以对前述各具体实施方式所记载的技术实施例进行修改,或者对其中部分技术特征进行等效替换。凡是利用本申请说明书及附图内容所做的等效结构,直接或间接运用在其他相关的技术领域,均同理在本申请专利保护范围之内。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1