首页> 中国专利> 脚本执行方法、装置、电子设备及存储介质

脚本执行方法、装置、电子设备及存储介质

摘要

本发明涉及数据处理,提供一种脚本执行方法、装置、电子设备及存储介质。该方法能够从脚本执行请求中提取多个脚本名称,从版本控制系统中获取与多个脚本名称对应的多个待执行脚本,并进行语法校验,确定目标脚本,基于多个脚本名称对目标脚本排序,得到脚本列表,依照从前至后的顺序执行脚本列表中的目标脚本,当检测到任意脚本执行失败时,中断任意脚本的执行,确定任意脚本执行失败时所处的执行环境,并确定任意脚本被中断执行的断点位置,将任意脚本、执行环境及断点位置确定为脚本执行请求的响应结果。本发明提高脚本执行效率及节省资源。此外,本发明还涉及区块链技术,所述响应结果可存储于区块链中。

著录项

  • 公开/公告号CN112181485A

    专利类型发明专利

  • 公开/公告日2021-01-05

    原文格式PDF

  • 申请/专利权人 平安银行股份有限公司;

    申请/专利号CN202011126150.9

  • 发明设计人 华洪亮;汪小伏;

    申请日2020-10-20

  • 分类号G06F8/71(20180101);G06F9/455(20060101);G06F21/60(20130101);

  • 代理机构44334 深圳市赛恩倍吉知识产权代理有限公司;

  • 代理人迟珊珊

  • 地址 518000 广东省深圳市罗湖区深南东路5047号

  • 入库时间 2023-06-19 09:27:35

说明书

技术领域

本发明涉及数据处理技术领域,尤其涉及一种脚本执行方法、装置、电子设备及存储介质。

背景技术

在系统开发过程中一般需要有多个环境,如开发环境、系统测试环境、用户测试环境等,开发人员一般在开发环境中执行脚本,而系统测试环境、用户测试环境则一般需要通过测试经理或者版本经理执行,不管是开发人员、测试人员还是版本经理,目前都是通过手工复制脚本到PLSQL工具中执行,然而,由于不同类型的脚本需要利用不同的工具进行执行,因此,脚本的顺利执行有赖于专业人员判别脚本类型,降低脚本执行效率,影响开发进度。同时不同的环境需要不同的用户角色参与,因此,当开发人员在开发环境完成脚本开发后忘记通知测试人员在测试环境中进行执行时,将会导致测试环境相关功能无法测试,另外,现有的脚本执行方案还可能导致脚本重复执行,进而浪费资源。

发明内容

鉴于以上内容,有必要提供一种脚本执行方法、装置、电子设备及存储介质,不仅能够提高脚本执行效率,还能够避免脚本出现漏执行及重复执行的问题,节省了资源。

一方面,本发明提出一种脚本执行方法,所述脚本执行方法包括:

当接收到脚本执行请求时,从所述脚本执行请求中提取多个脚本名称;

从版本控制系统中获取与所述多个脚本名称对应的多个待执行脚本;

对所述多个待执行脚本进行语法校验,并将通过语法校验的待执行脚本确定为目标脚本;

基于所述多个脚本名称对所述目标脚本排序,得到脚本列表;

依照从前至后的顺序执行所述脚本列表中的目标脚本;

当检测到任意脚本执行失败时,中断所述任意脚本的执行;

确定所述任意脚本执行失败时所处的执行环境,并确定所述任意脚本被中断执行的断点位置;

将所述任意脚本、所述执行环境及所述断点位置确定为所述脚本执行请求的响应结果。

根据本发明优选实施例,所述从所述脚本执行请求中提取多个脚本名称包括:

获取线程连接池,并从所述线程连接池中获取任意闲置线程;

利用所述任意闲置线程解析所述脚本执行请求的报文,得到所述脚本执行请求携带的报文信息;

获取预设标签,并从所述报文信息中获取与所述预设标签对应的信息,作为所述多个脚本名称。

根据本发明优选实施例,所述从版本控制系统中获取与所述多个脚本名称对应的多个待执行脚本包括:

确定所述版本控制系统中的数据库所在的数据库路径;

从所述数据库路径中获取配置表;

遍历所述配置表中的文件名称,并将遍历到的与所述多个脚本名称相同的文件名称确定为多个目标名称;

获取所述多个目标名称的多个文件存储路径,并从所述文件存储路径中获取所述多个待执行脚本。

根据本发明优选实施例,所述对所述多个待执行脚本进行语法校验包括:

获取每个待执行脚本中的脚本指令;

确定所述脚本指令的数据量,并根据所述数据量确定执行线程;

