CN113703942A - 脚本执行方法、装置及计算机设备 - Google Patents
脚本执行方法、装置及计算机设备 Download PDFInfo
- Publication number
- CN113703942A CN113703942A CN202111004146.XA CN202111004146A CN113703942A CN 113703942 A CN113703942 A CN 113703942A CN 202111004146 A CN202111004146 A CN 202111004146A CN 113703942 A CN113703942 A CN 113703942A
- Authority
- CN
- China
- Prior art keywords
- execution
- script
- task
- rule
- database
- 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.)
- Pending
Links
Images
Classifications
-
- 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/485—Task life-cycle, e.g. stopping, restarting, resuming execution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1458—Management of the backup or restore process
- G06F11/1469—Backup restoration techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
-
- 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/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Quality & Reliability (AREA)
- Data Mining & Analysis (AREA)
- Human Computer Interaction (AREA)
- Stored Programmes (AREA)
Abstract
本申请提供了一种脚本执行方法、装置及计算机设备,面对不同类型数据库的维护需求,脚本提供者可以创建第一任务,构建相应的第一脚本和适用于场景需求的第一执行规则后上报至服务器,以使服务器确定到达某一审核通过的第一任务的执行时间,可以依据执行顺序,顺次将第一脚本发送至相应的执行数据库执行,相对于人工执行处理方式,节省了人工和沟通成本,提高脚本执行可靠性和效率,避免了误操作。
Description
技术领域
本申请主要涉及计算机技术领域,更具体地说是涉及一种脚本执行方法、装置及计算机设备。
背景技术
目前,在数据库的数据进行日常维护中,需要脚本编写人员编写相应的脚本执行,在需要执行批量运维脚本的情况下,由于各运维脚本的执行顺序、执行时间以及执行的数据库等存在差异,目前需要各脚本编写人员与各执行人员进行不断沟通,过程繁琐,会耗用较多的人力和沟通成本,运维脚本执行效率也会比较低,且很容易发生误操作。
因此,针对不同类型的数据库,如何快速且准确地执行相应脚本。满足对相应数据库的日常维护需求,已成为本领域重要研究之一。
发明内容
有鉴于此,为了解决上述技术问题,本申请提供了以下技术方案:
一方面,本申请提出了一种脚本执行方法,所述方法包括:
获取针对第一任务构建的第一脚本和第一执行规则;其中,所述第一执行规则包括所述第一任务的执行时间,以及所述第一脚本的执行数据库以及执行顺序、审核者信息和运维目标信息;
检测到针对所述第一脚本和所述第一执行规则的审核通过消息,按照所述执行时间,执行所述第一任务;
构建服务器与所述第一脚本的执行数据库之间的通信连接,按照所述执行顺序,将所述第一脚本发送至相应的所述执行数据库执行。
可选的,若所述第一任务对应的多个所述第一脚本之间配置有等待节点,所述方法还包括:
检测到所述第一任务处于任务等待状态,停止执行所述第一任务,将所述第一任务的执行状态信息反馈至脚本提供者客户端输出;
若接收到所述脚本提供者客户端反馈的针对所述第一任务的任务继续执行消息,响应所述任务继续执行消息,按照所述执行顺序,将处于未执行状态的所述第一脚本发送至对应的所述执行数据库执行;
若接收到所述脚本提供者客户端反馈的针对所述第一任务构建的第二脚本和/或第二执行规则,将所述第二脚本和/或所述第二执行规则发送至相应的审核者客户端;所述第二脚本是通过更新所述第一任务中未被执行的所述第一脚本得到的;
接收到所述审核者客户端反馈的审核通过消息,按照所述第二执行规则,继续执行所述第一任务,将所述第二脚本或所述第一任务中未被执行的所述第一脚本发送至相应的执行数据库执行。
可选的,所述方法还包括:
依据脚本执行要求,监测各所述执行数据库对相应所述第一脚本的执行过程,得到相应的监测结果;
若监测结果表示所述执行数据库对相应所述第一脚本执行异常,控制该执行数据库终止执行所述第一脚本,执行数据回滚操作,并将所述第一任务退回至脚本提供者客户端,以使所述第一任务进入执行失败状态。
可选的,所述第一执行规则还包括任务执行结果通知方式,所述方法还包括:
检测针对所述第一任务构建的各脚本是否均处于成功执行状态;
若是,按照所述任务执行结果通知方式,向脚本提供者客户端或脚本提供者的预设终端推送针对所述第一任务的任务执行成功消息。
又一方面,本申请还提出了一种脚本执行方法,所述方法包括:
输出脚本任务创建页面;
响应于对所述脚本任务创建页面的任务创建操作,创建第一任务;
响应于针对所述第一任务的配置输入操作,获得针对所述第一任务构建的第一脚本和第一执行规则;其中,所述第一执行规则包括所述第一任务的执行时间,以及所述第一脚本的执行数据库、执行顺序、审核者信息和运维目标信息;
响应于针对所述第一任务的任务提交操作,将所述第一任务的所述第一脚本和所述第一执行规则上报至服务器。
可选的,所述响应于针对所述第一任务的配置输入操作,获得针对所述第一任务构建的第一脚本和第一执行规则,包括:
响应于针对所述第一任务的规则选择操作,生成针对所述第一任务的第一执行规则;
响应于针对所述第一执行规则中各执行数据库和各运维目标信息的脚本录入操作,获得相应的第一脚本。
可选的,所述方法还包括:
响应于针对所述第一任务的确认关闭操作,向服务器发送针对所述第一任务的执行结果反馈信息;
其中,所述确认关闭操作是基于所述第一任务的各脚本的已执行状态,以及执行结果是否与相应的所述运维目标信息匹配的输入的;所述执行结果反馈信息能够表示脚本提供者对所述第一任务的执行结果的满足度。
又一方面,本申请还提出了一种脚本执行装置,所述装置包括:
任务信息获取模块,用于获取针对第一任务构建的第一脚本和第一执行规则;其中,所述第一执行规则包括所述第一任务的执行时间,以及所述第一脚本的执行数据库以及执行顺序、审核者信息和运维目标信息;
任务执行模块,用于检测到针对所述第一脚本和所述第一执行规则的审核通过消息,按照所述执行时间,执行所述第一任务;
脚本执行模块,用于构建服务器与所述第一脚本的执行数据库之间的通信连接,按照所述执行顺序,将所述第一脚本发送至相应的所述执行数据库执行。
又一方面,本申请还提出了一种脚本执行装置,所述装置包括:
输出模块,用于输出脚本任务创建页面;
任务创建模块,用于响应于对所述脚本任务创建页面的任务创建操作,创建第一任务;
任务信息获得模块,用于响应于针对所述第一任务的配置输入操作,获得针对所述第一任务构建的第一脚本和第一执行规则;其中,所述第一执行规则包括所述第一任务的执行时间,以及所述第一脚本的执行数据库、执行顺序、审核者信息和运维目标信息;
任务提交模块,用于响应于针对所述第一任务的任务提交操作,将所述第一任务的所述第一脚本和所述第一执行规则上报至服务器。
又一方面,本申请还提出了一种计算机设备,所述计算机设备包括:
存储器,用于存储实现如上述服务器侧执行的脚本执行方法的第一程序,或者存储实现如上述客户端侧执行的脚本执行方法的第二程序;
处理器,用于调用并执行所述存储器存储的第一程序,以实现服务器侧执行的脚本执行方法;或调用并执行所述存储器存储的第二程序,以实现客户端侧执行的脚本执行方法。
由此可见,本申请提供了一种脚本执行方法、装置及计算机设备,面对不同类型数据库的维护需求,脚本编写人员(即脚本提供者)可以据此创建第一任务,并针对各类型数据库编写其所需的第一脚本,有针对性地配置第一执行规则,如该第一任务的执行时间、各第一脚本的执行顺序、执行数据库、审核者信息、运维目标信息等,即针对不同数据库维护需求,灵活配置对应任务的脚本执行方案,将这些信息上报至服务器后,服务器可以依据第一执行规则包含的审核者信息,将第一脚本和第一执行规则发送至相应的审核者客户端输出,提醒该审核者对接收到的信息进行审核,若审核通过,向服务器反馈相应的审核通过消息,从而使服务器确保待执行的第一脚本和第一执行规则都合格的情况下,再按照执行时间自动执行第一任务,按照审核通过的执行顺序,将第一脚本发送至相应的执行数据库执行,提高脚本执行可靠性和效率,避免了误操作。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为实现本申请提出的脚本执行方法的***架构示意图;
图2为本申请提出的脚本执行方法的一可选示例的流程示意图;
图3为本申请提出的脚本执行方法的又一可选示例的流程示意图;
图4为本申请提出的脚本执行方法的又一可选示例的信令流程示意图;
图5为本申请提出的脚本执行装置的一可选示例的结构示意图;
图6为本申请提出的脚本执行装置的又一可选示例的结构示意图;
图7为本申请提出的脚本执行装置的又一可选示例的结构示意图;
图8为本申请提出的脚本执行装置的又一可选示例的结构示意图;
图9为适用于本申请提出的脚本执行方法的计算机设备的一可选示例的硬件结构示意图;
图10为适用于本申请提出的脚本执行方法的计算机设备的又一可选示例的硬件结构示意图。
具体实施方式
针对背景技术部分描述的技术问题,本申请提出利用运维机器人执行脚本编写人员提交的各运维脚本,即运维机器人根据各脚本编写人员提交某任务的执行时间、任务各脚本的执行数据库以及执行顺序、审核者、运维目的等执行规则,将该任务包含的各脚本发送至相应的执行数据库(如oracle、mysql等数据库,本申请对数据库类型不做限制,可视情况而定)执行,不需要脚本编写人员与执行人员反馈沟通,极大节省了人力成本和沟通成本,提高了脚本执行效率,也避免了误操作,提高了脚本执行可靠性。
而且,针对不同任务需要维护的不同类型数据库,本申请可以有针对性地配置执行规则,即针对不同应用场景实现了个性化的脚本执行方案,相对于运维自动化工具只能采用固定的脚本执行方案,满足特定场景下的数据库维护需求,本申请能够适用于多种场景,且在任一应用场景下,可以针对不同的脚本执行任务,配置相应脚本执行方案,据此快速、高效地执行脚本执行任务,满足该应用场景下的数据库维护需求。
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
参照图1,为实现本申请提出的脚本执行方法的***架构示意图,在数据库运维管理应用场景下,该***架构可以包括:终端100、服务器200以及数据库300,其中:
终端100可以是连接数据库运维管理***的用户设备,其可以包括但并不局限于智能手机、平板电脑、可穿戴设备、增强现实技术(Augmented Reality,AR)设备、虚拟现实(Virtual Reality,VR)设备、机器人、台式计算机等,图1示出的终端100仅是一个示例,并不对本申请实施例的终端100的产品类型带来任何限制。
本申请实施例中,对于脚本编写人员(即脚本提供者),其可以使用终端100中的脚本编译客户端,依据待维护的各数据库的运维要求,编写用于维护相应数据库的脚本,也可以通过终端100登录数据库运维管理平台,进入运维脚本编译页面完成脚本的编写,本申请对脚本编写实现方法不做限制,可视情况而定。
在实际应用中,对于数据库的不同运维要求,可以创建不同的脚本执行任务,由相同或不同的脚本编写人员编写构建各脚本执行任务所需的脚本,同一脚本执行任务可能需要构建一个或多个脚本,可视情况而定,本申请对此不做限制。
另外,脚本编写人员在针对脚本执行任务构建相应的脚本后,尤其是该脚本执行任务对应的脚本数量为多个的情况下,还需要配置脚本的执行规则,如各脚本的执行时间、执行顺序、审核人、运维目的等信息,以便运维机器人可以据此执行该脚本执行任务,本申请对执行规则的内容及其配置方法不做详述,可以参照但并不局限于下文实施例相应部分的描述。
基于上述分析,对于脚本编写人员所选项的脚本审核人,接收到相应的审核任务后,可以通过审核终端查看该审核任务,确定接受该审核任务后,可以下载相应的待审核信息,如该审核任务对应的脚本及其任务配置信息等,从而依据脚本审核要求,对待审核信息进行审核,如评估数据修改是否符合相关制度、按照任务配置信息执行脚本是否存在风险、脚本中是否存在明显的语法错误等,本申请对脚本审核要求的内容不做限制,可视情况而定,且根据场景需求进行灵活调整,本申请不做详述。
其中,脚本审核人按照上述方式进行脚本审核后,可以得到相应的审核结果,如审核通过;审核不通过,退回任务配置信息;变更非自动执行的脚本指定的执行人等,本申请对审核结果的内容及其输出方式不做限制。
可见,在整个***架构中,上述终端100可以包括各脚本提供者使用的终端、各脚本审核者使用的终端,在一些场景下,还可以包括查看运维结果的用户终端等,对于不同身份的用户使用的终端类型本申请不做限制,可以依据实际需求确定,本申请不做一一详述。
服务器200可以是提供数据库的运维服务的服务设备,也可以称为运维机器人,其可以是独立的物理服务器、也可以是多台物理服务器构成的服务集群,还可以是具有云计算能力的云服务器,本申请对该服务器200的结构类型不做限制,可视情况而定。实际应用中,服务器200可以通过有线通信网络或无线通信网络与终端100通信连接,实现两者之间的数据交互,本申请对服务器200与终端100之间的通信方式不做限制。
结合上述分析,对于各脚本提供者构建的各脚本执行任务的脚本,以及针对该脚本执行任务制定的脚本执行规则,即任务配置信息,可以上传至该服务器200,由该服务器200依据该脚本执行规则,执行相应的脚本,实现过程可以参照下文方法实施例相应部分的描述,本实施例在此不做详述。
数据库300可以是存储数据的数据存储设备,也就是本申请需要维护的对象,在实际应用中,该数据库300可以作为独立设备,也可以集成在上述服务器200中,也就是说,服务器200可以整合目前常用的mysql、Server、oracel等不同类型的数据库,以实现对不同类型数据库的操作,如将针对该数据库构建的脚本发送至该数据库,由其执行接收到的脚本,完成对该数据库的维护,本申请对数据库类型及其部署位置不做限制,可视情况而定。
应该理解的是,图1所示的***架构并不构成对本申请实施例中***的限定,在实际应用中,用于实现脚本执行方法的***可以包括比图1所示的更多或更少的部件,或者组合某些部件,本申请在此不做一一列举。
结合上文实施例描述的***架构,下面将对脚本执行方法的实现过程进行描述,如图2所示,为本申请提出的脚本执行方法的一可选示例的流程示意图,该方法可以由服务器执行,描述服务器接收到各脚本提供者上报的脚本及其所属任务的执行规则后,如何控制数据库自动执行相应的脚本的实现过程进行描述,但并不局限于本实施例描述的实现过程。如图2所示,该脚本执行方法可以包括:
步骤S11,获取针对第一任务构建的多个第一脚本和第一执行规则;
结合上文对本申请技术构思的相关描述,为了对某数据库或某些相同或不同类型数据库的维护,通常需要提供相应的脚本,可以由脚本编写人员完成脚本编写并上报,且由于对于同一任务(其可以依据应用场景下的数据库维护需求确定)的多个脚本,通常是按照一定顺序顺次执行,实现对相应数据库的相应功能的维护,满足任务测试要求。可见,在确定第一任务所需的多个第一脚本后,需要依据实际场景需求,配置相应的第一执行规则,包括但并不局限于相应第一任务的执行任务,以及该第一任务包含的各第一脚本的执行顺序。
且,在实际应用中,对于脚本编写人员即脚本提供者上报的脚本及其脚本执行规则,需要审核人员进行审核验证,确定其内容均满足审核要求的情况下,再执行后续操作,而对于不同脚本的审核者,可以由脚本提供者自主选择确定;也可以由***自动分配确定,或直接将该脚本提供者的直属上级主管确定为其审核者等,本申请对审核者的确定方法不做限制,可视情况而定。
另外,对于同一任务的不同脚本,其对相应执行数据库的维护目的可能不同,为了能够检测脚本执行结果是否达到脚本执行目的,还可以预先配置各脚本的维护目的,即脚本执行目的,可以由脚本提供者根据实际情况录入,实现方法本申请不做限制。
需要说明,对于上文第一执行规则(即针对第一脚本执行任务的各第一脚本的脚本执行规则)的内容,包括但并不局限于上文列举的针对第一任务的执行时间,以及各第一脚本的执行顺序、执行数据库以及审核者信息、脚本运维目标信息(即上文所描述的维护目的)等。根据应用需要,还可以预先确定各第一脚本是否需要优先处理、是否包含DDL(DataDefinition Language,数据库模式定义语言)语句或其他风险较大语句等、是否发送执行结果通知消息,采用什么方式发送该执行结果通知消息等,本申请对第一执行规则的内容不做限制。
其中,对于上文描述的包含DDL语句的脚本,可能会因脚本中的部分语句提交成功,导致产生残缺数据,为了避免执行这种语句不完整的脚本,本申请可以预先规定脚本提交过程中,出现任一条语句提交失败,直接对该脚本进行回滚处理。另外,由于DDL语句往往对应数据表结构的修改,其可能会引起数据库大面积锁死或package失败,所以,在运维的规范要求,通常要求在***发布时,由人工执行这类脚本,而不再由服务器自动执行该脚本,所以,对于针对任一任务提交的任一脚本,本申请可以在配置该任务的执行规则时,预先说明该脚本是否包含DDL语句,以确定由服务器自动执行该脚本,还是由人工执行脚本等。
在实际应用中,对于上述任务的创建和提交,以及针对任一任务(其可以记为第一任务)构建的第一脚本和第一执行规则,可以由脚本提供者登录***录入,实现过程可以参照下文从终端侧描述的方法实施例相应部分的描述,本实施例在此不做详述。
在一些实施例中,对于各脚本提供者上报的针对相同或不同任务,构建的脚本及其对应的执行规则,可以采用队列等方式进行存储,服务器可以对该存储空间内的信息内容进行监听,以获取处于待执行状态的任务及其对应的脚本和执行规则,但并不局限于这种获取方法。
步骤S12,检测到针对第一脚本和第一执行规则的审核通过消息,按照第一执行规则包含的执行时间,执行第一任务;
继上文描述,为了提高数据库执行脚本的可靠性和成功率,对于各脚本提供者所上报的针对某任务的脚本和执行规则,在执行该任务之前,可以按照该执行规则包含的审核者信息,先将提交的信息内容发送至相应的审核者进行审核,如审核脚本对应的数据修改是否符合制度要求、该脚本执行方案(即执行规则)是否存在风险、脚本自身内容是否存在明显的语法错误等,本申请对审核者对脚本及执行规则的审核方式、审核标准等不做限制,可视情况而定。
对于任一审核者,采用但并不局限于上文描述的审核方式,实现对下发的审核任务包含的待审核内容,如上述脚本、执行规则等内容的审核后,可以得到审核通过、审核不合格退回脚本执行规则和/或脚本、对于需要人工执行的脚本,可以更改预设执行者等审核结果,将该审核结果上报至服务器,以使服务器依据该审核结果执行后续操作,本申请实施例是对审核结果为审核通过这种情况下的处理方法进行描述。其中,对于同一任务中的不同脚本可以发送至同一审核者或不同的审核者进行审核,本申请对此不做限制,可视情况而定。
在实际应用中,审核者的审核终端可以采用消息上报等方式,提交上述审核结果,如对于审核通过这一审核结果,可以生成相应的审核通过消息,响应于审核者输入的审核结果上报操作,将该审核通过消息发送至服务器,以使服务器据此更新相应脚本及执行规则的审核状态,如从待审核状态更新为已审核状态或审核通过状态,实现方法本申请不做详述。
按照上述方式对第一任务对应的多个第一脚本和第一执行规则进行审核,且审核通过的情况下,可以由服务器按照该第一执行规则,自动执行该第一任务。示例性的,若第一任务需要执行三个第一脚本,且这三个第一脚本对应三个执行数据库,每一个执行数据库执行一个第一脚本,根据实际情况配置在凌晨2点执行,基于这些内容的第一执行规则,服务器检测到第一任务的审核通过消息后,检测到当前时间达到凌晨2点,可以执行第一任务,如基于当前时间达到凌晨2点这一检测结果,生成针对第一任务的执行请求,响应该执行请求,执行第一任务,但并不局限于这种任务触发方法。
步骤S13,构建服务器与第一脚本的执行数据库之间的通信连接,按照第一执行规则包含的执行顺序,将第一脚本发送至相应的执行数据库执行。
如上文对第一执行规则的相关描述,脚本提供者预先依据场景需求,配置了第一任务的第一执行规则,所以,服务器依据第一执行规则,确定可以执行该第一任务的情况下,可以按照第一执行规则包含的各第一脚本的执行顺序和执行数据库,实现与相应执行数据库之间的通信连接,将顺次待执行的第一脚本发送至相应的执行数据库执行。本申请对服务器与执行数据库之间的通信方式不做限制,可以参照但并不局限于上文***实施例相应部分的描述。
可以理解的是,对于第一任务包含的多个第一脚本各自对应的执行数据库的类型可以相同,也可以不同,可视情况而定,本申请对执行不同第一脚本的执行数据库的类型不做限制,且对各类型执行数据库执行第一脚本的实现方法不做详述。
综上,本申请实施例中,面对不同类型数据库的维护需求,脚本编写人员(即脚本提供者)可以据此创建相应的脚本执行任务,记为第一任务,并针对各类型数据库编写其所需的第一脚本,有针对性地配置第一执行规则,如该第一任务的执行时间、各第一脚本的执行顺序、执行数据库、审核者信息、运维目标信息等,即针对不同数据库维护需求,灵活配置对应任务的脚本执行方案,将这些信息上报至服务器后,服务器可以依据第一执行规则包含的审核者信息,将第一脚本和第一执行规则发送至相应的审核者客户端输出,提醒该审核者对接收到的信息进行审核,若审核通过,向服务器反馈相应的审核通过消息,从而使服务器确保待执行的第一脚本和第一执行规则都合格的情况下,再按照执行时间执行第一任务,按照审核通过的执行顺序,将第一脚本发送至相应的执行数据库执行,提高脚本执行可靠性和成功率。而且,在脚本执行阶段,由服务器直接按照第一任务的第一执行规则,控制执行数据库顺次执行第一脚本,相对于人工执行的处理方式,极大提高了脚本执行效率,避免了误操作,进一步提高了脚本执行可靠性。
参照图3,为本申请提出的脚本执行方法的又一可选示例的流程示意图,本实施例可以是对上文实施例描述的脚本执行方法中,针对不同任务的脚本和执行规则的构建过程进行描述,该方法可以由终端执行,更具地说是从脚本提供者的终端配置的相应客户端侧,来描述脚本和执行规则的获取过程,但并不局限于本实施例描述的实现方法,如图3所示,该方法可以包括:
步骤S21,输出脚本任务创建页面;
对于脚本提供者即脚本编写人员,面对数据库的维护任务需求,需要提供相应的脚本,并配置该任务执行所依据的执行规则,即脚本执行方案,对此,脚本提供者可以启动终端中的相应客户端,输入相应的账号、密码等身份信息,登录数据库运维管理***的应用平台,进入脚本任务创建页面,本申请对进入过程不做限制,可视情况而定。
结合上文分析,在一些实施例中,本申请实施例输出的脚本任务创建页面,配置有任务创建组件、脚本录入组件、执行规则选择录入组件等,且在脚本任务创建页面上呈现有与这些组件分别对应的输入窗口/功能按钮等,据此提示脚本提供者按照各组件的输入提示说明,完成相应信息的录入,本申请对脚本任务创建页面的布局结构不做限制,可以根据应用需求进行适应性调整配置。
在又一些实施例中,对于上文描述的各组件对应的输入窗口/功能按钮等,如上文描述在脚本任务创建页面展示,也可以在脚本任务创建页面上弹出相应的窗口输出,或弹出新的窗口输出下一级别组件对应的输入窗口/功能按钮等,本申请对此不做限制。
步骤S22,响应于对脚本任务创建页面的任务创建操作,创建第一任务;
脚本提供者面对数据库的维护任务需求,可以对脚本任务创建页面输出的任务创建按钮进行点击操作,创建一个指示实现对数据库实现相应维护需求的新任务,记为第一任务,之后,再配置该第一任务需要执行的任务内容、本申请对第一任务的创建实现过程不做限制。
如上文分析,为了方便实现对第一任务的脚本和执行规则的配置,在创建第一任务后,可以输出针对第一任务的任务配置窗口,以指示脚本提供者在该任务配置窗口完成相关任务信息的配置,本申请对该任务配置窗口的输出方式不做限制,如直接从脚本任务创建页面跳转至针对第一任务的任务配置窗口,或弹出针对第一任务的任务配置窗口等,可视情况而定。
可以理解的是,为了明确各任务是由哪一个或多个脚本提供者创建,对于创建的第一任务可以关联请求创建任务的脚本提供者的身份信息,如将第一任务与脚本提供者的工号、账号名称/ID等身份标识关联。
步骤S23,响应于针对第一任务的配置输入操作,获得针对第一任务构建的第一脚本和第一执行规则;
结合上文实施例对第一脚本和第一执行规则的相关描述,第一脚本可以由脚本提供者依据相应执行数据库的维护需求在线编写,或在离线状态下,预先依据该执行数据库的维护需求编写第一脚本,这样,在脚本录入输入框中,可以直接加载相应存储地址下所存储的第一脚本,无需等待脚本提供者在线录入脚本,以缩短脚本在线执行时间,本申请对第一脚本的获取方式不做限制,可以依据实际情况确定,且本申请对如何依据执行数据库的维护需求,构建相应第一脚本的实现过程不做详述。
而对于上述第一执行规则,由于其包括但并不局限于第一任务的执行时间,以及该第一任务中各第一脚本的执行数据库、执行顺序、审核者信息和运维目标信息等内容,对此,脚本任务创建页面或任务配置窗口可以包括执行规则选择区域,在该执行规则选择区域内可以包括能够作为执行规则的多项规则内容,每一项规则内容可以包括一个或多个待选项,以使脚本提供者依据实际维护需求进行选择。
可见,针对数据库的不同维护需求构建的任务,即不同的脚本执行任务,脚本提供者可以灵活配置相应脚本和执行规则,即实现了脚本执行方案的个性化配置,有利于提高脚本执行可靠性和成功率;且在执行规则的配置过程中,本申请直接提供待选项,使得脚本提供者根据实际需求直接选择即可,提高了执行规则配置效率和规范性。
需要说明,对于本申请针对第一任务构建的第一执行规则的内容,除了上文列举的内容外,还可以包括针对任一第一脚本是否自动执行,若选择人工执行,选择执行者信息;对第一任务执行结果的通知方式,如短信、邮件、语音、即时通讯消息等方式;是否包含DDL语句;是否需要优先处理等,可以依据场景需求调整待选项内容,以便从中选择更符合数据库维护规范要求,能够更好地进行数据库运维的执行规则,本申请不做一一详述。
步骤S24,响应于针对第一任务的任务提交操作,将第一任务的第一脚本和第一执行规则上报至服务器。
按照上述方式,完成第一任务的各第一脚本的加载、第一执行规则包含的各内容的选择操作后,脚本提供者可以确定提交第一任务,如点击任务提交按钮,将该第一任务及其包含的第一脚本、第一执行规则等信息上传至服务器,等待服务器按照第一执行规则,执行第一任务,关于第一任务的执行过程,可以参照上文从服务器侧描述的脚本执行方法的实现过程,本实施例不做赘述。
综上,在本申请实施例中,脚本提供者针对数据库的维护需求,可以编写相应的脚本,并有针对性配置脚本执行方案,即对本次创建的任务的各种执行要求,包括但并不局限于任务的执行时间、同一任务的各脚本的执行顺序、审核者、运维目的等执行规则,而不再采用固定的执行规则,这样,将构建的第一任务的各第一脚本和第一执行规则上传至服务器,可以使得服务器直接按照第一执行规则自动执行第一任务,控制相应执行数据库自动执行第一脚本,能够更高效地满足各类数据库的维护要求,且相对于脚本执行者按照脚本提供者的脚本备注信息或口述执行,节约了人工和沟通成本,提高了脚本执行效率,避免了误操作,提高脚本执行可靠性。
参照图4,为本申请提出的脚本执行方法的又一可选示例的信令流程示意图,本申请实施例可以是上文实施例描述的脚本执行方法的一可选细化实现方法,但并不局限于这种细化实现方法,如图4所示,该方法可以包括:
步骤S31,脚本提供者客户端输出脚本任务创建页面;
步骤S32,脚本提供者客户端响应于对脚本任务创建页面的任务创建操作,创建第一任务,跳转输出针对第一任务的任务配置窗口;
步骤S33,脚本提供者客户端响应于对任务配置窗口的配置输入操作,获得针对第一任务构建的第一脚本和第一执行规则;
步骤S34,脚本提供者客户端响应于对任务配置窗口的任务提交操作,将第一任务的第一脚本和第一执行规则上报至服务器;
关于步骤S31~步骤S34的实现过程,可以参照上文实施例相应部分的描述,本实施例不做赘述。
在实际应用中,为了避免脚本提供者客户端上报的脚本执行方案相关信息不完整,降低脚本执行可靠性,本申请可以约束任务提交操作的响应条件,如确定包含创建的第一任务,针对第一任务创建并加载的第一脚本、针对第一任务构建的第一执行规则等信息内容,再响应该任务提交操作;反之,可以不响应任务提交操作,甚至可以输出缺少相应内容的提示信息,如未加载第一脚本的情况下,脚本提供者执行任务提交操作,也不会进行脚本执行任务的提交,可以输出未加载脚本的提示信息,但并不局限于这种提示方法。
可选的,为了提高脚本执行可靠性,对于上述响应条件可以细化所选的执行规则是否包含特定的内容,如是否选择各第一脚本的审核者信息等,本申请对响应条件的内容不做限制,可视情况而定。
需要说明的是,对于上文针对第一脚本选择的审核者信息,录入的脚本运维目标信息等,可以独立于执行规则存在,本申请对此不做限制。由于将这些信息的获取过程,以及将其上报至服务器后的处理过程类似,本申请以审核者信息、运维目标信息等属于执行规则的一部分为例进行说明。
步骤S35,服务器构建针对第一脚本和第一执行规则的审核任务;
步骤S36,服务器依据第一执行规则包含的审核者信息,将该审核任务下发至相应审核者的审核客户端;
步骤S37,审核客户端响应于对输出的审核任务的确认审核操作,向服务器发送针对该审核任务的脚本审核请求;
步骤S38,服务器响应该脚本审核请求,将相应的第一脚本和第一执行规则发送至审核客户端;
步骤S39,审核客户端输出接收到的第一脚本和第一执行规则;
步骤S310,审核客户端响应于针对该第一脚本和第一执行规则的审核结果输入操作,向服务器发送至针对第一任务的审核通过消息;
本申请实施例中,对于第一任务包含的多个第一脚本,各自的审核者可以相同也可以不同,本申请对此不做限制,脚本提供者将第一任务及其包含的第一脚本和第一执行规则上报至服务器后,这些信息将处于待审核状态,为了提高脚本执行可靠性,服务器可以将这些信息发送至相应的审核者进行审核,审核过程不做详述,且对于待审核信息的下发实现过程,包括但并不局限于上文描述的实现方式。
在实际应用中,对于不同脚本提供者上报的多个任务各自的脚本和执行规则,均可以按照上文描述的方式先发送至审核者进行审核,由于不同任务的目的不同,各任务的审核内容可以不同,当然,也可以采用预设的脚本审核标准,对各任务的待审核内容进行审核,可视情况而定,本实施例不做赘述。且对于不同任务的审核结果,可能审核通过,也可能审核不通过,对于得到的审核结果可以直接反馈至服务器,以使服务器可以依据该审核结果,执行相应的后续处理步骤,本实施例在此以审核通过的第一任务的后续处理过程为例进行说明。
在一些实施例中,服务器通过构建的监听进程,对各脚本提供者上报的各任务的脚本和执行规则的审核状态进行监测,可以从中提取处于审核通过状态的任务的脚本和执行规则进行后续处理;当然,审核客户端也可以直接生成的与审核结果一致的消息,发送至服务器,以使服务器依据该消息,确定审核通过的第一任务的第一脚本和第一执行规则,本申请对服务器如何得知各任务的待审核信息(如上述脚本、执行规则等)的审核状态的方法不做限制。
可选的,在审核者确定第二任务的脚本和/或执行规则不符合审核标准,即任一项待审核信息不符合审核标准的情况下,可以向服务器反馈审核不通过消息,该审核不通过消息可以包括不符合审核标准的原因,审核者还可以于此给出相应的调整建议等,本申请对审核不通过消息的内容不做限制。
步骤S311,服务器检测到审核通过消息,按照第一执行规则包含的执行时间,执行第一任务;
步骤S312,服务器构建与顺次执行的第一脚本的执行数据库之间的通信连接;
步骤S313,服务器按照第一执行规则包含的执行顺序,将顺次执行的第一脚本发送至相应的执行数据库;
步骤S314,执行数据库执行接收到的第一脚本;
本实施例中,服务器执行任一审核通过后的第一任务过程中,如当前实现达到预设的执行时间后,可以构建相应的脚本进程,实现与相应的执行数据库的通过连接,按照预设的该第一任务包含的各第一脚本的执行顺序,顺次发送至相应的执行数据库进行执行,实现过程可以参照上文实施例相应部分的描述,本实施例不做赘述。
在实际应用中,服务器可以采用Linux操作***实现脚本执行方法,相对于操作***环境为Windows的脚本执行方法,在出现如堡垒机重启、plsql软件卡死等环境异常问题时,可以依据具有Linux操作***的服务器的可靠性可控的特点,保证大批量脚本执行过程的稳定性。
步骤S315,服务器依据脚本执行要求,监测执行数据库对相应第一脚本的执行过程,得到相应的监测结果;
步骤S316,利用该监测结果,确定该执行过程是否异常,如果是,进入步骤S317;如果否,执行步骤S318;
在任一第一脚本执行过程中,可以按照预设的脚本执行要求进行异常监测,如检测到当前执行的第一脚本的语法错误、第一脚本的备份数与更新或删除记录数不同,即执行时的行数与脚本方案里的行数不一致等情况时,可以认为该第一脚本的执行过程出现了异常,也就是,在异常监测过程中,存在任一项信息不符合脚本执行要求,均可以认为该第一脚本执行过程出现异常;本申请对脚本执行要求包含的内容不做限制,可视情况而定。
步骤317,服务器控制该执行数据库终止执行第一脚本,执行数据回滚操作,将第一任务退回至脚本提供者客户端,以使第一任务进入执行失败状态;
按照上述脚本执行过程中的异常监测方法,确定执行数据库对某第一脚本执行异常的情况下,可以将该第一脚本已成功执行的记录回滚,其中,回滚(Rollback)指的是程序或数据处理错误,将程序或数据恢复到上一次正确状态的行为,本申请实施例可以控制该执行数据库恢复至执行该第一脚本之前的状态,甚至是恢复至执行第一任务之前的状态,本申请对数据库回滚的实现方法不做详述。
与此同时,某一脚本执行异常,可以认为本次创建的任务执行失败,可以将第一任务回退给脚本提供者,如将处于执行失败状态的第一任务及其第一脚本、第一执行规则发送至相应的脚本提供者客户端,根据需要还可以输出任务执行失败的提示信息,该提示信息可以包括执行异常内容,以便脚本提供者据此调整任务的脚本和/或执行规则等,再重新上报该任务,实现过程与上文描述的实现过程类似,本实施例不再详述。其中,对于之前执行异常报错的脚本/执行规则,经过调整重新上报后,执行成功,可以记录该执行异常已解决等日志信息,以便后续查阅。
步骤S318,服务器检测到第一任务处于任务等待状态,停止执行第一任务,将第一任务的执行状态信息反馈至脚本提供者客户端输出;
实际应用中,在第一任务执行过程中,如执行部分第一脚本后,为了应对后台数据修改和前台业务数据交互需求,可能需要脚本提供者执行***外操作,如数据核对、其他非数据库的业务操作等,对此,可以在两个第一脚本之间配置等待节点,也就是说第一任务对应的多个第一脚本之间可以配置有等待节点,配置实现方法本申请不做限制。
基于此,服务器按照执行顺序控制相应执行数据库执行第一脚本的过程中,若按照执行顺序,检测下一顺次执行的节点是等待节点,而非脚本执行节点,即第一任务处于任务等待状态,可以生成通知服务器暂停执行第一任务的事件或指令,以使服务器据此停止执行第一任务,先执行该等待节点对应配置的***外操作。可选的,服务器可以在等待节点将第一任务退回至脚本提供者客户端,以使提醒脚本提供者进行***外操作,
其中,为了使得脚本提供者了解第一任务的执行进度,服务器可以将第一任务中未被执行的第一脚本,即处于未执行状态的第一脚本作为第一脚本的执行状态信息的一部分,反馈至脚本提供者客户端输出,本申请对等待节点下,服务器如何向脚本提供者客户端退回第一任务的实现方法不做限制,可视情况而定。
步骤S319,脚本提供者客户端响应于针对第一任务的规则调整操作,将针对第一任务构建的第二执行规则上报至服务器;
步骤S320,服务器接收到审核者客户端反馈的针对第二执行规则的审核通过消息,继续执行第一任务;
步骤S321,服务器按照第二执行规则,将第一任务中未被执行的第一脚本发送至相应的执行数据库执行;
在本申请实施例中,服务器进入等待节点,将第一任务退回给脚本提供者后,脚本提供者可以依据完成***外操作后的情况,按照上文描述的第一执行规则的获取方式,获取第二执行规则,在需要时,还可以对未被执行的第一脚本进行调整,得到第二脚本,实现过程本实施例不做赘述。
之后,脚本提供者可以将重新输入的针对第一任务的第二执行规则、第二脚本或未被执行的第一脚本,重新提交第一任务,从而按照上述审核过程,对其进行审核,在审核通过后,继续执行第一任务。
示例性的,假设针对第一任务构建了5个第一脚本,分别记为脚本1、脚本2、脚本3、脚本4和脚本5,在第一执行规则中配置的执行顺序为脚本1、脚本2、脚本3、等待节点、脚本4、脚本5,这样,服务器执行第一任务过程中,将脚本3发送至相应的执行数据库执行完毕后,将进入任务等待状态,此时可以先将该第一任务退回给脚本提供者,使其完成***外操作后,并重新提交该第一任务后,继续控制相应的执行数据库顺次执行脚本4、脚本5。
可以理解,在第一任务退回给脚本提供者客户端后,脚本提供者也可以不对其第一执行规则、未被执行的第一脚本进行更新,这样,在完成***外操作后,可以直接向服务器发送针对第一任务的任务继续执行消息,这样,服务器响应该任务继续执行消息,继续执行第一任务,按照第一执行规则包含的执行顺序,将未被执行的第一脚本顺次发送至相应的执行数据库执行,实现过程可以参照上文首次执行第一任务过程中相应步骤的描述,本实施例在此不做赘述。
步骤S322,服务器检测针对第一任务构建的各脚本是否均处于成功执行状态,如果是,进入步骤S323,如果否,返回步骤S312继续执行第一任务;
步骤S323,服务器按照第一执行规则包含的任务执行结果通知方式,向脚本提供者客户端推送针对第一任务的任务执行成功消息;
其中,任务执行结果通知方式可以包括但并不局限于短消息通知方式、电话通知方式、语音短消息通知方式、邮件通知方式等。且对于该任务执行成功消息也可以直接推送至脚本提供者的预设终端输出,以使脚本提供者能够及时得知第一任务的执行结果。
步骤S324,脚本提供者客户端响应于针对第一任务的确认关闭操作,向服务器发送针对第一任务的执行结果反馈信息。
本申请实施例中,该确认关闭操作是脚本提供者基于第一任务的各脚本的已执行状态,以及执行结果是否与相应的运维目标信息匹配等信息输入的,即在确定第一任务包含的各脚本都处于已执行状态,甚至是成功执行状态,且数据无误的情况下,点击任务关闭按钮,完成数据库维护任务。脚本提供者还可以结合整个脚本执行过程给予评价,因此,执行结果反馈信息能够表示脚本提供者对第一任务的执行结果的满足度,本申请对该执行结果反馈信息的获取方式及内容不做限制,可视情况而定。
综上,本申请实施例中,由脚本提供者针对各数据库的维护要求,创建相应的任务,以及执行该任务所需的各数据库的脚本和执行规则,实现了脚本执行方案的配置灵活性和便捷性,再将这些信息上报至服务器,经过相应审核者的可靠性审核后,由服务器按照执行规则,控制执行数据库执行各脚本,无需脚本提供者和执行者进行沟通执行,极大提高了脚本执行效率和执行时间的灵活性,避免了误操作,提高了脚本执行可靠性,且在待执行的脚本数量较多的情况下,这种自动执行方法,保证了各脚本执行的时效性。
应该理解的是,在上述脚本执行过程中,各脚本提供者可以创建不同的第一任务提交至服务器,以使服务器能够同时检测到多个审核通过的第一任务,对于这多个第一任务,可以按照各自第一执行规则中的执行时间执行,任一第一任务的执行过程可以参照上文实施例相应部分的描述,本实施例不做赘述。
在一些实施例中,多个第一任务也可以同时执行,以提高批量脚本执行速度,而同时执行的任务数量可以预先在服务器配置同时工作的执行线程数量,每一执行线程对应一第一任务,与该第一任务包含的执行数据库连接,实现相应第一脚本的传输。根据需要,在提取同一任务中不同脚本的过程中,还可以预先配置不同脚本的提取时间间隔,这种情况下,完成某第一脚本的执行或传输后,经过该提取时间间隔,从该第一任务的多个第一脚本中,顺次提取下一个第一脚本执行。
参照图5,为本申请提出的脚本执行装置的一可选示例的结构示意图,该装置可以位于服务器侧,如图5所示,该装置可以包括:
任务信息获取模块210,用于获取针对第一任务构建的第一脚本和第一执行规则;其中,所述第一执行规则包括所述第一任务的执行时间,以及所述第一脚本的执行数据库以及执行顺序、审核者信息和运维目标信息;
任务执行模块220,用于检测到针对所述第一脚本和所述第一执行规则的审核通过消息,按照所述执行时间,执行所述第一任务;
脚本执行模块230,用于构建服务器与所述第一脚本的执行数据库之间的通信连接,按照所述执行顺序,将所述第一脚本发送至相应的所述执行数据库执行。
在一些实施例中,若所述第一任务对应的多个所述第一脚本之间配置有等待节点,如图6所示,该装置还可以包括:
第一控制模块240,用于检测到所述第一任务处于任务等待状态,停止执行所述第一任务,将所述第一任务的执行状态信息反馈至脚本提供者客户端输出;
第二控制模块250,用于在接收到所述脚本提供者客户端反馈的针对所述第一任务的任务继续执行消息的情况下,响应所述任务继续执行消息,按照所述执行顺序,将处于未执行状态的所述第一脚本发送至对应的所述执行数据库执行;
第三控制模块260,用于在接收到所述脚本提供者客户端反馈的针对所述第一任务构建的第二脚本和/或第二执行规则的情况下,将接收到的所述第二脚本和/或所述第二执行规则发送至相应的审核者客户端;所述第二脚本是通过更新所述第一任务中未被执行的所述第一脚本得到的;
第四控制模块270,用于接收到所述审核者客户端反馈的审核通过消息,按照所述第二执行规则,继续执行所述第一任务,将所述第二脚本或所述第一任务中未被执行的所述第一脚本发送至相应的执行数据库执行。
在又一些实施例中,如图6所示,该装置还可以包括:
监测模块280,用于依据脚本执行要求,监测各所述执行数据库对相应所述第一脚本的执行过程,得到相应的监测结果;
数据回滚控制模块290,用于在监测结果表示所述执行数据库对相应所述第一脚本执行异常的情况下,控制该执行数据库终止执行所述第一脚本,执行数据回滚操作,并将所述第一任务退回至脚本提供者客户端,以使所述第一任务进入执行失败状态。
基于上文各实施例的描述,若上述第一执行规则还包括任务执行结果通知方式,上述装置还可以包括:
状态检测模块,用于检测针对所述第一任务构建的各脚本是否均处于成功执行状态;
消息推送模块,用于在状态检测模块的检测结果为是的情况下,按照所述任务执行结果通知方式,向脚本提供者客户端或脚本提供者的预设终端推送针对所述第一任务的任务执行成功消息。
需要说明的是,关于上述各装置实施例中的各种模块、单元等,均可以作为服务器中的程序模块存储在存储器中,由服务器中的处理器执行存储在存储器中的上述程序模块,以实现相应的功能,关于各程序模块及其组合所实现的功能,以及达到的技术效果,可以参照上述方法实施例相应部分的描述,本实施例不再赘述。
参照图7,为本申请提出的脚本执行装置的又一可选示例的结构示意图,该装置位于终端侧,如图7所示,该装置可以包括:
输出模块110,用于输出脚本任务创建页面;
任务创建模块120,用于响应于对所述脚本任务创建页面的任务创建操作,创建第一任务;
任务信息获得模块130,用于响应于针对所述第一任务的配置输入操作,获得针对所述第一任务构建的第一脚本和第一执行规则;其中,所述第一执行规则包括所述第一任务的执行时间,以及所述第一脚本的执行数据库、执行顺序、审核者信息和运维目标信息;
任务提交模块140,用于响应于针对所述第一任务的任务提交操作,将所述第一任务的所述第一脚本和所述第一执行规则上报至服务器。
在一些实施例中,如图8所示,上述任务信息获得模块130可以包括:
第一执行规则生成单元131,用于响应于针对所述第一任务的规则选择操作,生成针对所述第一任务的第一执行规则;
第一脚本获得单元132,用于响应于针对所述第一执行规则中各执行数据库和各运维目标信息的脚本录入操作,获得相应的第一脚本。
基于上文实施例的描述,如图8所示,该装置还可以包括:
执行结果反馈模块150,用于响应于针对所述第一任务的确认关闭操作,向服务器发送针对所述第一任务的执行结果反馈信息;
其中,所述确认关闭操作是基于所述第一任务的各脚本的已执行状态,以及执行结果是否与相应的所述运维目标信息匹配的输入的;所述执行结果反馈信息能够表示脚本提供者对所述第一任务的执行结果的满足度。
需要说明的是,关于上述终端侧的各装置实施例中的各种模块、单元等,均可以作为终端中的程序模块存储在存储器中,由终端中的处理器执行存储在存储器中的上述程序模块,以实现相应的功能,关于各程序模块及其组合所实现的功能,以及达到的技术效果,可以参照上述方法实施例相应部分的描述,本实施例不再赘述。
本申请还提供了一种计算机可读存储介质,其上可以存储计算机程序,该计算机程序可以被处理器调用并加载,以实现上述服务器或终端侧实施例描述的脚本执行方法的各个步骤,实现过程可以参照上文方法实施例相应部分的描述,本实施例不做赘述。
参照图9,为适应于本申请提出的脚本执行方法的计算机设备的一可选示例的硬件结构示意图,该计算机设备可以是服务器或终端,本申请实施例以计算机设备是服务器为例进行说明,如图9所示,该计算机设备可以包括:至少一个存储器1和至少一个处理器2,其中:
存储器1可以用于存储实现上述服务器侧描述的脚本执行方法的第一程序;处理器2可以用于调用执行该存储器1存储的第一程序,实现服务器侧描述的脚本执行方法。
可以理解,在计算机设备为终端的情况下,终端中的存储器可以用于存储实现上述终端侧描述的脚本执行方法的第二程序;处理器可以用于调用执行该存储器存储的第二程序,实现终端侧描述的脚本执行方法,实现过程可以参照上文实施例相应部分的描述。
在本申请实施例中,存储器1可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件或其他易失性固态存储器件。处理器2,可以为中央处理器(Central Processing Unit,CPU)、特定应用集成电路(application-specificintegrated circuit,ASIC)、数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其他可编程逻辑器件等。
应该理解的是,图9所示的计算机设备的结构并不构成对本申请实施例中计算机设备的限定,在实际应用中,计算机设备可以包括比图9所示的更多的部件,或者组合某些部件,如各种类型的通信接口等。且在计算机设备为终端的情况下,如图10所示,其还可以包括如显示器、扬声器等至少一个输出设备;如摄像头、拾音器、触摸感应单元等至少一个输入设备;传感器模组、电源管理模组、天线等,可以依据终端的类型及其功能需求确定,本申请在此不做一一列举。
最后,需要说明的,关于上述各实施例中,诸如第一、第二等之类的关系术语仅仅用来将一个操作、单元或模块与另一个操作、单元或模块区分开来,而不一定要求或者暗示这些单元、操作或模块之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法或者***不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法或者***所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法或者***中还存在另外的相同要素。
本说明书中各个实施例采用递进或并列的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置、***、计算机设备而言,由于其与实施例公开的方法对应,所以描述的比较简单,相关之处参见方法部分说明即可。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (10)
1.一种脚本执行方法,其特征在于,所述方法包括:
获取针对第一任务构建的第一脚本和第一执行规则;其中,所述第一执行规则包括所述第一任务的执行时间,以及所述第一脚本的执行数据库以及执行顺序、审核者信息和运维目标信息;
检测到针对所述第一脚本和所述第一执行规则的审核通过消息,按照所述执行时间,执行所述第一任务;
构建服务器与所述第一脚本的执行数据库之间的通信连接,按照所述执行顺序,将所述第一脚本发送至相应的所述执行数据库执行。
2.根据权利要求1所述的方法,其特征在于,若所述第一任务对应的多个所述第一脚本之间配置有等待节点,所述方法还包括:
检测到所述第一任务处于任务等待状态,停止执行所述第一任务,将所述第一任务的执行状态信息反馈至脚本提供者客户端输出;
若接收到所述脚本提供者客户端反馈的针对所述第一任务的任务继续执行消息,响应所述任务继续执行消息,按照所述执行顺序,将处于未执行状态的所述第一脚本发送至对应的所述执行数据库执行;
若接收到所述脚本提供者客户端反馈的针对所述第一任务构建的第二脚本和/或第二执行规则,将所述第二脚本和/或所述第二执行规则发送至相应的审核者客户端;所述第二脚本是通过更新所述第一任务中未被执行的所述第一脚本得到的;
接收到所述审核者客户端反馈的审核通过消息,按照所述第二执行规则,继续执行所述第一任务,将所述第二脚本或所述第一任务中未被执行的所述第一脚本发送至相应的执行数据库执行。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
依据脚本执行要求,监测各所述执行数据库对相应所述第一脚本的执行过程,得到相应的监测结果;
若监测结果表示所述执行数据库对相应所述第一脚本执行异常,控制该执行数据库终止执行所述第一脚本,执行数据回滚操作,并将所述第一任务退回至脚本提供者客户端,以使所述第一任务进入执行失败状态。
4.根据权利要求1~3任一项所述的方法,其特征在于,所述第一执行规则还包括任务执行结果通知方式,所述方法还包括:
检测针对所述第一任务构建的各脚本是否均处于成功执行状态;
若是,按照所述任务执行结果通知方式,向脚本提供者客户端或脚本提供者的预设终端推送针对所述第一任务的任务执行成功消息。
5.一种脚本执行方法,其特征在于,所述方法包括:
输出脚本任务创建页面;
响应于对所述脚本任务创建页面的任务创建操作,创建第一任务;
响应于针对所述第一任务的配置输入操作,获得针对所述第一任务构建的第一脚本和第一执行规则;其中,所述第一执行规则包括所述第一任务的执行时间,以及所述第一脚本的执行数据库、执行顺序、审核者信息和运维目标信息;
响应于针对所述第一任务的任务提交操作,将所述第一任务的所述第一脚本和所述第一执行规则上报至服务器。
6.根据权利要求5所述的方法,其特征在于,所述响应于针对所述第一任务的配置输入操作,获得针对所述第一任务构建的第一脚本和第一执行规则,包括:
响应于针对所述第一任务的规则选择操作,生成针对所述第一任务的第一执行规则;
响应于针对所述第一执行规则中各执行数据库和各运维目标信息的脚本录入操作,获得相应的第一脚本。
7.根据权利要求5或6所述的方法,其特征在于,所述方法还包括:
响应于针对所述第一任务的确认关闭操作,向服务器发送针对所述第一任务的执行结果反馈信息;
其中,所述确认关闭操作是基于所述第一任务的各脚本的已执行状态,以及执行结果是否与相应的所述运维目标信息匹配的输入的;所述执行结果反馈信息能够表示脚本提供者对所述第一任务的执行结果的满足度。
8.一种脚本执行装置,其特征在于,所述装置包括:
任务信息获取模块,用于获取针对第一任务构建的第一脚本和第一执行规则;其中,所述第一执行规则包括所述第一任务的执行时间,以及所述第一脚本的执行数据库以及执行顺序、审核者信息和运维目标信息;
任务执行模块,用于检测到针对所述第一脚本和所述第一执行规则的审核通过消息,按照所述执行时间,执行所述第一任务;
脚本执行模块,用于构建服务器与所述第一脚本的执行数据库之间的通信连接,按照所述执行顺序,将所述第一脚本发送至相应的所述执行数据库执行。
9.一种脚本执行装置,其特征在于,所述装置包括:
输出模块,用于输出脚本任务创建页面;
任务创建模块,用于响应于对所述脚本任务创建页面的任务创建操作,创建第一任务;
任务信息获得模块,用于响应于针对所述第一任务的配置输入操作,获得针对所述第一任务构建的第一脚本和第一执行规则;其中,所述第一执行规则包括所述第一任务的执行时间,以及所述第一脚本的执行数据库、执行顺序、审核者信息和运维目标信息;
任务提交模块,用于响应于针对所述第一任务的任务提交操作,将所述第一任务的所述第一脚本和所述第一执行规则上报至服务器。
10.一种计算机设备,其特征在于,所述计算机设备包括:
存储器,用于存储实现如权利要求1~4任一项所述的脚本执行方法的第一程序,或者存储实现如权利要求5~7任一项所述的脚本执行方法的第二程序;
处理器,用于调用并执行所述存储器存储的第一程序,以实现如权利要求1~4任一项所述的脚本执行方法;或调用并执行所述存储器存储的第二程序,以实现如权利要求5~7任一项所述的脚本执行方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111004146.XA CN113703942A (zh) | 2021-08-30 | 2021-08-30 | 脚本执行方法、装置及计算机设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111004146.XA CN113703942A (zh) | 2021-08-30 | 2021-08-30 | 脚本执行方法、装置及计算机设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113703942A true CN113703942A (zh) | 2021-11-26 |
Family
ID=78656819
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111004146.XA Pending CN113703942A (zh) | 2021-08-30 | 2021-08-30 | 脚本执行方法、装置及计算机设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113703942A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116226092A (zh) * | 2023-04-24 | 2023-06-06 | 北京炎黄广智科技发展有限责任公司 | 数据库更新方法及装置 |
CN117389843A (zh) * | 2023-12-13 | 2024-01-12 | 广州嘉为科技有限公司 | 一种智能运维***、方法、电子设备及存储介质 |
-
2021
- 2021-08-30 CN CN202111004146.XA patent/CN113703942A/zh active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116226092A (zh) * | 2023-04-24 | 2023-06-06 | 北京炎黄广智科技发展有限责任公司 | 数据库更新方法及装置 |
CN116226092B (zh) * | 2023-04-24 | 2023-08-08 | 北京炎黄广智科技发展有限责任公司 | 数据库更新方法及装置 |
CN117389843A (zh) * | 2023-12-13 | 2024-01-12 | 广州嘉为科技有限公司 | 一种智能运维***、方法、电子设备及存储介质 |
CN117389843B (zh) * | 2023-12-13 | 2024-04-09 | 广州嘉为科技有限公司 | 一种智能运维***、方法、电子设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108153670B (zh) | 一种接口测试方法、装置及电子设备 | |
CN113157419A (zh) | 基于机器人流程自动化的任务处理方法 | |
CN113703942A (zh) | 脚本执行方法、装置及计算机设备 | |
CN111245900B (zh) | 一种分布式消息发送的处理***及其处理方法 | |
CN106027644B (zh) | 一种业务的校验方法及*** | |
CN112486946A (zh) | 一种版本确认方法、***、电子设备及存储介质 | |
CN113807955A (zh) | 信息审核方法及相关设备 | |
CN107861765B (zh) | 产品配置方法、设备和计算机可读存储介质 | |
CN115617780A (zh) | 数据导入方法、装置、设备及存储介质 | |
CN112445860A (zh) | 一种处理分布式事务的方法和装置 | |
CN113051094A (zh) | 监管数据报送测试方法及装置 | |
CN106933932B (zh) | 数据处理方法、装置及应用服务器 | |
CN114928603B (zh) | 客户端软件的升级方法、装置、电子设备和介质 | |
CN115617555A (zh) | 一种信息处理***以及方法 | |
CN114996209A (zh) | 一种配置修改方法、装置、设备及可读存储介质 | |
CN115563156A (zh) | 流数据信息的校验方法、装置、设备及存储介质 | |
CN115147178A (zh) | 配送订单自动取消处理方法、装置及计算设备 | |
CN114896337A (zh) | 一种数据上链方法、***、设备和计算机可读存储介质 | |
CN114612193A (zh) | 商品信息推送方法、中间服务平台、设备及存储介质 | |
CN112667512A (zh) | 数据驱动测试方法、装置、设备和计算机可读存储介质 | |
JP5978008B2 (ja) | 取引管理システム、取引管理方法及び取引管理プログラム | |
CN112765188A (zh) | 配置信息处理方法、配置管理***、电子设备及存储介质 | |
CN111459556A (zh) | 一种基于客户现场的服务器bmc批量配置方法及*** | |
CN111176762A (zh) | 批量处理程序的执行方法及装置、电子设备和可存储介质 | |
CN116680203B (zh) | 面向多租户的SaaS平台的测试方法、装置、设备和介质 |
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 |