操作请求处理方法、装置、设备、存储介质和程序产品转让专利

申请号 : CN202210584709.5

文献号 : CN114676418B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 赵海涛李明明

申请人 : 太平金融科技服务(上海)有限公司深圳分公司

摘要 :

本申请涉及一种操作请求处理方法、装置、设备、存储介质和程序产品。所述方法包括:接收操作请求,所述操作请求携带有操作对象和操作信息;根据所述操作对象和操作信息选择对应的操作协议;将所述操作信息和所述操作协议进行封装得到实际执行脚本;执行所述实际执行脚本以对所述操作对象进行操作以得到执行结果。采用本方法能够满足不同的操作对应和操作信息,更加智能化。

权利要求 :

1.一种操作请求处理方法,其特征在于,所述方法包括:接收操作请求,所述操作请求携带有操作对象和操作信息;

根据所述操作对象和操作信息选择对应的操作协议;

将所述操作信息和所述操作协议进行封装得到实际执行脚本;

执行所述实际执行脚本以对所述操作对象进行操作以得到执行结果;

所述执行所述实际执行脚本以对所述操作对象进行操作以得到执行结果之前,还包括:将所述实际执行脚本对应的数据存储至共享存储空间,且在执行结束后删除所述实际执行脚本对应的数据;

所述方法还包括:

扫描所述共享存储空间中是否存在执行失败且满足预设条件;

当存在执行失败且满足死锁条件的数据时,获取所述执行失败且死锁的数据对应的进程,并将所述进程输出;

当存在执行失败且时间戳满足时间阈值条件的数据时,获取对应实际执行脚本的执行进度,并根据所述执行进度停止所述实际执行脚本的执行。

2.根据权利要求1所述的方法,其特征在于,所述根据所述操作对象和操作信息选择对应的操作协议之前,还包括:接收预先编写的不同操作对象和分类的目标脚本;

将所述目标脚本、不同操作对象和分类进行关联存储得到操作协议。

3.根据权利要求2所述的方法,其特征在于,所述将所述目标脚本、不同操作对象和分类进行关联存储得到操作协议之后,还包括:配置每一所述操作协议中的目标脚本的回调模式;

所述执行所述实际执行脚本以对所述操作对象进行操作以得到执行结果,包括:执行所述实际执行脚本以对所述操作对象进行操作,并根据所述回调模式获取所述实际执行脚本对应的执行结果。

4.根据权利要求1所述的方法,其特征在于,所述操作对象包括数据库;所述执行所述实际执行脚本以对所述操作对象进行操作以得到执行结果,包括:执行所述实际执行脚本以对所述数据库进行操作,以使得所述数据库执行对应的操作并输出执行结果至日志文件;

获取所述日志文件中存储的执行结果。

5.根据权利要求1所述的方法,其特征在于,所述操作对象包括应用层和系统层;所述执行所述实际执行脚本以对所述操作对象进行操作以得到执行结果,包括:执行所述实际执行脚本,以调用所述操作对象中的至少一个被调用脚本,且至少一个被调用脚本的输出信息重定向到指定文件;

获取所述指定文件中存储的执行结果。

6.根据权利要求5所述的方法,其特征在于,所述接收操作请求,包括:当至少接收到两条操作请求,且所述操作请求之间存在先后顺序时,则配置所述操作请求的关联标志位;

所述执行所述实际执行脚本以对所述操作对象进行操作以得到执行结果,包括:判断是否能读取到关联标志位;

当读取到关联标志位时,执行在前的操作请求对应的实际执行脚本以对所述操作对象进行操作以得到执行结果;

通过执行在前的操作请求对应的实际执行脚本执行回调反向通知执行在后的操作请求对应的实际执行脚本以对所述操作对象进行操作以得到执行结果。

7.根据权利要求6所述的方法,其特征在于,所述配置所述操作请求的关联标志位,包括:配置所述操作请求的关联标志位,并将所述关联标志位存放至共享存储空间中;

所述执行所述实际执行脚本以对所述操作对象进行操作以得到执行结果,包括:通过至少两台执行器执行存在关联标志位的所述操作请求对应的实际执行脚本,且每台所述执行器执行一个所述实际执行脚本;

当执行在前的操作请求对应的实际执行脚本执行完成后,接收执行在前的操作请求对应的实际执行脚本的执行回调指令,并基于所述执行回调指令获取所述共享存储空间中的关联标志位,基于所述关联标志位获取到执行在后的操作请求对应的实际执行脚本,并执行。

8.根据权利要求1所述的方法,其特征在于,所述执行所述实际执行脚本以对所述操作对象进行操作以得到执行结果之前,还包括:获取操作对象的权限管理信息;

根据所述权限管理信息对所述操作请求的权限进行验证;

当权限验证通过后,则继续执行所述实际执行脚本以对所述操作对象进行操作以得到执行结果。

9.根据权利要求1所述的方法,其特征在于,所述接收操作请求之后,还包括:判断所述操作请求对应的请求系统标识是否存储于白名单中;

当所述操作请求对应的请求系统标识存储于白名单中时,则继续根据所述操作对象和操作信息选择对应的操作协议。

10.根据权利要求1所述的方法,其特征在于,所述根据所述操作对象和操作信息选择对应的操作协议,包括:根据所述操作对象和操作信息选择至少一个操作协议;

所述将所述操作信息和所述操作协议进行封装得到实际执行脚本,包括:将所述操作信息封装至对应的至少一个所述操作协议对应的目标脚本中;

将封装得到的多个目标脚本进行组合得到实际执行脚本组合。

11.根据权利要求1所述的方法,其特征在于,所述执行所述实际执行脚本以对所述操作对象进行操作以得到执行结果之后,包括:将所述执行结果通过回调的方式返回至对应的请求系统中。

12.根据权利要求1所述的方法,其特征在于,所述接收操作请求之后,还包括:根据所述操作请求对应的请求系统标识将所述操作请求对应的执行结果获取功能,分配至对应的日志收集线程中。

13.一种操作请求处理装置,其特征在于,所述装置包括:第一接收模块,用于接收操作请求,所述操作请求携带有操作对象和操作信息;

选择模块,用于根据所述操作对象和操作信息选择对应的操作协议;

封装模块,用于将所述操作信息和所述操作协议进行封装得到实际执行脚本;

执行模块,用于执行所述实际执行脚本以对所述操作对象进行操作以得到执行结果;

第一存储模块,用于将所述实际执行脚本对应的数据存储至共享存储空间,且在执行结束后删除所述实际执行脚本对应的数据;

扫描模块,用于扫描所述共享存储空间中是否存在执行失败且满足预设条件;

第一输出模块,用于当存在执行失败且满足死锁条件的数据时,获取所述执行失败且死锁的数据对应的进程,并将所述进程输出;当存在执行失败且时间戳满足时间阈值条件的数据时,获取对应实际执行脚本的执行进度,并根据所述执行进度停止所述实际执行脚本的执行。

14.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至12中任一项所述的方法的步骤。

15.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至12中任一项所述的方法的步骤。

说明书 :

操作请求处理方法、装置、设备、存储介质和程序产品

技术领域