确定所述脚本指令所属的指令类型,根据所述指令类型获取预设格式;

利用所述执行线程检测所述脚本指令是否符合所述预设格式;

当检测到任意脚本指令不符合所述预设格式时,确定所述任意脚本指令未通过语法校验,并将所述任意脚本指令所在的待执行脚本确定为错误脚本。

根据本发明优选实施例,所述方法还包括:

提取所述错误脚本中未通过语法校验的目标指令,并确定所述目标指令所在的指令位置;

根据所述目标指令及所述指令位置生成所述错误脚本的提示信息;

将所述提示信息发送至指定联系人的终端设备。

根据本发明优选实施例,所述基于所述多个脚本名称对所述目标脚本排序,得到脚本列表包括:

确定所述多个脚本名称的创建时间,并确定所述创建时间相同的脚本名称的目标数量;

当所述目标数量大于预设值时,提取每个脚本名称中的序号,依照所述序号从小至大的顺序对所述目标脚本进行排序,得到所述脚本列表;或者

当所述目标数量小于或者等于所述预设值时,依照所述创建时间从小至大的顺序对所述目标脚本进行排序,得到所述脚本列表。

根据本发明优选实施例,在将所述任意脚本、所述执行环境及所述断点位置确定为所述脚本执行请求的响应结果后,所述方法还包括:

采用对称加密算法对所述响应结果进行加密处理,得到密文,并检测所述执行环境所属的环境类型;

当所述执行环境为开发环境时,确定所述任意脚本的创建用户,并将所述密文发送至所述创建用户的设备;或者

当所述执行环境为测试环境时,确定所述任意脚本的测试用户,发送所述密文至所述测试用户的设备,并接收所述测试用户提交的测试报告,将所述测试报告发送至所述创建用户的设备。

另一方面,本发明还提出一种脚本执行装置,所述脚本执行装置包括:

提取单元,用于当接收到脚本执行请求时,从所述脚本执行请求中提取多个脚本名称;

获取单元,用于从版本控制系统中获取与所述多个脚本名称对应的多个待执行脚本;

确定单元,用于对所述多个待执行脚本进行语法校验,并将通过语法校验的待执行脚本确定为目标脚本;

排序单元,用于基于所述多个脚本名称对所述目标脚本排序,得到脚本列表;

执行单元,用于依照从前至后的顺序执行所述脚本列表中的目标脚本;

中断单元,用于当检测到任意脚本执行失败时,中断所述任意脚本的执行;

所述确定单元,还用于确定所述任意脚本执行失败时所处的执行环境,并确定所述任意脚本被中断执行的断点位置;

所述确定单元,还用于将所述任意脚本、所述执行环境及所述断点位置确定为所述脚本执行请求的响应结果。

另一方面,本发明还提出一种电子设备,所述电子设备包括:

存储器,存储计算机可读指令;及

处理器,执行所述存储器中存储的计算机可读指令以实现所述脚本执行方法。

另一方面,本发明还提出一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机可读指令,所述计算机可读指令被电子设备中的处理器执行以实现所述脚本执行方法。

由以上技术方案可以看出,本发明能够当接收到脚本执行请求时,从所述脚本执行请求中提取多个脚本名称,能够全面获取到所有需要进行处理的脚本,从版本控制系统中获取与所述多个脚本名称对应的多个待执行脚本,由于在脚本完成开发后开发人员会及时将脚本上传到版本控制系统,为此,通过从版本控制系统能够获取到最新的与脚本名称对应的脚本,对所述多个待执行脚本进行语法校验,并将通过语法校验的待执行脚本确定为目标脚本,在执行脚本之前校验脚本的语法,能够避免因语法错误而造成脚本执行失败,从而提高脚本执行成功率,避免多次重复执行脚本造成线程的占用,基于所述多个脚本名称对所述目标脚本排序,得到脚本列表,依照从前至后的顺序执行所述脚本列表中的目标脚本,当检测到任意脚本执行失败时,中断所述任意脚本的执行,确定所述任意脚本执行失败时所处的执行环境,并确定所述任意脚本被中断执行的断点位置,通过及时中断任意脚本的执行,能够准确确定所述执行环境及所述断点位置,从而在脚本完成修复后能够从所述断点位置开始执行,避免重复执行脚本中的脚本程序,同时,通过确定所述断点位置有利于提醒开发人员出现问题的具体位置,将所述任意脚本、所述执行环境及所述断点位置确定为所述脚本执行请求的响应结果。本发明实现了脚本的自动化执行,能够避免脚本出现漏执行及重复执行的问题,节省了资源,同时,脚本的顺利执行无需依赖于专业人员的手动执行,能够提高脚本执行效率,从而加快开发进度。

附图说明

图1是本发明脚本执行方法的较佳实施例的流程图。

图2是本发明脚本执行装置的较佳实施例的功能模块图。

图3是本发明实现脚本执行方法的较佳实施例的电子设备的结构示意图。

具体实施方式

为了使本发明的目的、技术方案和优点更加清楚,下面结合附图和具体实施例对本发明进行详细描述。

如图1所示,是本发明脚本执行方法的较佳实施例的流程图。根据不同的需求,该流程图中步骤的顺序可以改变,某些步骤可以省略。

所述脚本执行方法应用于一个或者多个电子设备中,所述电子设备是一种能够按照事先设定或存储的计算机可读指令,自动进行数值计算和/或信息处理的设备,其硬件包括但不限于微处理器、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程门阵列(Field-Programmable Gate Array,FPGA)、数字处理器(DigitalSignal Processor,DSP)、嵌入式设备等。

所述电子设备可以是任何一种可与用户进行人机交互的电子产品,例如,个人计算机、平板电脑、智能手机、个人数字助理(Personal Digital Assistant,PDA)、游戏机、交互式网络电视(Internet Protocol Television,IPTV)、智能穿戴式设备等。

所述电子设备可以包括网络设备和/或用户设备。其中,所述网络设备包括,但不限于单个网络电子设备、多个网络电子设备组成的电子设备组或基于云计算(CloudComputing)的由大量主机或网络电子设备构成的云。

所述电子设备所处的网络包括,但不限于:互联网、广域网、城域网、局域网、虚拟专用网络(Virtual Private Network,VPN)等。

S10,当接收到脚本执行请求时,从所述脚本执行请求中提取多个脚本名称。

在本发明的至少一个实施例中,所述脚本执行请求中携带的报文信息包括:请求编号、预设标签及所述多个脚本名称。

进一步地,所述多个脚本名称是指多个脚本文件的文件名称。所述多个脚本名称的形式可以是序号-UM号。例如,脚本名称为3-jiaoben231。

在本发明的至少一个实施例中,所述电子设备从所述脚本执行请求中提取多个脚本名称包括:

获取线程连接池,并从所述线程连接池中获取任意闲置线程;

利用所述任意闲置线程解析所述脚本执行请求的报文,得到所述脚本执行请求携带的报文信息;

获取预设标签,并从所述报文信息中获取与所述预设标签对应的信息,作为所述多个脚本名称。

其中,所述预设标签是指预先定义好的标签,例如,所述预设标签可以是name。

通过从线程连接池中获取闲置线程,能够节省创建闲置线程的时间,进而利用闲置线程处理所述脚本执行请求的报文,节省线程处理其他优先级较高的请求,同时,无需解析整个脚本执行请求,提高脚本执行请求的解析效率,通过预设标签与脚本名称的映射关系,能够准确从所述脚本执行请求中提取所述多个脚本名称。

在本发明的至少一个实施例中,通过获取所述多个脚本名称,能够全面获取到所有需要进行处理的脚本

S11,从版本控制系统中获取与所述多个脚本名称对应的多个待执行脚本。

在本发明的至少一个实施例中,所述版本控制系统(version control system)是一种记录一个或若干个文件内容变化,以便将来查阅特定版本修订情况的系统。所述版本控制系统不仅可以应用于软件源代码的文本文件,而且可以对任何类型的文件进行版本控制。例如:所述版本控制系统可以包括,但不限于:svn,git等。

在本发明的至少一个实施例中,所述多个待执行脚本可以包括数据库脚本。

在本发明的至少一个实施例中,所述电子设备从版本控制系统中获取与所述多个脚本名称对应的多个待执行脚本包括:

确定所述版本控制系统中的数据库所在的数据库路径;

从所述数据库路径中获取配置表;

遍历所述配置表中的文件名称,并将遍历到的与所述多个脚本名称相同的文件名称确定为多个目标名称;

获取所述多个目标名称的多个文件存储路径,并从所述文件存储路径中获取所述多个待执行脚本。

其中,所述配置表中存储多个文件名称及每个文件名称的文件存储路径。

通过上述实施方式,能够快速并准确地获取到所述多个待执行脚本。

在本发明的至少一个实施例中,由于在脚本完成开发后开发人员会及时将脚本上传到版本控制系统,为此,通过从版本控制系统能够获取到最新的与脚本名称对应的脚本。

S12,对所述多个待执行脚本进行语法校验,并将通过语法校验的待执行脚本确定为目标脚本。

在本发明的至少一个实施例中,所述目标脚本是指通过格式等语法校验的待执行脚本。