[0001] 本申请涉及运维技术领域,特别是涉及一种操作请求处理方法、装置、设备、存储介质和程序产品。

背景技术

[0002] 随着自动化运维、devops的流行,大部分企业的系统运维工作从传统的手工运维发展到如今的自动化线上运维。运维人员直接操作底层服务器终端、数据库会带来很大的安全风险,因此需要通过线上系统来解决。
[0003] 传统技术中存在许多自动化运维工具,如:腾讯蓝鲸平台、easyOps等,这些软件都完成了通过系统基础数据的页面配置,系统后台与服务器终端建立连接,完成命令脚本的执行动作。
[0004] 然而,目前的脚本执行方式较多,各种脚本使用之前需要配置,使得存在执行失败的情况。

发明内容

[0005] 基于此,有必要针对上述技术问题,提供一种能够满足不同的操作对应和操作信息,更加智能化的操作请求处理方法、装置、设备、存储介质和程序产品。
[0006] 一种操作请求处理方法,所述方法包括:
[0007] 接收操作请求,所述操作请求携带有操作对象和操作信息;
[0008] 根据所述操作对象和操作信息选择对应的操作协议;
[0009] 将所述操作信息和所述操作协议进行封装得到实际执行脚本;
[0010] 执行所述实际执行脚本以对所述操作对象进行操作以得到执行结果。
[0011] 在其中一个实施例中,所述根据所述操作对象和操作信息选择对应的操作协议之前,还包括:
[0012] 接收预先编写的不同操作对象和分类的目标脚本;
[0013] 将所述目标脚本、不同操作对象和分类进行关联存储得到操作协议。
[0014] 在其中一个实施例中,所述将所述目标脚本、不同操作对象和分类进行关联存储得到操作协议之后,还包括:
[0015] 配置每一所述操作协议中的目标脚本的回调模式;
[0016] 所述执行所述实际执行脚本以对所述操作对象进行操作以得到执行结果,包括:
[0017] 执行所述实际执行脚本以对所述操作对象进行操作,并根据所述回调模式获取所述实际执行脚本对应的执行结果。
[0018] 在其中一个实施例中,所述操作对象包括数据库;所述执行所述实际执行脚本以对所述操作对象进行操作以得到执行结果,包括:
[0019] 执行所述实际执行脚本以对所述数据库进行操作,以使得所述数据库执行对应的操作并输出执行结果至日志文件;
[0020] 获取所述日志文件中存储的执行结果。
[0021] 在其中一个实施例中,所述执行所述实际执行脚本以对所述操作对象进行操作以得到执行结果之前,还包括:
[0022] 将所述实际执行脚本对应的数据存储至共享存储空间,且在执行结束后删除所述实际执行脚本对应的数据;
[0023] 所述方法还包括:
[0024] 扫描所述共享存储空间中是否存在执行失败且满足预设条件;
[0025] 当存在执行失败且满足死锁条件的数据时,获取所述执行失败且死锁的数据对应的进程,并将所述进程输出;
[0026] 当存在执行失败且时间戳满足时间阈值条件的数据时,获取对应实际执行脚本的执行进度,并根据所述执行进度停止所述实际执行脚本的执行。
[0027] 在其中一个实施例中,所述操作对象包括应用层和系统层;所述执行所述实际执行脚本以对所述操作对象进行操作以得到执行结果,包括:
[0028] 执行所述实际执行脚本,以调用所述操作对象中的至少一个被调用脚本,且至少一个被调用脚本的输出信息重定向到指定文件;
[0029] 获取所述指定文件中存储的执行结果。
[0030] 在其中一个实施例中,所述接收操作请求,包括:
[0031] 当至少接收到两条操作请求,且所述操作请求之间存在先后顺序时,则配置所述操作请求的关联标志位;
[0032] 所述执行所述实际执行脚本以对所述操作对象进行操作以得到执行结果,包括:
[0033] 判断是否能读取到关联标志位;
[0034] 当读取到关联标志位时,执行在前的操作请求对应的实际执行脚本以对所述操作对象进行操作以得到执行结果;
[0035] 通过执行在前的操作请求对应的实际执行脚本执行回调反向通知执行在后的操作请求对应的实际执行脚本以对所述操作对象进行操作以得到执行结果。
[0036] 在其中一个实施例中,所述配置所述操作请求的关联标志位,包括:
[0037] 配置所述操作请求的关联标志位,并将所述关联标志位存放至共享存储空间中;
[0038] 所述执行所述实际执行脚本以对所述操作对象进行操作以得到执行结果,包括:
[0039] 通过至少两台执行器执行存在关联标志位的所述操作请求对应的实际执行脚本,且每台所述执行器执行一个所述实际执行脚本;
[0040] 当执行在前的操作请求对应的实际执行脚本执行完成后,接收执行在前的操作请求对应的实际执行脚本的执行回调指令,并基于所述执行回调指令获取所述共享存储空间中的关联标志位,基于所述关联标志位获取到执行在后的操作请求对应的实际执行脚本,并执行。
[0041] 在其中一个实施例中,所述执行所述实际执行脚本以对所述操作对象进行操作以得到执行结果之前,还包括:
[0042] 获取操作对象的权限管理信息;
[0043] 根据所述权限管理信息对所述操作请求的权限进行验证;
[0044] 当权限验证通过后,则继续执行所述实际执行脚本以对所述操作对象进行操作以得到执行结果。
[0045] 在其中一个实施例中,所述接收操作请求之后,还包括:
[0046] 判断所述操作请求对应的请求系统标识是否存储于白名单中;
[0047] 当所述操作请求对应的请求系统标识存储于白名单中时,则继续根据所述操作对象和操作信息选择对应的操作协议。
[0048] 在其中一个实施例中,所述根据所述操作对象和操作信息选择对应的操作协议,包括:
[0049] 根据所述操作对象和操作信息选择至少一个操作协议;
[0050] 所述将所述操作信息和所述操作协议进行封装得到实际执行脚本,包括:
[0051] 将所述操作信息封装至对应的至少一个所述操作协议对应的目标脚本中;
[0052] 将封装得到的多个目标脚本进行组合得到实际执行脚本组合。
[0053] 1在其中一个实施例中,所述执行所述实际执行脚本以对所述操作对象进行操作以得到执行结果之后,包括:
[0054] 将所述执行结果通过回调的方式返回至对应的请求系统中。
[0055] 在其中一个实施例中,所述接收操作请求之后,还包括:
[0056] 根据所述操作请求对应的请求系统标识将所述操作请求对应的执行结果获取功能,分配至对应的日志收集线程中。
[0057] 一种操作请求处理装置,所述装置包括:
[0058] 第一接收模块,用于接收操作请求,所述操作请求携带有操作对象和操作信息;
[0059] 选择模块,用于根据所述操作对象和操作信息选择对应的操作协议;
[0060] 封装模块,用于将所述操作信息和所述操作协议进行封装得到实际执行脚本;
[0061] 执行模块,用于执行所述实际执行脚本以对所述操作对象进行操作以得到执行结果。
[0062] 一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述的方法的步骤。
[0063] 一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述的方法的步骤。
[0064] 一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述的方法的步骤。
[0065] 上述操作请求处理方法、装置、设备、存储介质和程序产品,在接收操作请求之后,根据所述操作对象和操作信息选择对应的操作协议,并根据操作信息和操作协议进行封装得到实际执行脚本,以执行得到执行结果,这样不需要脚本配置,统一处理,满足不同的操作对应和操作信息,更加智能化。