在本发明的至少一个实施例中,所述电子设备对所述多个待执行脚本进行语法校验包括:

获取每个待执行脚本中的脚本指令;

确定所述脚本指令的数据量,并根据所述数据量确定执行线程;

确定所述脚本指令所属的指令类型,根据所述指令类型获取预设格式;

利用所述执行线程检测所述脚本指令是否符合所述预设格式;

当检测到任意脚本指令不符合所述预设格式时,确定所述任意脚本指令未通过语法校验,并将所述任意脚本指令所在的待执行脚本确定为错误脚本。

其中,所述指令类型可以包括,但不限于:JAVA类型、C语言类型等。

进一步地,所述预设格式是指所述指令类型特有的指令格式。

通过上述实施方式,能够根据脚本指令的数据量确定出合适的执行线程,有利于待执行脚本的语法校验。

在本发明的至少一个实施例中,所述方法还包括:

提取所述错误脚本中未通过语法校验的目标指令,并确定所述目标指令所在的指令位置;

根据所述目标指令及所述指令位置生成所述错误脚本的提示信息;

将所述提示信息发送至指定联系人的终端设备。

其中,所述指定联系人可以是负责脚本开发的开发人员。

通过上述实施方式,能够在待执行脚本未通过语法校验时,及时获取到造成待执行脚本未通过校验的目标指令,并将所述目标指令及时发送至所述指定联系人的终端设备,起到提示作用。

S13,基于所述多个脚本名称对所述目标脚本排序,得到脚本列表。

在本发明的至少一个实施例中,所述脚本列表存储所述目标脚本及所述目标脚本在所述脚本列表中的序号。

在本发明的至少一个实施例中,所述电子设备基于所述多个脚本名称对所述目标脚本排序,得到脚本列表包括:

确定所述多个脚本名称的创建时间,并确定所述创建时间相同的脚本名称的目标数量;

当所述目标数量大于预设值时,提取每个脚本名称中的序号,依照所述序号从小至大的顺序对所述目标脚本进行排序,得到所述脚本列表;或者

当所述目标数量小于或者等于所述预设值时,依照所述创建时间从小至大的顺序对所述目标脚本进行排序,得到所述脚本列表。

其中,所述预设值为正整数,所述预设值通常设置为1。

通过上述实施方式,能够在所述目标数量小于或者等于所述预设值时,直接根据脚本名称的创建时间对所述目标脚本进行排序,而无需提取脚本名称中的序号,提高排序效率。

在本发明的至少一个实施例中,通过对所述目标脚本进行排序,使得所述目标脚本能够按照一定的逻辑顺序执行,让脚本的执行更加规范,有利于脚本的管理。

S14,依照从前至后的顺序执行所述脚本列表中的目标脚本。

在本发明的至少一个实施例中,例如,所述脚本列表为序号1:目标脚本A;序号2:目标脚本B;序号3:目标脚本C。因此,所述电子设备依照从前至后的顺序,先执行所述目标脚本A,再执行所述目标脚本B,最后执行所述目标脚本C。

S15,当检测到任意脚本执行失败时,中断所述任意脚本的执行。

在本发明的至少一个实施例中,所述目标脚本在执行过程中,可能会因为所述目标脚本的语法错误等原因出现所述目标脚本执行失败的情况。当所述任意脚本执行失败会影响所述任意脚本中未执行脚本指令的执行,从而降低执行效率。因此,当检测到所述任意脚本时,中断所述任意脚本的执行,将所述任意脚本挂起,便于相关联系人员对所述任意脚本进行更新修复。

S16,确定所述任意脚本执行失败时所处的执行环境,并确定所述任意脚本被中断执行的断点位置。

在本发明的至少一个实施例中,所述执行环境可以是开发环境,也可以是系统测试环境,还可以是用户测试环境,本发明对所述执行环境不作限制。

进一步地,所述断点位置是指造成所述任意脚本执行失败的脚本指令所在的位置。例如,所述断点位置可以是第10行。

在本发明的至少一个实施例中,所述电子设备确定所述任意脚本执行失败时所处的执行环境包括:

获取当前执行所述任意脚本执行的环境标识;

利用所述环境标识确定所述执行环境。

在本发明的至少一个实施例中,所述电子设备确定造成所述任意脚本中断的中断指令,并确定所述中断指令在所述任意脚本所处的行数,并将所述行数确定为所述断点位置。

在本发明的至少一个实施例中,通过及时中断任意脚本的执行,能够准确确定所述执行环境及所述断点位置,从而在脚本完成修复后能够从所述断点位置开始执行,避免重复执行脚本中的脚本程序,同时,通过确定所述断点位置有利于提醒开发人员出现问题的具体位置。

S17,将所述任意脚本、所述执行环境及所述断点位置确定为所述脚本执行请求的响应结果。

需要强调的是,为进一步保证上述响应结果的私密和安全性,上述响应结果还可以存储于一区块链的节点中。

在本发明的至少一个实施例中,所述响应结果是指处理完成所述脚本执行请求得到的结果。

在本发明的至少一个实施例中,在将所述任意脚本、所述执行环境及所述断点位置确定为所述脚本执行请求的响应结果后,所述方法还包括:

采用对称加密算法对所述响应结果进行加密处理,得到密文,并检测所述执行环境所属的环境类型;

当所述执行环境为开发环境时,确定所述任意脚本的创建用户,并将所述密文发送至所述创建用户的设备;或者

当所述执行环境为测试环境时,确定所述任意脚本的测试用户,发送所述密文至所述测试用户的设备,并接收所述测试用户提交的测试报告,将所述测试报告发送至所述创建用户的设备。

通过上述实施方式,能够根据所述执行环境的环境类型确定所述密文的发送地址,有利于直接负责人能够及时接收到响应结果。

由以上技术方案可以看出,本发明能够当接收到脚本执行请求时,从所述脚本执行请求中提取多个脚本名称,能够全面获取到所有需要进行处理的脚本,从版本控制系统中获取与所述多个脚本名称对应的多个待执行脚本,由于在脚本完成开发后开发人员会及时将脚本上传到版本控制系统,为此,通过从版本控制系统能够获取到最新的与脚本名称对应的脚本,对所述多个待执行脚本进行语法校验,并将通过语法校验的待执行脚本确定为目标脚本,在执行脚本之前校验脚本的语法,能够避免因语法错误而造成脚本执行失败,从而提高脚本执行成功率,避免多次重复执行脚本造成线程的占用,基于所述多个脚本名称对所述目标脚本排序,得到脚本列表,依照从前至后的顺序执行所述脚本列表中的目标脚本,当检测到任意脚本执行失败时,中断所述任意脚本的执行,确定所述任意脚本执行失败时所处的执行环境,并确定所述任意脚本被中断执行的断点位置,通过及时中断任意脚本的执行,能够准确确定所述执行环境及所述断点位置,从而在脚本完成修复后能够从所述断点位置开始执行,避免重复执行脚本中的脚本程序,同时,通过确定所述断点位置有利于提醒开发人员出现问题的具体位置,将所述任意脚本、所述执行环境及所述断点位置确定为所述脚本执行请求的响应结果。本发明实现了脚本的自动化执行,能够避免脚本出现漏执行及重复执行的问题,节省了资源,同时,脚本的顺利执行无需依赖于专业人员的手动执行,能够提高脚本执行效率,从而加快开发进度。

如图2所示,是本发明脚本执行装置的较佳实施例的功能模块图。所述脚本执行装置11包括提取单元110、获取单元111、确定单元112、排序单元113、执行单元114、中断单元115、生成单元116、发送单元117及加密单元118。本发明所称的模块/单元是指一种能够被处理器13所获取,并且能够完成固定功能的一系列计算机可读指令段,其存储在存储器12中。在本实施例中,关于各模块/单元的功能将在后续的实施例中详述。

当接收到脚本执行请求时,提取单元110从所述脚本执行请求中提取多个脚本名称。

在本发明的至少一个实施例中,所述脚本执行请求中携带的报文信息包括:请求编号、预设标签及所述多个脚本名称。

进一步地,所述多个脚本名称是指多个脚本文件的文件名称。所述多个脚本名称的形式可以是序号-UM号。例如,脚本名称为3-jiaoben231。

在本发明的至少一个实施例中,所述提取单元110从所述脚本执行请求中提取多个脚本名称包括:

获取线程连接池,并从所述线程连接池中获取任意闲置线程;

利用所述任意闲置线程解析所述脚本执行请求的报文,得到所述脚本执行请求携带的报文信息;

获取预设标签,并从所述报文信息中获取与所述预设标签对应的信息,作为所述多个脚本名称。

其中,所述预设标签是指预先定义好的标签,例如,所述预设标签可以是name。

通过从线程连接池中获取闲置线程,能够节省创建闲置线程的时间,进而利用闲置线程处理所述脚本执行请求的报文,节省线程处理其他优先级较高的请求,同时,无需解析整个脚本执行请求,提高脚本执行请求的解析效率,通过预设标签与脚本名称的映射关系,能够准确从所述脚本执行请求中提取所述多个脚本名称。