附图说明

[0066] 图1为一个实施例中操作请求处理方法的应用环境图;
[0067] 图2为一个实施例中操作请求处理方法的流程示意图;
[0068] 图3为一个实施例中的操作请求处理方法的框架示意图;
[0069] 图4为一个实施例中应用层和系统层的操作请求处理方法的示意图;
[0070] 图5为一个实施例中操作请求处理装置的结构框图;
[0071] 图6为一个实施例中计算机设备的内部结构图。

具体实施方式

[0072] 为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
[0073] 本申请实施例提供的操作请求处理方法,可以应用于如图1所示的应用环境中。其中,请求系统102以及操作对象106通过网络与服务器104进行通信。其中操作对象可以存储服务器104需要处理的数据。其中操作对象106以图中的目标终端为例进行说明,请求系统102以图中的外部系统为例进行说明。其中服务器104接收请求系统102操作请求,操作请求携带有操作对象和操作信息;根据操作对象和操作信息选择对应的操作协议;将操作信息和操作协议进行封装得到实际执行脚本;执行实际执行脚本以对操作对象进行操作以得到执行结果。这样不需要脚本配置,统一处理,满足不同的操作对应和操作信息,更加智能化。
其中,请求系统102可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑、物联网设备和便携式可穿戴设备,物联网设备可为智能音箱、智能电视、智能空调、智能车载设备等。便携式可穿戴设备可为智能手表、智能手环、头戴设备等。服务器104可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
[0074] 在一个实施例中,如图2所示,提供了一种操作请求处理方法,以该方法应用于图1中的服务器为例进行说明,包括以下步骤:
[0075] S202:接收操作请求,操作请求携带有操作对象和操作信息。
[0076] 具体地,操作请求是外部系统发送至服务器,其用于对操作对象进行操作处理。其中操作对象可以包括数据库、应用层和系统层。操作信息则是对操作对象的具体的操作信息,其包括但不限于操作对象的编码类型以及对操作对象的具体操作。
[0077] 其中,可选地,本实施例中的服务器可以是执行器,其采用flask框架,搭建执行器标准服务,编写请求调用接口入口,支持http/https协议访问。
[0078] S204:根据操作对象和操作信息选择对应的操作协议。
[0079] 具体地,在服务器中存储有不同的操作协议,接口接收操作请求,接口中入参传递具体协议代码及其他参数,执行器后台动态切换为传递协议对应的实现模式。
[0080] 在其中一个实施例中,上述的操作协议可以包括路径校验、文件创建、文件上传、文件下载、文件读取、实时文件展示、文件删除、文件解压、模板脚本执行、文件上传目标服务器、文件下载目标服务器、文件打包目标服务器、端口检测、服务健康检测、服务名检测、服务器文件操作、oracle数据库连通性检测、mysql数据库连通性检测、国产分布式数据库检测、mysql脚本执行、oracle数据库脚本执行、死锁查询、失效包检测、失效包编译、文件内容追加、源命令执行、数据库信息查询下载、数据库授权、备份等其中至少一个。
[0081] S206:将操作信息和操作协议进行封装得到实际执行脚本。
[0082] 具体地,结合图3所示,其中图3为一个实施例中的操作请求处理方法的框架示意图,在该实施例中,将对应操作底层的原生指令,即操作信息包装成执行器的实际执行脚本,每个封装后的脚本对应一种约定的执行器内部协议规则,使执行器内部处理器能映射到对应的协议,与终端交互。每种规则协议上包含了各种转换参数等不同信息。让外部系统、执行器内部处理器、协议封装处理器、目标终端之间的权限互相隔离。
[0083] 结合图3,其中执行器包括执行器内部处理器和协议脚本封装处理器,其中执行器内部处理器亦可理解为执行器的入口处理器,用与请求系统交互,用来归并请求系统指令的统一来源,接收到请求系统的请求后,根据操作对象的标识应用层、系统层、数据库层、操作系统等指标,来动态映射到协议封装脚本执行器。
[0084] 协议封装脚本执行器可理解为用于执行器内部处理器与实际操作对象的交互,执行器内部处理器映射后的实际执行脚本转为预设定好的协议规则,与操作对象交互。
[0085] 其中,可选地,执行器部署于专门的隔离管控网段,生产上只允许执行器与生产终端(即操作对象)交互,外部系统(即请求系统)只包括指定配置了执行器白名单的主机,并且开通了网段防火墙相关权限的主机访问。
[0086] 在该实施例中,协议封装处理器将所获得的操作信息封装至对应的操作协议中以得到对应的实际执行脚本。具体地,操作协议包括数据库操作协议、系统层操作协议以及应用层操作协议。
[0087] 对于数据库操作协议,执行器中预先存储有支持不同数据库及不同数据库可执行脚本类型封装的执行协议脚,执行器根据操作对象和操作信息选择对应的操作协议,也即对应的执行脚本,优选地,执行器先根据操作对象选择操作协议的范围,然后根据操作信息中的操作名称从所确定的范围中选择对应的操作协议,最后将操作信息中的代码参数添加至对应的操作协议中得到实际执行协议。
[0088] 对于系统层操作协议和应用层操作协议,系统层的操作协议基于原生脚本封装对应协议所支持的功能,应用层的操作协议遵循将相近功能的原生命令作为一个集合的理念。其中操作信息是操作对象的脚本文件路径,其中执行器将操作对象的脚本文件路径作为参数封装至对应的操作协议中得到实际执行脚本,以可以调用操作对象中的脚本。
[0089] S208:执行实际执行脚本以对操作对象进行操作以得到执行结果。
[0090] 具体地,执行结果是指操作对象被操作后的结果。例如数据库中执行后的执行结果,或者是系统层和应用层在执行后的系统状态或者应用状态等等。
[0091] 上述操作请求处理方法,在接收操作请求之后,根据所述操作对象和操作信息选择对应的操作协议,并根据操作信息和操作协议进行封装得到实际执行脚本,以执行得到执行结果,这样不需要脚本配置,统一处理,满足不同的操作对应和操作信息,更加智能化。
[0092] 在其中一个实施例中,根据操作对象和操作信息选择对应的操作协议之前,还包括:接收预先编写的不同操作对象和分类的目标脚本;将目标脚本、不同操作对象和分类进行关联存储得到操作协议。
[0093] 具体地,预先编写的不同操作对象和分类的目标脚本是利用ansible技术,支持windows操作系统的特性,编写支持windows系统各协议原生的bat脚本,linux系统编写shell脚本,实现执行器根据参数区分同时兼容linux和windows。这样可以编写满足不同协议的执行命令脚本,通过执行器控制其他目标机器,统一操作,解决了一个执行器支持不同底层操作系统终端的智能化操作。
[0094] 其中,为了方便查询,执行器将不同操作对象和分类以及对应的目标脚本进行关联存储。操作对象是指数据库、系统层以及应用层。分类则是指具体的操作协议的代码类型,其中每个分类中可以包括不同名称的操作,如上文中的路径校验、文件创建、文件上传、文件下载等等。
[0095] 上述实施例中,预先存储的常规的预设脚本已经涵盖了自动化运维常用的指令,这样当接收到请求系统发送的请求后,则可以根据操作对象和操作信息等封装得到对应的实际执行脚本,统一接口,1、能同时支持ansible、shell、sqlplus、mysql通道的脚本执行,完美实现不同操作系统(windows\linux)上应用层、数据库层的执行,能独立部署。将数据库、应用的执行统一为一个整体,制定一套常用功能规则执行协议。
[0096] 在其中一个实施例中,将目标脚本、不同操作对象和分类进行关联存储得到操作协议之后,还包括:配置每一操作协议中的目标脚本的回调模式;执行实际执行脚本以对操作对象进行操作以得到执行结果,包括:执行实际执行脚本以对操作对象进行操作,并根据回调模式获取实际执行脚本对应的执行结果。
[0097] 在执行器处理器中每一个协议的原子操作结果可根据配置选择同步或异步回调服务模式,处理器内部将每一种协议对应的回调方式记录到处理器对应的conf目录下的配置文件中,处理器在启动时去初始化具体参数。
[0098] 具体地,原子操作结果是指组成操作协议的最小的单位,例如最小的动作。如上文中的文件上传等等。执行器配置每一操作协议中的目标脚本的回调模式,这样在执行对应的实际执行脚本时,可以根据实际脚本对应的目标脚本的回调模式来回调实际执行脚本的执行结果。
[0099] 上述实施例中,预先配置每一操作协议中的目标脚本的回调模式,使得对应的实际执行脚本的执行结果可以被回调输出,以对结果进行处理。
[0100] 在其中一个实施例中,操作对象包括数据库;执行实际执行脚本以对操作对象进行操作以得到执行结果,包括:执行实际执行脚本以对数据库进行操作,以使得数据库执行对应的操作并输出执行结果至日志文件;获取日志文件中存储的执行结果。
[0101] 具体地,数据库封装脚本原理是,在接收外部动态参数,即调用信息后,执行实际操作脚本前输出当前执行进程信息回写日志文件,实时记录数据库中的执行脚本的执行输出。不同的封装脚本适配对应的数据库类型(oracle\mysql、分布式国产数据库等),如oracle数据库针对不同类型脚本单独封装具体脚本(DML/DDL脚本,块脚本,维护类型脚本,plsql脚本),封装的脚本控制数据库sql执行结束后的提交和异常回滚操作。为了方便,举例其中一种数据库发布的封装脚本具体技术实现:目标脚本接收指定参数(用户名、密码、服务器地址、数据库连接端口、连接服务名、数据库脚本存放路径、日志记录路径);用sql进程查询语句查询执行进程信息,用于查看当前执行任务所处进程,便于死锁场景,kill当前进程;利用spool动态日志、执行记录追加。执行之后的日志信息获取加密返回,并存入执行时生成的关联文件xx.log;当此协议执行时,文件xx.log中的信息包含数据库执行的进度信息、当前进程信息、执行结果信息。
[0102] 在其中一个实施例中,执行实际执行脚本以对操作对象进行操作以得到执行结果之前,还包括:将实际执行脚本对应的数据存储至共享存储空间,且在执行结束后删除实际执行脚本对应的数据;方法还包括:扫描共享存储空间中是否存在执行失败且满足预设条件;当存在执行失败且满足死锁条件的数据时,获取执行失败且死锁的数据对应的进程,并将进程输出;当存在执行失败且时间戳满足时间阈值条件的数据时,获取对应实际执行脚本的执行进度,并根据执行进度停止实际执行脚本的执行。
[0103] 具体地,数据库标志位记录通过配置文件来进行,该配置文件命名为m.conf,当接收到数据库相关协议指令时,记录协议代码、关联标识唯一键(外部系统发送指令携带的业务号,一般由系统标识_协议码_时间戳_5位随机数生成)、时间戳、服务器、端口、序列号、成功标识(SUCCESS\FAIL)、死锁标识。执行结束后从文件中删除对应数据,处理器开启线程扫描m.conf配置中没有成功的并且死锁的数据,获取其进程id,回调给业务判定处理。扫描没有成功的并且时间戳与当前时间相隔24小时的数据,利用原生命令检查当前指令语句的执行进度,对主动停止进程,修改配置标志,并释放处理器资源,并回调业务,保证资源合理化。且日志文件分区存储,能接入多个外部系统,日志分区管理。
[0104] 上述实施例中,对于执行时间长达几个小时的脚本,为了防止执行命令发出后,出现线程僵死,回调无感知、资源不释放的异常,采取开启附属线程,定时轮询执行进度,缓存记录标志位游标,当发现进度长时间没有改变时,持久化存储标志位,并检查当前进程是死锁还是僵死,主动释放资源。
[0105] 在其中一个实施例中,操作对象包括应用层和系统层;执行实际执行脚本以对操作对象进行操作以得到执行结果,包括:执行实际执行脚本,以调用操作对象中的至少一个被调用脚本,且至少一个被调用脚本的输出信息重定向到指定文件;获取指定文件中存储的执行结果。
[0106] 具体地,参见图4所示,图4为一个实施例中应用层和系统层的操作请求处理方法的示意图,在该实施例中,操作对象的脚本文件路径将作为参数传入操作协议对应的目标脚本中,这里将封装目标脚本得到的实际执行脚本取名为A,操作对象中的脚本取名为B,A中获取B对应的路径作为参数,同时携带操作对象主机地址信息作为附加参数N,目标B中可能存在调用其他脚本C等链路环,A在调用B时,B的输出信息重定向到指定文件,错误结果信息重定向到文件或空设备中,B执行完成后,A会返回具体信息,同时A中根据执行的结果信息分析,判断成功还是失败,触发对执行器内部回调接口的请求,供执行器内部程序处理。当执行器收到两个串行指令时,如A1,A2,通过此机制就可以实现A2不用再执行器内部程序同一个线程中等待A1任务。返回结果约定与执行器处理结果条件保持一致。
[0107] 具体地,其中操作对象中的目标脚本(与上文中的执行器中的目标脚本不同)是操作对象上对应的实际脚本,不同应用系统各自不同,图中的B1,B2代表操作对象上的脚本文件,其中的内容可能根据对应应用系统或者系统层面脚本有脚本嵌套使用,这个是目标脚本存在的使用场景,脚本嵌套使用需保证B1,B2调用的C1,C2等是后台日志输出,这样协议脚本封装执行器与目标终端脚本B交互后,能获取最终的执行结果。执行器脚本A得到结果后会通知执行器处理器。且日志文件分区存储,能接入多个外部系统,日志分区管理。
[0108] 在其中一个实施例中,接收操作请求,包括:当至少接收到两条操作请求,且操作请求之间存在先后顺序时,则配置操作请求的关联标志位;执行实际执行脚本以对操作对象进行操作以得到执行结果,包括:判断是否能读取到关联标志位;当读取到关联标志位时,执行在前的操作请求对应的实际执行脚本以对操作对象进行操作以得到执行结果;通过执行在前的操作请求对应的实际执行脚本执行回调反向通知执行在后的操作请求对应的实际执行脚本以对操作对象进行操作以得到执行结果。
[0109] 具体地,执行器处理器包含接口类(提供外部的访问方式)、配置类(主机信息、白名单、权限、启动方式、回调方式)、数据类(用于存放临时数据)、协议脚本类(封装的不同协议的脚本模板)。执行器在启动时,初始化配置类文件,加载数据,接口类中的实现根据具体协议代码参数枚举到处理器中对应协议的实现,校验文件权限及匹配到具体执行协议脚本,同时提供回调接口处理类,来接收协议脚本执行器回调的结果。当处理器接收同时接收到两条不一样的指令,并且指令之间存在先后顺序时,处理器实现了指令数据记录临时文件信息标志位,指令运行时会先从标志临时文件获取标志位,判定当前指令具有关联指令,通过协议脚本执行回调来反向通知另一个指令,直到全部关联指令全部运行完毕,则删除标志位。
[0110] 举例:执行器同时接收到同一个业务系统发来的两条指令,A1,A2,执行器根据同一业务号,来对A1和A2排序,并保存应用标志位。
[0111] 在其中一个实施例中,配置操作请求的关联标志位,包括:配置操作请求的关联标志位,并将关联标志位存放至共享存储空间中;执行实际执行脚本以对操作对象进行操作以得到执行结果,包括:通过至少两台执行器执行存在关联标志位的操作请求对应的实际执行脚本,且每台执行器执行一个实际执行脚本;当执行在前的操作请求对应的实际执行脚本执行完成后,接收执行在前的操作请求对应的实际执行脚本的执行回调指令,并基于执行回调指令获取共享存储空间中的关联标志位,基于关联标志位获取到执行在后的操作请求对应的实际执行脚本,并执行。
[0112] 具体地,应用层和系统层的标志位通过配置文件的形式进行保存,具体地,协议代码、关联标识唯一键(外部系统发送指令携带的业务号,一般由系统标识_协议码_时间戳_5位随机数生成)、服务器、端口、序列号、成功标识(SUCCESS\FAIL)。比如执行器处理器同时接收两个指令(一个是上传压缩文件,一个是解压文件)由于执行器独立可扩展集群部署,当部署3台时(A\B\C),A收到一个上传压缩文件指令,B收到一个解压文件指令,3台执行器所在服务器共享一个NAS存储目录,用于存放临时数据文件,整个文件会记录这两条指令,业务方可以根据关联标识唯一键来将两条指令关联,通过序列号来校验先后,如果A的序列号在前,则先运行A,等处理器收到A的回调指令后,触发进行临时文件中的关联序列号紧跟其后的指令,以此类推。
[0113] 在其中一个实施例中,执行实际执行脚本以对操作对象进行操作以得到执行结果之前,还包括:获取操作对象的权限管理信息;根据权限管理信息对操作请求的权限进行验证;当权限验证通过后,则继续执行实际执行脚本以对操作对象进行操作以得到执行结果。
[0114] 具体地,通过约定ANSIBLE_FILE协议,获取linux、windows操作系统的操作对象的目录结构,根据操作对象的目录结构来进行权限控制。
[0115] 具体地,根据默认的目录文件权限,系统上文件对应的权限和属组,根据执行器连接操作对象的用户获取相应权限的目录和文件层级,加密获取格式化返回,同时根据外部系统定制化的权限分类,来校验是否当前请求携带具有当前目录或文件的查看、编辑、下载、删除等权限。处理器内部约定文件权限的权限码如:750,执行器根据外部系统传递的权限码与约定的文件权限码匹配,将校验之后具有对应权限的文件或目录标记并加密返回,外部业务系统可以直接对接执行器实现服务器文件可视化操作权限控制,安全操作。
[0116] 上述实施例中,加密读取linux、windows环境上目录结构文件,友好处理未知编码文件,加密传输,引入目录、文件操作的权限控制,解决不同人员不同文件的差异化、安全控制。
[0117] 在其中一个实施例中,接收操作请求之后,还包括:判断操作请求对应的请求系统标识是否存储于白名单中;当操作请求对应的请求系统标识存储于白名单中时,则继续根据操作对象和操作信息选择对应的操作协议。
[0118] 具体地,本实施例中,执行器接口统一接口权限控制、保证外部系统安全接入。独立分离的执行器内置白名单配置文件(white_ip.txt),通过对接入系统IP白名单配置。执行器支持热部署和冷部署两种模式,热部署时修改文件无需重启即刻生效。实现无感知升级。
[0119] 且外部运维类系统传递协议类型,调用执行器处理器统一开放接口,使得一个执行器可以对接多个外部系统。
[0120] 在其中一个实施例中,根据操作对象和操作信息选择对应的操作协议,包括:根据操作对象和操作信息选择至少一个操作协议;将操作信息和操作协议进行封装得到实际执行脚本,包括:将操作信息封装至对应的至少一个操作协议对应的目标脚本中;将封装得到的多个目标脚本进行组合得到实际执行脚本组合。
[0121] 本实施例中统一入口适配器根据上面的协议类型,动态适配具体的协议动作每一种协议类型为一个原子单位,外部系统可以根据业务需要来组合协议。比如应用系统发布动作,可以将多个协议进行组合得到实际执行脚本组合,以完成一个发布动作。
[0122] 在其中一个实施例中,执行实际执行脚本以对操作对象进行操作以得到执行结果之后,包括:将执行结果通过回调的方式返回至对应的请求系统中。
[0123] 执行器处理器运行结束后将具体运行结果及日志记录并返回外部接入系统,回调处理,这里的回调是外部业务系统传递的回调地址,是执行器与业务系统之间的通信。
[0124] 在其中一个实施例中,接收操作请求之后,还包括:根据操作请求对应的请求系统标识将操作请求对应的执行结果获取功能,分配至对应的日志收集线程中。
[0125] 具体地,执行器处理器中采用多线程,针对外部系统的接入定制化线程名称,在开启线程时开启标识系统对应的线程名称标记,通过线程标识来给不同接入系统提供日志收集分类功能。同时支持按照线程标识分目录来存储日志信息。处理器中日志分类管理,避免不同的外部接入系统所有的执行器日志混在一起,无法快速定位,当接入新的系统时,在处理器配置中新增源系统的系统标识,保证处理器接收到指令时从参数和配置中匹配标识,日志埋点的位置采用分支处理,不同系统往不同的文件中记录。
[0126] 应该理解的是,虽然如上的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
[0127] 基于同样的发明构思,本申请实施例还提供了一种用于实现上述所涉及的操作请求处理方法的操作请求处理装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个操作请求处理装置实施例中的具体限定可以参见上文中对于操作请求处理方法的限定,在此不再赘述。
[0128] 在一个实施例中,如图5所示,提供了一种操作请求处理装置,包括:第一接收模块501、选择模块502、封装模块503和执行模块504,其中:
[0129] 第一接收模块501,用于接收操作请求,操作请求携带有操作对象和操作信息;
[0130] 选择模块502,用于根据操作对象和操作信息选择对应的操作协议;
[0131] 封装模块503,用于将操作信息和操作协议进行封装得到实际执行脚本;
[0132] 执行模块504,用于执行实际执行脚本以对操作对象进行操作以得到执行结果。
[0133] 在其中一个实施例中,上述装置还包括:
[0134] 第二接收模块,用于接收预先编写的不同操作对象和分类的目标脚本;
[0135] 操作协议生成模块,用于将目标脚本、不同操作对象和分类进行关联存储得到操作协议。
[0136] 在其中一个实施例中,上述装置还包括:
[0137] 回调模式配置模块,用于配置每一操作协议中的目标脚本的回调模式;
[0138] 上述执行模块504还用于执行实际执行脚本以对操作对象进行操作,并根据回调模式获取实际执行脚本对应的执行结果。
[0139] 在其中一个实施例中,操作对象包括数据库;上述执行模块504包括:
[0140] 第一执行单元,用于执行实际执行脚本以对数据库进行操作,以使得数据库执行对应的操作并输出执行结果至日志文件;
[0141] 第一执行结果获取单元,用于获取日志文件中存储的执行结果。
[0142] 在其中一个实施例中,上述装置还包括:
[0143] 第一存储模块,用于将实际执行脚本对应的数据存储至共享存储空间,且在执行结束后删除实际执行脚本对应的数据;
[0144] 扫描模块,用于扫描共享存储空间中是否存在执行失败且满足预设条件;
[0145] 第一输出模块,用于当存在执行失败且满足死锁条件的数据时,获取执行失败且死锁的数据对应的进程,并将进程输出;当存在执行失败且时间戳满足时间阈值条件的数据时,获取对应实际执行脚本的执行进度,并根据执行进度停止实际执行脚本的执行。
[0146] 在其中一个实施例中,操作对象包括应用层和系统层;上述执行模块504包括:
[0147] 第二执行单元,用于执行实际执行脚本,以调用操作对象中的至少一个被调用脚本,且至少一个被调用脚本的输出信息重定向到指定文件;
[0148] 第二执行结果获取单元,用于获取指定文件中存储的执行结果。
[0149] 在其中一个实施例中,上述第一接收模块501用于当至少接收到两条操作请求,且操作请求之间存在先后顺序时,则配置操作请求的关联标志位;
[0150] 上述执行模块504包括:
[0151] 判断单元,用于判断是否能读取到关联标志位;
[0152] 第三执行单元,用于当读取到关联标志位时,执行在前的操作请求对应的实际执行脚本以对操作对象进行操作以得到执行结果;
[0153] 第一回调单元,用于通过执行在前的操作请求对应的实际执行脚本执行回调反向通知执行在后的操作请求对应的实际执行脚本以对操作对象进行操作以得到执行结果。
[0154] 在其中一个实施例中,上述第一接收模块501用于配置操作请求的关联标志位,并将关联标志位存放至共享存储空间中;
[0155] 上述执行模块504包括:
[0156] 第四执行单元,用于通过至少两台执行器执行存在关联标志位的操作请求对应的实际执行脚本,且每台执行器执行一个实际执行脚本;
[0157] 第五执行单元,用于当执行在前的操作请求对应的实际执行脚本执行完成后,接收执行在前的操作请求对应的实际执行脚本的执行回调指令,并基于执行回调指令获取共享存储空间中的关联标志位,基于关联标志位获取到执行在后的操作请求对应的实际执行脚本,并执行。
[0158] 在其中一个实施例中,上述装置还包括:
[0159] 信息获取单元,用于获取操作对象的权限管理信息;
[0160] 权限验证单元,用于根据权限管理信息对操作请求的权限进行验证;当权限验证通过后,则继续执行实际执行脚本以对操作对象进行操作以得到执行结果。
[0161] 在其中一个实施例中,上述装置还包括:
[0162] 判断模块,用于判断操作请求对应的请求系统标识是否存储于白名单中;当操作请求对应的请求系统标识存储于白名单中时,则继续根据操作对象和操作信息选择对应的操作协议。
[0163] 在其中一个实施例中,上述选择模块502用于根据操作对象和操作信息选择至少一个操作协议;
[0164] 上述封装模块503包括:
[0165] 封装单元,用于将操作信息封装至对应的至少一个操作协议对应的目标脚本中;
[0166] 组合单元,用于将封装得到的多个目标脚本进行组合得到实际执行脚本组合。
[0167] 在其中一个实施例中,上述装置还包括:
[0168] 结果返回模块,是将执行结果通过回调的方式返回至对应的请求系统中。
[0169] 在其中一个实施例中,上述装置还包括:
[0170] 线程分配模块,用于根据操作请求对应的请求系统标识将操作请求对应的执行结果获取功能,分配至对应的日志收集线程中。
[0171] 上述操作请求处理装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
[0172] 在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图6所示。该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质和内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储操作协议。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种操作请求处理方法。
[0173] 本领域技术人员可以理解,图6中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
[0174] 在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现以下步骤:接收操作请求,操作请求携带有操作对象和操作信息;根据操作对象和操作信息选择对应的操作协议;将操作信息和操作协议进行封装得到实际执行脚本;执行实际执行脚本以对操作对象进行操作以得到执行结果。
[0175] 在一个实施例中,处理器执行计算机程序时所实现的根据操作对象和操作信息选择对应的操作协议之前,还包括:接收预先编写的不同操作对象和分类的目标脚本;将目标脚本、不同操作对象和分类进行关联存储得到操作协议。
[0176] 在一个实施例中,处理器执行计算机程序时所实现的将目标脚本、不同操作对象和分类进行关联存储得到操作协议之后,还包括:配置每一操作协议中的目标脚本的回调模式;处理器执行计算机程序时所实现的执行实际执行脚本以对操作对象进行操作以得到执行结果,包括:执行实际执行脚本以对操作对象进行操作,并根据回调模式获取实际执行脚本对应的执行结果。
[0177] 在一个实施例中,处理器执行计算机程序时所实现的操作对象包括数据库;处理器执行计算机程序时所实现的执行实际执行脚本以对操作对象进行操作以得到执行结果,包括:执行实际执行脚本以对数据库进行操作,以使得数据库执行对应的操作并输出执行结果至日志文件;获取日志文件中存储的执行结果。
[0178] 在一个实施例中,处理器执行计算机程序时所实现的执行实际执行脚本以对操作对象进行操作以得到执行结果之前,还包括:将实际执行脚本对应的数据存储至共享存储空间,且在执行结束后删除实际执行脚本对应的数据;处理器执行计算机程序时还实现以下步骤:扫描共享存储空间中是否存在执行失败且满足预设条件;当存在执行失败且满足死锁条件的数据时,获取执行失败且死锁的数据对应的进程,并将进程输出;当存在执行失败且时间戳满足时间阈值条件的数据时,获取对应实际执行脚本的执行进度,并根据执行进度停止实际执行脚本的执行。
[0179] 在一个实施例中,处理器执行计算机程序时所实现的操作对象包括应用层和系统层;处理器执行计算机程序时所实现的执行实际执行脚本以对操作对象进行操作以得到执行结果,包括:执行实际执行脚本,以调用操作对象中的至少一个被调用脚本,且至少一个被调用脚本的输出信息重定向到指定文件;获取指定文件中存储的执行结果。
[0180] 在一个实施例中,处理器执行计算机程序时所实现的接收操作请求,包括:当至少接收到两条操作请求,且操作请求之间存在先后顺序时,则配置操作请求的关联标志位;处理器执行计算机程序时所实现的执行实际执行脚本以对操作对象进行操作以得到执行结果,包括:判断是否能读取到关联标志位;当读取到关联标志位时,执行在前的操作请求对应的实际执行脚本以对操作对象进行操作以得到执行结果;通过执行在前的操作请求对应的实际执行脚本执行回调反向通知执行在后的操作请求对应的实际执行脚本以对操作对象进行操作以得到执行结果。
[0181] 在一个实施例中,处理器执行计算机程序时所实现的配置操作请求的关联标志位,包括:配置操作请求的关联标志位,并将关联标志位存放至共享存储空间中;处理器执行计算机程序时所实现的执行实际执行脚本以对操作对象进行操作以得到执行结果,包括:通过至少两台执行器执行存在关联标志位的操作请求对应的实际执行脚本,且每台执行器执行一个实际执行脚本;当执行在前的操作请求对应的实际执行脚本执行完成后,接收执行在前的操作请求对应的实际执行脚本的执行回调指令,并基于执行回调指令获取共享存储空间中的关联标志位,基于关联标志位获取到执行在后的操作请求对应的实际执行脚本,并执行。
[0182] 在一个实施例中,处理器执行计算机程序时所实现的执行实际执行脚本以对操作对象进行操作以得到执行结果之前,还包括:获取操作对象的权限管理信息;根据权限管理信息对操作请求的权限进行验证;当权限验证通过后,则继续执行实际执行脚本以对操作对象进行操作以得到执行结果。
[0183] 在一个实施例中,处理器执行计算机程序时所实现的接收操作请求之后,还包括:判断操作请求对应的请求系统标识是否存储于白名单中;当操作请求对应的请求系统标识存储于白名单中时,则继续根据操作对象和操作信息选择对应的操作协议。
[0184] 在一个实施例中,处理器执行计算机程序时所实现的根据操作对象和操作信息选择对应的操作协议,包括:根据操作对象和操作信息选择至少一个操作协议;处理器执行计算机程序时所实现的将操作信息和操作协议进行封装得到实际执行脚本,包括:将操作信息封装至对应的至少一个操作协议对应的目标脚本中;将封装得到的多个目标脚本进行组合得到实际执行脚本组合。
[0185] 在一个实施例中,处理器执行计算机程序时所实现的执行实际执行脚本以对操作对象进行操作以得到执行结果之后,包括:将执行结果通过回调的方式返回至对应的请求系统中。
[0186] 在一个实施例中,处理器执行计算机程序时所实现的接收操作请求之后,还包括:根据操作请求对应的请求系统标识将操作请求对应的执行结果获取功能,分配至对应的日志收集线程中。
[0187] 在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:接收操作请求,操作请求携带有操作对象和操作信息;根据操作对象和操作信息选择对应的操作协议;将操作信息和操作协议进行封装得到实际执行脚本;执行实际执行脚本以对操作对象进行操作以得到执行结果。
[0188] 在一个实施例中,计算机程序被处理器执行时所实现的根据操作对象和操作信息选择对应的操作协议之前,还包括:接收预先编写的不同操作对象和分类的目标脚本;将目标脚本、不同操作对象和分类进行关联存储得到操作协议。
[0189] 在一个实施例中,计算机程序被处理器执行时所实现的将目标脚本、不同操作对象和分类进行关联存储得到操作协议之后,还包括:配置每一操作协议中的目标脚本的回调模式;计算机程序被处理器执行时所实现的执行实际执行脚本以对操作对象进行操作以得到执行结果,包括:执行实际执行脚本以对操作对象进行操作,并根据回调模式获取实际执行脚本对应的执行结果。
[0190] 在一个实施例中,计算机程序被处理器执行时所实现的操作对象包括数据库;计算机程序被处理器执行时所实现的执行实际执行脚本以对操作对象进行操作以得到执行结果,包括:执行实际执行脚本以对数据库进行操作,以使得数据库执行对应的操作并输出执行结果至日志文件;获取日志文件中存储的执行结果。
[0191] 在一个实施例中,计算机程序被处理器执行时所实现的执行实际执行脚本以对操作对象进行操作以得到执行结果之前,还包括:将实际执行脚本对应的数据存储至共享存储空间,且在执行结束后删除实际执行脚本对应的数据;计算机程序被处理器执行时还实现以下步骤:扫描共享存储空间中是否存在执行失败且满足预设条件;当存在执行失败且满足死锁条件的数据时,获取执行失败且死锁的数据对应的进程,并将进程输出;当存在执行失败且时间戳满足时间阈值条件的数据时,获取对应实际执行脚本的执行进度,并根据执行进度停止实际执行脚本的执行。
[0192] 在一个实施例中,计算机程序被处理器执行时所实现的操作对象包括应用层和系统层;计算机程序被处理器执行时所实现的执行实际执行脚本以对操作对象进行操作以得到执行结果,包括:执行实际执行脚本,以调用操作对象中的至少一个被调用脚本,且至少一个被调用脚本的输出信息重定向到指定文件;获取指定文件中存储的执行结果。
[0193] 在一个实施例中,计算机程序被处理器执行时所实现的接收操作请求,包括:当至少接收到两条操作请求,且操作请求之间存在先后顺序时,则配置操作请求的关联标志位;计算机程序被处理器执行时所实现的执行实际执行脚本以对操作对象进行操作以得到执行结果,包括:判断是否能读取到关联标志位;当读取到关联标志位时,执行在前的操作请求对应的实际执行脚本以对操作对象进行操作以得到执行结果;通过执行在前的操作请求对应的实际执行脚本执行回调反向通知执行在后的操作请求对应的实际执行脚本以对操作对象进行操作以得到执行结果。
[0194] 在一个实施例中,计算机程序被处理器执行时所实现的配置操作请求的关联标志位,包括:配置操作请求的关联标志位,并将关联标志位存放至共享存储空间中;计算机程序被处理器执行时所实现的执行实际执行脚本以对操作对象进行操作以得到执行结果,包括:通过至少两台执行器执行存在关联标志位的操作请求对应的实际执行脚本,且每台执行器执行一个实际执行脚本;当执行在前的操作请求对应的实际执行脚本执行完成后,接收执行在前的操作请求对应的实际执行脚本的执行回调指令,并基于执行回调指令获取共享存储空间中的关联标志位,基于关联标志位获取到执行在后的操作请求对应的实际执行脚本,并执行。
[0195] 在一个实施例中,计算机程序被处理器执行时所实现的执行实际执行脚本以对操作对象进行操作以得到执行结果之前,还包括:获取操作对象的权限管理信息;根据权限管理信息对操作请求的权限进行验证;当权限验证通过后,则继续执行实际执行脚本以对操作对象进行操作以得到执行结果。
[0196] 在一个实施例中,计算机程序被处理器执行时所实现的接收操作请求之后,还包括:判断操作请求对应的请求系统标识是否存储于白名单中;当操作请求对应的请求系统标识存储于白名单中时,则继续根据操作对象和操作信息选择对应的操作协议。
[0197] 在一个实施例中,计算机程序被处理器执行时所实现的根据操作对象和操作信息选择对应的操作协议,包括:根据操作对象和操作信息选择至少一个操作协议;计算机程序被处理器执行时所实现的将操作信息和操作协议进行封装得到实际执行脚本,包括:将操作信息封装至对应的至少一个操作协议对应的目标脚本中;将封装得到的多个目标脚本进行组合得到实际执行脚本组合。
[0198] 在一个实施例中,计算机程序被处理器执行时所实现的执行实际执行脚本以对操作对象进行操作以得到执行结果之后,包括:将执行结果通过回调的方式返回至对应的请求系统中。
[0199] 在一个实施例中,计算机程序被处理器执行时所实现的接收操作请求之后,还包括:根据操作请求对应的请求系统标识将操作请求对应的执行结果获取功能,分配至对应的日志收集线程中。
[0200] 在一个实施例中,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现以下步骤:接收操作请求,操作请求携带有操作对象和操作信息;根据操作对象和操作信息选择对应的操作协议;将操作信息和操作协议进行封装得到实际执行脚本;执行实际执行脚本以对操作对象进行操作以得到执行结果。
[0201] 在一个实施例中,计算机程序被处理器执行时所实现的根据操作对象和操作信息选择对应的操作协议之前,还包括:接收预先编写的不同操作对象和分类的目标脚本;将目标脚本、不同操作对象和分类进行关联存储得到操作协议。
[0202] 在一个实施例中,计算机程序被处理器执行时所实现的将目标脚本、不同操作对象和分类进行关联存储得到操作协议之后,还包括:配置每一操作协议中的目标脚本的回调模式;计算机程序被处理器执行时所实现的执行实际执行脚本以对操作对象进行操作以得到执行结果,包括:执行实际执行脚本以对操作对象进行操作,并根据回调模式获取实际执行脚本对应的执行结果。
[0203] 在一个实施例中,计算机程序被处理器执行时所实现的操作对象包括数据库;计算机程序被处理器执行时所实现的执行实际执行脚本以对操作对象进行操作以得到执行结果,包括:执行实际执行脚本以对数据库进行操作,以使得数据库执行对应的操作并输出执行结果至日志文件;获取日志文件中存储的执行结果。
[0204] 在一个实施例中,计算机程序被处理器执行时所实现的执行实际执行脚本以对操作对象进行操作以得到执行结果之前,还包括:将实际执行脚本对应的数据存储至共享存储空间,且在执行结束后删除实际执行脚本对应的数据;计算机程序被处理器执行时还实现以下步骤:扫描共享存储空间中是否存在执行失败且满足预设条件;当存在执行失败且满足死锁条件的数据时,获取执行失败且死锁的数据对应的进程,并将进程输出;当存在执行失败且时间戳满足时间阈值条件的数据时,获取对应实际执行脚本的执行进度,并根据执行进度停止实际执行脚本的执行。
[0205] 在一个实施例中,计算机程序被处理器执行时所实现的操作对象包括应用层和系统层;计算机程序被处理器执行时所实现的执行实际执行脚本以对操作对象进行操作以得到执行结果,包括:执行实际执行脚本,以调用操作对象中的至少一个被调用脚本,且至少一个被调用脚本的输出信息重定向到指定文件;获取指定文件中存储的执行结果。
[0206] 在一个实施例中,计算机程序被处理器执行时所实现的接收操作请求,包括:当至少接收到两条操作请求,且操作请求之间存在先后顺序时,则配置操作请求的关联标志位;计算机程序被处理器执行时所实现的执行实际执行脚本以对操作对象进行操作以得到执行结果,包括:判断是否能读取到关联标志位;当读取到关联标志位时,执行在前的操作请求对应的实际执行脚本以对操作对象进行操作以得到执行结果;通过执行在前的操作请求对应的实际执行脚本执行回调反向通知执行在后的操作请求对应的实际执行脚本以对操作对象进行操作以得到执行结果。
[0207] 在一个实施例中,计算机程序被处理器执行时所实现的配置操作请求的关联标志位,包括:配置操作请求的关联标志位,并将关联标志位存放至共享存储空间中;计算机程序被处理器执行时所实现的执行实际执行脚本以对操作对象进行操作以得到执行结果,包括:通过至少两台执行器执行存在关联标志位的操作请求对应的实际执行脚本,且每台执行器执行一个实际执行脚本;当执行在前的操作请求对应的实际执行脚本执行完成后,接收执行在前的操作请求对应的实际执行脚本的执行回调指令,并基于执行回调指令获取共享存储空间中的关联标志位,基于关联标志位获取到执行在后的操作请求对应的实际执行脚本,并执行。
[0208] 在一个实施例中,计算机程序被处理器执行时所实现的执行实际执行脚本以对操作对象进行操作以得到执行结果之前,还包括:获取操作对象的权限管理信息;根据权限管理信息对操作请求的权限进行验证;当权限验证通过后,则继续执行实际执行脚本以对操作对象进行操作以得到执行结果。
[0209] 在一个实施例中,计算机程序被处理器执行时所实现的接收操作请求之后,还包括:判断操作请求对应的请求系统标识是否存储于白名单中;当操作请求对应的请求系统标识存储于白名单中时,则继续根据操作对象和操作信息选择对应的操作协议。
[0210] 在一个实施例中,计算机程序被处理器执行时所实现的根据操作对象和操作信息选择对应的操作协议,包括:根据操作对象和操作信息选择至少一个操作协议;计算机程序被处理器执行时所实现的将操作信息和操作协议进行封装得到实际执行脚本,包括:将操作信息封装至对应的至少一个操作协议对应的目标脚本中;将封装得到的多个目标脚本进行组合得到实际执行脚本组合。
[0211] 在一个实施例中,计算机程序被处理器执行时所实现的执行实际执行脚本以对操作对象进行操作以得到执行结果之后,包括:将执行结果通过回调的方式返回至对应的请求系统中。
[0212] 在一个实施例中,计算机程序被处理器执行时所实现的接收操作请求之后,还包括:根据操作请求对应的请求系统标识将操作请求对应的执行结果获取功能,分配至对应的日志收集线程中。
[0213] 需要说明的是,本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据。
[0214] 本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read‑Only Memory,ROM)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(ReRAM)、磁变存储器(Magnetoresistive Random Access Memory,MRAM)、铁电存储器(Ferroelectric Random Access Memory,FRAM)、相变存储器(Phase Change Memory,PCM)、石墨烯存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器等。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic Random Access Memory,DRAM)等。本申请所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本申请所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。
[0215] 以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
[0216] 以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。