在本发明的至少一个实施例中,通过获取所述多个脚本名称,能够全面获取到所有需要进行处理的脚本

获取单元111从版本控制系统中获取与所述多个脚本名称对应的多个待执行脚本。

在本发明的至少一个实施例中,所述版本控制系统(version control system)是一种记录一个或若干个文件内容变化,以便将来查阅特定版本修订情况的系统。所述版本控制系统不仅可以应用于软件源代码的文本文件,而且可以对任何类型的文件进行版本控制。例如:所述版本控制系统可以包括,但不限于:svn,git等。

在本发明的至少一个实施例中,所述多个待执行脚本可以包括数据库脚本。

在本发明的至少一个实施例中,所述获取单元111从版本控制系统中获取与所述多个脚本名称对应的多个待执行脚本包括:

确定所述版本控制系统中的数据库所在的数据库路径;

从所述数据库路径中获取配置表;

遍历所述配置表中的文件名称,并将遍历到的与所述多个脚本名称相同的文件名称确定为多个目标名称;

获取所述多个目标名称的多个文件存储路径,并从所述文件存储路径中获取所述多个待执行脚本。

其中,所述配置表中存储多个文件名称及每个文件名称的文件存储路径。

通过上述实施方式,能够快速并准确地获取到所述多个待执行脚本。

在本发明的至少一个实施例中,由于在脚本完成开发后开发人员会及时将脚本上传到版本控制系统,为此,通过从版本控制系统能够获取到最新的与脚本名称对应的脚本。

确定单元112对所述多个待执行脚本进行语法校验,并将通过语法校验的待执行脚本确定为目标脚本。

在本发明的至少一个实施例中,所述目标脚本是指通过格式等语法校验的待执行脚本。

在本发明的至少一个实施例中,所述确定单元112对所述多个待执行脚本进行语法校验包括:

获取每个待执行脚本中的脚本指令;

确定所述脚本指令的数据量,并根据所述数据量确定执行线程;

确定所述脚本指令所属的指令类型,根据所述指令类型获取预设格式;

利用所述执行线程检测所述脚本指令是否符合所述预设格式;

当检测到任意脚本指令不符合所述预设格式时,确定所述任意脚本指令未通过语法校验,并将所述任意脚本指令所在的待执行脚本确定为错误脚本。

其中,所述指令类型可以包括,但不限于:JAVA类型、C语言类型等。

进一步地,所述预设格式是指所述指令类型特有的指令格式。

通过上述实施方式,能够根据脚本指令的数据量确定出合适的执行线程,有利于待执行脚本的语法校验。

在本发明的至少一个实施例中,所述提取单元110提取所述错误脚本中未通过语法校验的目标指令,并确定所述目标指令所在的指令位置;

生成单元116根据所述目标指令及所述指令位置生成所述错误脚本的提示信息;

发送单元117将所述提示信息发送至指定联系人的终端设备。

其中,所述指定联系人可以是负责脚本开发的开发人员。

通过上述实施方式,能够在待执行脚本未通过语法校验时,及时获取到造成待执行脚本未通过校验的目标指令,并将所述目标指令及时发送至所述指定联系人的终端设备,起到提示作用。

排序单元113基于所述多个脚本名称对所述目标脚本排序,得到脚本列表。

在本发明的至少一个实施例中,所述脚本列表存储所述目标脚本及所述目标脚本在所述脚本列表中的序号。

在本发明的至少一个实施例中,所述排序单元113基于所述多个脚本名称对所述目标脚本排序,得到脚本列表包括:

确定所述多个脚本名称的创建时间,并确定所述创建时间相同的脚本名称的目标数量;

当所述目标数量大于预设值时,提取每个脚本名称中的序号,依照所述序号从小至大的顺序对所述目标脚本进行排序,得到所述脚本列表;或者

当所述目标数量小于或者等于所述预设值时,依照所述创建时间从小至大的顺序对所述目标脚本进行排序,得到所述脚本列表。

其中,所述预设值为正整数,所述预设值通常设置为1。

通过上述实施方式,能够在所述目标数量小于或者等于所述预设值时,直接根据脚本名称的创建时间对所述目标脚本进行排序,而无需提取脚本名称中的序号,提高排序效率。

在本发明的至少一个实施例中,通过对所述目标脚本进行排序,使得所述目标脚本能够按照一定的逻辑顺序执行,让脚本的执行更加规范,有利于脚本的管理。

执行单元114依照从前至后的顺序执行所述脚本列表中的目标脚本。

在本发明的至少一个实施例中,例如,所述脚本列表为序号1:目标脚本A;序号2:目标脚本B;序号3:目标脚本C。因此,所述电子设备依照从前至后的顺序,先执行所述目标脚本A,再执行所述目标脚本B,最后执行所述目标脚本C。

当检测到任意脚本执行失败时,中断单元115中断所述任意脚本的执行。

在本发明的至少一个实施例中,所述目标脚本在执行过程中,可能会因为所述目标脚本的语法错误等原因出现所述目标脚本执行失败的情况。当所述任意脚本执行失败会影响所述任意脚本中未执行脚本指令的执行,从而降低执行效率。因此,当检测到所述任意脚本时,中断所述任意脚本的执行,将所述任意脚本挂起,便于相关联系人员对所述任意脚本进行更新修复。

所述确定单元112确定所述任意脚本执行失败时所处的执行环境,并确定所述任意脚本被中断执行的断点位置。

在本发明的至少一个实施例中,所述执行环境可以是开发环境,也可以是系统测试环境,还可以是用户测试环境,本发明对所述执行环境不作限制。

进一步地,所述断点位置是指造成所述任意脚本执行失败的脚本指令所在的位置。例如,所述断点位置可以是第10行。

在本发明的至少一个实施例中,所述确定单元112确定所述任意脚本执行失败时所处的执行环境包括:

获取当前执行所述任意脚本执行的环境标识;

利用所述环境标识确定所述执行环境。

在本发明的至少一个实施例中,所述确定单元112确定造成所述任意脚本中断的中断指令,并确定所述中断指令在所述任意脚本所处的行数,并将所述行数确定为所述断点位置。

在本发明的至少一个实施例中,通过及时中断任意脚本的执行,能够准确确定所述执行环境及所述断点位置,从而在脚本完成修复后能够从所述断点位置开始执行,避免重复执行脚本中的脚本程序,同时,通过确定所述断点位置有利于提醒开发人员出现问题的具体位置。

所述确定单元112将所述任意脚本、所述执行环境及所述断点位置确定为所述脚本执行请求的响应结果。

需要强调的是,为进一步保证上述响应结果的私密和安全性,上述响应结果还可以存储于一区块链的节点中。

在本发明的至少一个实施例中,所述响应结果是指处理完成所述脚本执行请求得到的结果。

在本发明的至少一个实施例中,在将所述任意脚本、所述执行环境及所述断点位置确定为所述脚本执行请求的响应结果后,加密单元118采用对称加密算法对所述响应结果进行加密处理,得到密文,并检测所述执行环境所属的环境类型;

当所述执行环境为开发环境时,所述确定所述任意脚本的创建用户,并将所述密文发送至所述创建用户的设备;或者

当所述执行环境为测试环境时,所述确定单元112确定所述任意脚本的测试用户,发送所述密文至所述测试用户的设备,并接收所述测试用户提交的测试报告,将所述测试报告发送至所述创建用户的设备。

通过上述实施方式,能够根据所述执行环境的环境类型确定所述密文的发送地址,有利于直接负责人能够及时接收到响应结果。

由以上技术方案可以看出,本发明能够当接收到脚本执行请求时,从所述脚本执行请求中提取多个脚本名称,能够全面获取到所有需要进行处理的脚本,从版本控制系统中获取与所述多个脚本名称对应的多个待执行脚本,由于在脚本完成开发后开发人员会及时将脚本上传到版本控制系统,为此,通过从版本控制系统能够获取到最新的与脚本名称对应的脚本,对所述多个待执行脚本进行语法校验,并将通过语法校验的待执行脚本确定为目标脚本,在执行脚本之前校验脚本的语法,能够避免因语法错误而造成脚本执行失败,从而提高脚本执行成功率,避免多次重复执行脚本造成线程的占用,基于所述多个脚本名称对所述目标脚本排序,得到脚本列表,依照从前至后的顺序执行所述脚本列表中的目标脚本,当检测到任意脚本执行失败时,中断所述任意脚本的执行,确定所述任意脚本执行失败时所处的执行环境,并确定所述任意脚本被中断执行的断点位置,通过及时中断任意脚本的执行,能够准确确定所述执行环境及所述断点位置,从而在脚本完成修复后能够从所述断点位置开始执行,避免重复执行脚本中的脚本程序,同时,通过确定所述断点位置有利于提醒开发人员出现问题的具体位置,将所述任意脚本、所述执行环境及所述断点位置确定为所述脚本执行请求的响应结果。本发明实现了脚本的自动化执行,能够避免脚本出现漏执行及重复执行的问题,节省了资源,同时,脚本的顺利执行无需依赖于专业人员的手动执行,能够提高脚本执行效率,从而加快开发进度。

如图3所示,是本发明实现脚本执行方法的较佳实施例的电子设备的结构示意图。

在本发明的一个实施例中,所述电子设备1包括,但不限于,存储器12、处理器13,以及存储在所述存储器12中并可在所述处理器13上运行的计算机可读指令,例如脚本执行程序。

本领域技术人员可以理解,所述示意图仅仅是电子设备1的示例,并不构成对电子设备1的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述电子设备1还可以包括输入输出设备、网络接入设备、总线等。

所述处理器13可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,所述处理器13是所述电子设备1的运算核心和控制中心,利用各种接口和线路连接整个电子设备1的各个部分,及执行所述电子设备1的操作系统以及安装的各类应用程序、程序代码等。

所述处理器13执行所述电子设备1的操作系统以及安装的各类应用程序。所述处理器13执行所述应用程序以实现上述各个脚本执行方法实施例中的步骤,例如图1所示的步骤。

示例性的,所述计算机可读指令可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器12中,并由所述处理器13执行,以完成本发明。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机可读指令段,该计算机可读指令段用于描述所述计算机可读指令在所述电子设备1中的执行过程。例如,所述计算机可读指令可以被分割成提取单元110、获取单元111、确定单元112、排序单元113、执行单元114、中断单元115、生成单元116、发送单元117及加密单元118。

所述存储器12可用于存储所述计算机可读指令和/或模块,所述处理器13通过运行或执行存储在所述存储器12内的计算机可读指令和/或模块,以及调用存储在存储器12内的数据,实现所述电子设备1的各种功能。所述存储器12可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据电子设备的使用所创建的数据等。存储器12可以包括非易失性和易失性存储器,例如:硬盘、内存、插接式硬盘,智能存储卡(SmartMedia Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)、至少一个磁盘存储器件、闪存器件、或其他存储器件,也包括易失性存储器,例如:可变存储器。

所述存储器12可以是电子设备1的外部存储器和/或内部存储器。进一步地,所述存储器12可以是具有实物形式的存储器,如内存条、TF卡(Trans-flash Card)等等。

所述电子设备1集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机可读指令来指令相关的硬件来完成,所述的计算机可读指令可存储于一计算机可读存储介质中,该计算机可读指令在被处理器执行时,可实现上述各个方法实施例的步骤。

其中,所述计算机可读指令包括计算机可读指令代码,所述计算机可读指令代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机可读指令代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)等。

本发明所指区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层等。

结合图1,所述电子设备1中的所述存储器12存储计算机可读指令,所述处理器13可执行所述计算机可读指令从而实现:

当接收到脚本执行请求时,从所述脚本执行请求中提取多个脚本名称;

从版本控制系统中获取与所述多个脚本名称对应的多个待执行脚本;

对所述多个待执行脚本进行语法校验,并将通过语法校验的待执行脚本确定为目标脚本;

基于所述多个脚本名称对所述目标脚本排序,得到脚本列表;

依照从前至后的顺序执行所述脚本列表中的目标脚本;

当检测到任意脚本执行失败时,中断所述任意脚本的执行;

确定所述任意脚本执行失败时所处的执行环境,并确定所述任意脚本被中断执行的断点位置;

将所述任意脚本、所述执行环境及所述断点位置确定为所述脚本执行请求的响应结果。

具体地,所述处理器13对上述计算机可读指令的具体实现方法可参考图1对应实施例中相关步骤的描述,在此不赘述。

在本发明所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。

所述计算机可读存储介质上存储有计算机可读指令,其中,所述计算机可读指令被处理器13执行以实现以下步骤:

当接收到脚本执行请求时,从所述脚本执行请求中提取多个脚本名称;

从版本控制系统中获取与所述多个脚本名称对应的多个待执行脚本;

对所述多个待执行脚本进行语法校验,并将通过语法校验的待执行脚本确定为目标脚本;

基于所述多个脚本名称对所述目标脚本排序,得到脚本列表;

依照从前至后的顺序执行所述脚本列表中的目标脚本;

当检测到任意脚本执行失败时,中断所述任意脚本的执行;

确定所述任意脚本执行失败时所处的执行环境,并确定所述任意脚本被中断执行的断点位置;

将所述任意脚本、所述执行环境及所述断点位置确定为所述脚本执行请求的响应结果。

所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理单元,既可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能模块的形式实现。

因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本发明内。不应将权利要求中的任何附关联图标记视为限制所涉及的权利要求。

此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。系统权利要求中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第二等词语用来表示名称,而并不表示任何特定的顺序。

最后应说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或等同替换,而不脱离本发明技术方案的精神和范围。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号