本发明涉及金融科技(fintech)的大数据技术领域,尤其涉及脚本变量管理方法、装置、设备及计算机可读存储介质。
背景技术:
随着计算机技术的发展,越来越多的技术(大数据、分布式、区块链blockchain、人工智能等)应用在金融领域,传统金融业正在逐步向金融科技(fintech)转变。
以银行机构为例,银行机构拥有成百上千个业务系统、上亿用户以及海量的业务数据,银行机构利用分布式集群执行海量的业务作业;具体地,银行机构设置脚本变量管理设备,脚本变量管理设备接收业务作业相关的脚本,若脚本中包含有自定义变量,则每次运行脚本之前都需要用户手动设置自定义变量的变量值,在自定义变量的变量值设置完成之后,脚本变量管理设备将脚本发送至分布式集群进行运行,从而实现业务作业的执行,但是手动设置变量值的方式,不仅操作效率低,导致业务作业的执行效率也降低了。
技术实现要素:
本发明的主要目的在于提出一种脚本变量管理方法、装置、设备及计算机可读存储介质,旨在解决当前包含自定义变量的脚本运行时,需要用户手动设置脚本中自定义变量对应变量值,导致业务作业的执行效率降低的技术问题。
为实现上述目的,本发明提供一种脚本变量管理方法,所述脚本变量管理方法包括如下步骤:
在接收到脚本提交请求时,获取所述脚本提交请求对应的目标脚本,及所述目标脚本中包含的目标自定义变量;
查询预设hashmap,获取所述目标自定义变量对应的目标键值对,和所述目标键值对中的目标变量值;
将所述目标自定义变量替换为所述目标变量值,并将所述目标脚本提交运行。
可选地,所述在接收到脚本提交请求时,获取所述脚本提交请求对应的目标脚本,及所述目标脚本中包含的目标自定义变量的步骤之前,包括:
在检测到脚本信息更新时,获取更新的脚本和配置信息;
解析所述脚本和所述配置信息,提取所述脚本和所述配置信息中的自定义变量,和所述自定义变量对应的变量值,将所述自定义变量和所述变量值作为键值对保存至预设hashmap。
可选地,所述配置信息包括脚本配置信息和系统配置信息;
所述解析所述脚本和所述配置信息,提取所述脚本和所述配置信息中的自定义变量,和所述自定义变量对应的变量值,将所述自定义变量和所述变量值作为键值对保存至预设hashmap的步骤,包括:
解析所述脚本,得到所述脚本中的第一自定义变量,和所述第一自定义变量对应的第一变量值,将所述第一自定义变量和所述第一变量值作为第一键值对保存至预设hashmap;
解析所述脚本配置信息,得到所述脚本配置信息中的第二自定义变量,和所述第二自定义变量对应的第二变量值,将所述第二自定义变量和所述第二变量值作为第二键值对保存至所述预设hashmap;
解析所述系统配置信息,得到所述系统配置信息中的第三自定义变量,和所述第三自定义变量对应的第三变量值,将所述第三自定义变量和所述第三变量值作为第三键值对保存至所述预设hashmap。
可选地,所述解析所述脚本配置信息,得到所述脚本配置信息中的第二自定义变量,和所述第二自定义变量对应的第二变量值,将所述第二自定义变量和所述第二变量值作为第二键值对保存至所述预设hashmap的步骤,包括:
解析所述脚本配置信息,得到所述脚本配置信息中的第二自定义变量,和所述第二自定义变量对应的第二变量值,将所述第二自定义变量和所述第二变量值作为第二键值对;
判断所述预设hashmap中是否存在与所述第二键值对匹配的预存键值对;
若所述预设hashmap中不存在与所述第二键值对匹配的预存键值对,则将所述第二键值对保存至所述预设hashmap。
可选地,所述判断所述预设hashmap中是否存在与所述第二键值对匹配的预存键值对的步骤,包括:
将所述第二键值对中的所述第二自定义变量和所述第二变量值与所述预设hashmap中各预存键值对的自定义变量和变量值进行比较;
若不存在与所述第二自定义变量相同的预存自定义变量,且不存在与所述第二变量值相同的预存变量值,则判定所述预设hashmap中不存在与所述第二键值对匹配的预存键值对;
若存在与所述第二自定义变量相同的预存自定义变量,和/或存在与所述第二变量值相同的预存变量值,则判定所述预设hashmap中存在与所述第二键值对匹配的预存键值对。
可选地,所述解析所述脚本和所述配置信息,提取所述脚本和所述配置信息中的自定义变量,和所述自定义变量对应的变量值,将所述自定义变量和所述变量值作为键值对保存至预设hashmap的步骤之后,包括:
获取所述键值对的来源信息,并根据所述键值对的来源信息设置所述键值对的优先级;
所述将所述目标自定义变量替换为所述目标变量值,并将所述目标脚本提交运行的步骤,包括:
若所述目标键值对的数量为至少两个,则获取优先级最高的目标键值对中的目标变量值,将所述目标自定义变量替换为所述目标变量值,并将所述目标脚本提交运行。
可选地,所述查询预设hashmap,获取所述目标自定义变量对应的目标键值对,和所述目标键值对中的目标变量值,将所述目标自定义变量替换为所述目标变量值,并将所述目标脚本提交运行的步骤,包括:
将所述目标自定义变量替换为所述目标变量值,并对替换后的所述目标脚本进行安全性校验;
在所述目标脚本安全性验证通过时,将所述目标脚本提交运行。
此外,为实现上述目的,本发明还提供一种脚本变量管理装置,所述脚本变量管理装置包括:
变量获取模块,用于在接收到脚本提交请求时,获取所述脚本提交请求对应的目标脚本,及所述目标脚本中包含的目标自定义变量;
查询获取模块,用于查询预设hashmap,获取所述目标自定义变量对应的目标键值对,和所述目标键值对中的目标变量值;
替换提交模块,用于将所述目标自定义变量替换为所述目标变量值,并将所述目标脚本提交运行。
可选地,所述脚本变量管理装置包括:
检测获取模块,用于在检测到脚本信息更新时,获取更新的脚本和配置信息;
解析保存模块,用于解析所述脚本和所述配置信息,提取所述脚本和所述配置信息中的自定义变量,和所述自定义变量对应的变量值,将所述自定义变量和所述变量值作为键值对保存至预设hashmap;
可选地,所述解析保存模块,包括:
第一解析子模块,用于解析所述脚本,得到所述脚本中的第一自定义变量,和所述第一自定义变量对应的第一变量值,将所述第一自定义变量和所述第一变量值作为第一键值对保存至预设hashmap;
第二解析子模块,用于解析所述脚本配置信息,得到所述脚本配置信息中的第二自定义变量,和所述第二自定义变量对应的第二变量值,将所述第二自定义变量和所述第二变量值作为第二键值对保存至所述预设hashmap;
第三解析子模块,用于解析所述系统配置信息,得到所述系统配置信息中的第三自定义变量,和所述第三自定义变量对应的第三变量值,将所述第三自定义变量和所述第三变量值作为第三键值对保存至所述预设hashmap。
可选地,所述第二解析子模块,包括:
变量解析单元,用于解析所述脚本配置信息,得到所述脚本配置信息中的第二自定义变量,和所述第二自定义变量对应的第二变量值,将所述第二自定义变量和所述第二变量值作为第二键值对;
键值对判断单元,用于判断所述预设hashmap中是否存在与所述第二键值对匹配的预存键值对;
键值对保存单元,用于若所述预设hashmap中不存在与所述第二键值对匹配的预存键值对,则将所述第二键值对保存至所述预设hashmap。
可选地,所述键值对判断单元,还用于:
将所述第二键值对中的所述第二自定义变量和所述第二变量值与所述预设hashmap中各预存键值对的自定义变量和变量值进行比较;
若不存在与所述第二自定义变量相同的预存自定义变量,且不存在与所述第二变量值相同的预存变量值,则判定所述预设hashmap中不存在与所述第二键值对匹配的预存键值对;
若存在与所述第二自定义变量相同的预存自定义变量,和/或存在与所述第二变量值相同的预存变量值,则判定所述预设hashmap中存在与所述第二键值对匹配的预存键值对。
可选地,所述的脚本变量管理装置,包括:
优先级设置模块,用于获取所述键值对的来源信息,并根据所述键值对的来源信息设置所述键值对的优先级;
所述替换提交模块,还用于:
若所述目标键值对的数量为至少两个,则获取优先级最高的目标键值对中的目标变量值,将所述目标自定义变量替换为所述目标变量值,并将所述目标脚本提交运行。
可选地,所述替换提交模块,包括:
替换验证单元,用于将所述目标自定义变量替换为所述目标变量值,并对替换后的所述目标脚本进行安全性校验
脚本提交单元,用于在所述目标脚本安全性验证通过时,将所述目标脚本提交运行。
此外,为实现上述目的,本发明还提供一种脚本变量管理设备,所述脚本变量管理设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的脚本变量管理程序,所述脚本变量管理程序被所述处理器执行时实现如上所述的脚本变量管理方法的步骤。
此外,为实现上述目的,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有脚本变量管理程序,所述脚本变量管理程序被处理器执行时实现如上所述的脚本变量管理方法的步骤。
本发明提供了一种脚本变量管理方法、装置、设备及计算机可读存储介质,本发明实施例中在接收到脚本提交请求时,获取所述脚本提交请求对应的目标脚本,及所述目标脚本中包含的目标自定义变量;然后,查询预设hashmap,获取所述目标自定义变量对应的目标键值对,和所述目标键值对中的目标变量值,将所述目标自定义变量替换为所述目标变量值,并将所述目标脚本提交运行。本发明实施例中通过解析目标脚本,获取目标脚本中包含的目标自定义变量,并将目标脚本中的目标自定义变量替换为对应的目标变量值,不需要用户手动地设置脚本中目标自定义变量对应的目标变量值,提高了脚本变量值设置的效率,并进一步地提高了业务作业的执行效率。
附图说明
图1是本发明实施例方案涉及的硬件运行环境的设备结构示意图;
图2为本发明脚本变量管理方法第一实施例的流程示意图;
图3为本发明脚本变量管理方法第二实施例的流程示意图;
图4为本发明脚本变量管理装置一实施例的功能模块示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
如图1所示,图1是本发明实施例方案涉及的硬件运行环境的设备结构示意图。
本发明实施例脚本变量管理设备可以是终端或服务器,如图1所示,该脚本变量管理设备可以包括:处理器1001,例如cpu,网络接口1004,用户接口1003,存储器1005,通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(display)、输入单元比如键盘(keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如wi-fi接口)。存储器1005可以是高速ram存储器,也可以是稳定的存储器(non-volatilememory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
本领域技术人员可以理解,图1中示出的设备结构并不构成对设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图1所示,作为一种计算机存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及脚本变量管理程序。
在图1所示的设备中,网络接口1004主要用于连接后台服务器,与后台服务器进行数据通信;用户接口1003主要用于连接客户端(用户端),与客户端进行数据通信;而处理器1001可以用于调用存储器1005中存储的脚本变量管理程序,并执行下述脚本变量管理方法中的操作。
基于上述硬件结构,提出本发明脚本变量管理方法实施例,包括:
在接收到脚本提交请求时,获取所述脚本提交请求对应的目标脚本,及所述目标脚本中包含的目标自定义变量;
查询预设hashmap,获取所述目标自定义变量对应的目标键值对,和所述目标键值对中的目标变量值;
将所述目标自定义变量替换为所述目标变量值,并将所述目标脚本提交运行。
本实施例中,脚本变量管理设备中预设hashmap,预设hashmap用于存放自定义变量和自定义变量对应变量值,具体地,脚本变量管理设备利用jdk提供的hashmap存放自定义变量和自定义变量对应变量值,其中,jdk是java语言的软件开发工具包,包含了java的运行环境(jvm+java系统类库)和java工具;hashmap是指基于哈希表的map接口的实现,hashmap提供所有可选的映射操作,使用null值和null键,具体地,包括:
步骤s01,在检测到脚本信息更新时,获取更新的脚本和配置信息;
本实施例脚本变量管理方法应用于脚本变量管理设备,脚本变量管理设备可以理解为分布式集群前置的业务作业调控平台,客户端将脚本或者脚本相关的配置信息上传至脚本变量管理设备,脚本变量管理设备对脚本和配置信息进行解析处理,并将处理完成的脚本提交至分布式集群,以供分布式集群运行该脚本执行业务作业。例如,脚本变量管理设备设置于金融机构(金融机构包括银行机构、保险机构或证券机构等),以银行机构为例进行说明,银行机构对应的脚本变量管理设备实时地检测脚本信息更新情况,以对脚本中的自定义变量统一替换为自定义变量的变量值,具体地:
脚本变量管理设备实时地检测脚本信息变化情况,脚本信息包括脚本和脚本相关的配置信息,具体地,脚本变量管理设备监控脚本的数量确定脚本信息是否更新,例如,用户通过客户端向脚本变量管理设备上传脚本时,脚本变量管理设备接收客户端发送的脚本,脚本数量变化,脚本变量管理设备检测到脚本信息更新;此外,脚本变量管理设备监测页面中新增的配置信息;例如,用户在脚本配置页面中输入新的脚本配置信息,或者用户在系统配置页面中输入新的系统配置信息,脚本变量管理设备检测到脚本信息更新。
脚本变量管理设备在检测到脚本信息更新时,脚本变量管理设备获取更新的脚本和配置信息,其中,配置信息包括脚本配置信息和系统配置信息(系统配置信息是指系统层级的自定义变量信息)。
本实施例中,用户根据使用习惯在脚本中设置自定义变量,和自定义变量的变量值,用户还可以在配置页面中通过设置自定义变量,和自定义变量值,脚本变量管理设备实时地监控脚本和脚本相关信息的配置页面,获取更新的脚本和配置信息,使得用户操作更加方便。
步骤s02,解析所述脚本和所述配置信息,提取所述脚本和所述配置信息中的自定义变量,和所述自定义变量对应的变量值,将所述自定义变量和所述变量值作为键值对保存至预设hashmap。
本实施例中,脚本变量管理设备解析脚本和配置信息,提取脚本中的自定义变量,和自定义变量对应的变量值;脚本变量管理设备提取配置信息中的自定义变量,和自定义变量对应的变量值,并保存至预设hashmap中,具体地:
脚本按照固定格式编写自定义变量和自定义变量对应的变量值,脚本变量管理设备按照固定格式对脚本中的自定义变量进行解析,得到脚本中的key(变量值)以及value(自定义变量)放置到hashmap中,例如,固定格式为setx=2019年7月10日,在脚本中出现setx=“10”脚本变量管理设备就会将“x”作为自定义变量,将“10”作为该自定义变量对应的变量值;脚本变量管理设备将自定义变量,和自定义变量对应的变量值作为一个键值对保存至预设hashmap。
脚本变量管理设备解析完脚本中的自定义变量后,解析配置页面中的配置信息,获取配置信息中的自定义变量和变量值,脚本变量管理设备将自定义变量和变量值作为一个键值对,脚本变量管理设备判断预设hashmap中是否已经存储该键值对,若预设hashmap中已经存储该键值对,则不插入;若预设hashmap中没有存储该键值对,脚本变量管理设备将该键值对保存至预设hashmap。
可以理解的是,本实施例中自定义变量的类型和变量值的类型不作具体限定,即,自定义变量和变量值可以是字符串类型、数值类型、日期类型和集合类型一种或者多种,本实施例中支持用户设置不同类型的自定义变量和变量值。
参照图2,图2为本发明脚本变量管理方法第一实施例的流程示意图,所述方法包括:
步骤s10,在接收到脚本提交请求时,获取所述脚本提交请求对应的目标脚本,及所述目标脚本中包含的目标自定义变量。
脚本变量管理设备接收脚本提交请求,脚本提交请求的触发方式不作具体限定,即,脚本提交请求可以是用户主动触发的,例如,用户通过客户端上传脚本,并点击“提交”触发脚本提交请求,客户端将脚本提交请求发送至脚本变量管理设备;此外,脚本提交请求还可以是脚本变量管理设备自动触发的,例如,脚本变量管理设备接收到客户端上传的脚本时,自动触发脚本提交请求。
脚本变量管理设备在接收到脚本提交请求时,脚本变量管理设备获取脚本提交请求对应的目标脚本,脚本变量管理设备对目标脚本进行解析,获取目标脚本中包含的目标自定义变量。
步骤s20,查询预设hashmap,获取所述目标自定义变量对应的目标键值对,和所述目标键值对中的目标变量值。
脚本变量管理设备查询预设hashmap,脚本变量管理设备获取目标自定义变量对应的目标键值对,即,脚本变量管理设备将目标自定义变量与预设hashmap中各个键值对中的自定义变量进行比对,脚本变量管理设备获取包含该目标自定义变量的键值对作为目标键值对,脚本变量管理设备获取目标键值对中的目标变量值。
步骤s30,将所述目标自定义变量替换为所述目标变量值,并将所述目标脚本提交运行
脚本变量管理设备将脚本中自定义变量替换为目标变量值,例如,目标自定义变量为:date,脚本变量管理设备将date替换为2019年7月16日,脚本变量管理设备将目标脚本提交运行。本发明实施例中通过解析目标脚本,获取目标脚本中包含的目标自定义变量,并将目标脚本中的目标自定义变量替换为对应的目标变量值,不需要用户手动地设置脚本中目标自定义变量对应的目标变量值,提高了脚本变量值设置的效率,并进一步地提高了业务作业的执行效率。
将本实施例中的技术方案应用于金融机构,例如,金融机构每天的批量任务都会在凌晨进行跑批,比如今天是20190620,需要拿到20190619的数据,如果没有动态替换,那么就需要用户将前天的20190618改成20190619,这会增加用户的工作量。本实施例的技术方案可以进行自定义变量的自动替换,不需要用户手动地为自定义变量赋值,方便了用户操作。
进一步地,参考图3,基于本发明脚本变量管理方法第一实施例,提出本发明脚本变量管理方法第二实施例。
本实施例是第一实施例中步骤s02的细化,本实施例与第一实施例的区别在于:
步骤s021,解析所述脚本,得到所述脚本中的第一自定义变量,和所述第一自定义变量对应的第一变量值,将所述第一自定义变量和所述第一变量值作为第一键值对保存至预设hashmap;
脚本变量管理设备解析脚本,得到脚本中的第一自定义变量,和第一自定义变量对应的第一变量值,脚本变量管理设备将第一自定义变量和第一自定义变量对应的第一变量值作为第一键值对,并将第一键值对保存至预设hashmap。
步骤s022,解析所述脚本配置信息,得到所述脚本配置信息中的第二自定义变量,和所述第二自定义变量对应的第二变量值,将所述第二自定义变量和所述第二变量值作为第二键值对保存至所述预设hashmap;
具体地,步骤s022包括:
步骤a1,解析所述脚本配置信息,得到所述脚本配置信息中的第二自定义变量,和所述第二自定义变量对应的第二变量值,将所述第二自定义变量和所述第二变量值作为第二键值对;
步骤a2,判断所述预设hashmap中是否存在与所述第二键值对匹配的预存键值对;
步骤a3,若所述预设hashmap中不存在与所述第二键值对匹配的预存键值对,则将所述第二键值对保存至所述预设hashmap。
即,脚本变量管理设备解析脚本配置信息,得到脚本配置信息中的第二自定义变量,和第二自定义变量对应的第二变量值,脚本变量管理设备将第二自定义变量和第二自定义变量对应的第二变量值作为第二键值对;脚本变量管理设备将第二键值对中的第二自定义变量和第二变量值与预设hashmap中各预存键值对的自定义变量和变量值进行比较;以根据比较结果判断是否保存第二键值对,即,
若不存在与第二自定义变量相同的预存自定义变量,且不存在与第二变量值相同的预存变量值,则判定预设hashmap中不存在与第二键值对匹配的预存键值对;脚本变量管理设备将第二键值对保存至预设hashmap;
若存在与第二自定义变量相同的预存自定义变量,和/或存在与第二变量值相同的预存变量值,则判定预设hashmap中存在与第二键值对匹配的预存键值对,脚本变量管理设备删除该第二键值对,以避免重复保存。
本实施例中脚本变量管理设备可以解析脚本配置页面中的脚本配置信息,方便了用户自定义变量和自定义变量对应的变量值的配置。
步骤s023,解析所述系统配置信息,得到所述系统配置信息中的第三自定义变量,和所述第三自定义变量对应的第三变量值,将所述第三自定义变量和所述第三变量值作为第三键值对保存至所述预设hashmap。
具体地,步骤s023包括:
步骤b1,解析所述系统配置信息,得到所述系统配置信息中的第三自定义变量,和所述第三自定义变量对应的第三变量值,将所述第三自定义变量和所述第三变量值作为第三键值对;
步骤a2,判断所述预设hashmap中是否存在与所述第三键值对匹配的预存键值对;
步骤a3,若所述预设hashmap中不存在与所述第三键值对匹配的预存键值对,则将所述第三键值对保存至所述预设hashmap。
即,脚本变量管理设备解析系统配置信息,得到系统配置信息中的第三自定义变量,和第三自定义变量对应的第三变量值,脚本变量管理设备将第三自定义变量和第三变量值作为第三键值对,脚本变量管理设备将第三键值对中的第三自定义变量和第三变量值与预设hashmap中各预存键值对的自定义变量和变量值进行比较;以根据比较结果确定是否保存第三键值对,即,
若不存在与第三自定义变量相同的预存自定义变量,且不存在与第三变量值相同的预存变量值,脚本变量管理设备判定预设hashmap中不存在与第三键值对匹配的预存键值对;脚本变量管理设备将第三键值对保存至预设hashmap;
若存在与所述第三自定义变量相同的预存自定义变量,和/或存在与所述第三变量值相同的预存变量值,则判定所述预设hashmap中存在与所述第三键值对匹配的预存键值对,脚本变量管理设备删除该第三键值对,以避免重复保存。
本实施例中脚本变量管理设备可以解析系统配置页面中的系统配置信息,使得用户在设置系统配置信息的同时设置了脚本中自定义变量和自定义变量对应的变量值的配置,方便了用户操作。
本实施例中,脚本变量管理设备既可以检测解析脚本中的自定义变量,还可以检测解析脚本配置信息中的自定义变量、和系统配置信息中的自定义变量;在进行自定义变量设置时,不可避免地会出现同一个自定义变量和该自定义变量对应的变量值重复设置的情况,即,目标自定义变量a对应变量值1,在脚本中设置了一次,又在脚本配置页面对应的脚本配置信息中设置了一次,或者又在系统配置页面对应的系统配置信息中设置了一次,此时,若直接将脚本配置信息中的第二自定义变量,或者系统配置信息中的第三自定义变量保存至预设hashmap中,可能会出现重复保存的现象,本实施例中在保存第二自定义变量和第三自定义变量之前,先查询一遍预设hashmap,可以有效地避免同一自定义变量重复保存的情况。
进一步地,基于本发明脚本变量管理方法上述实施例,提出本发明脚本变量管理方法第三实施例。
本实施例是第一实施例中步骤s02之后的步骤,本实施例与上述实施例的区别在于:
获取所述键值对的来源信息,并根据所述键值对的来源信息设置所述键值对的优先级。
本实施例中,脚本变量管理设备获取键值对的来源信息,其中,键值对可以来源于脚本、脚本配置页面和系统配置页面,脚本变量管理设备根据键值对的来源信息设置键值对的优先级,具体地,可选将脚本变量管理设备将来源于脚本中的键值对优先级设置为最高级,来源于脚本配置页面(或脚本配置信息)的键值对优先级次之,来源于系统配置页面(或系统配置信息)的键值对优先级最低。
即,本实施例中考虑到同一自定义变量在不同的情况下设置了不用的变量值,脚本管理设备都将其保存至预设hashmap,例如,脚本中设置了自定义变量a,和自定义变量a对应的变量值为a1;脚本配置信息中设置了自定义变量a,和自定义变量a对应的变量值为a2;系统配置信息中设置了自定义变量a,和自定义变量a对应的变量值为a3,脚本管理设备将a-a1,a-a2和a-a3,分别作为不同的键值对进行保存,并根据键值对的来源信息,脚本管理设备将a-a1的优先级设置为最高,a-a2的优先级设置为中等,a-a3的优先级设置为最低。
基于优先级的设置,本实施例对第一实施例中步骤s30进行细化,包括:
若所述目标键值对的数量为至少两个,则获取优先级最高的目标键值对中的目标变量值,将所述目标自定义变量替换为所述目标变量值,并将所述目标脚本提交运行。
本实施例中,脚本变量管理设备查询预设hashmap,获取目标自定义变量对应的目标键值对;脚本变量管理设备判断目标键值对的数量是否为多个,即,同一个类型的自定义变量在不同的应用场景中可能设置了不同的变量值,预设hashmap中将一个自定义变量与一个变量值组合,形成多个键值对;若目标键值对的数量为一个,脚本变量管理设备将自定义变量替换为目标变量值,并将目标脚本提交运行。
若目标键值对的数量为至少两个,脚本变量管理设备获取优先级最高的目标键值对中的目标变量值,脚本变量管理设备将自定义变量替换为目标变量值,并将目标脚本提交运行。
本实施例中,预设hashmap支持在不同的业务场景中定义相同类型的自定义变量,并设置不同的变量值,在进行脚本自定义变量替换时,脚本变量管理设备会根据各个键值对的优先级,将脚本中的自定义变量替换为优先级最高键值对中的变量值,本实施例中既可以保证自定义变量的灵活设置,还可以保证自定义变量合理替换。
进一步地,基于本发明脚本变量管理方法的上述实施例,提出本发明脚本变量管理方法第四实施例。
本实施例中可以与其他任意一个实施例进行结合,本实施例是第一实施例中步骤s30的细化,本实施例与上述实施例的区别在于:
将所述目标自定义变量替换为所述目标变量值,并对替换后的所述目标脚本进行安全性校验;在所述目标脚本安全性验证通过时,将所述目标脚本提交运行。
即,脚本变量管理设备查询预设hashmap,获取目标自定义变量对应的目标键值对,和目标键值对中的目标变量值,脚本变量管理设备将自定义变量替换为目标变量值;脚本变量管理设备将脚本中的自定义变量转化为变量值之后,脚本变量管理设备解析目标脚本,确定目标脚本的执行指令,在执行指令的风险性高于设定的风险值时,判定目标脚本不合法安全性验证不通过,在执行指令的风险性小于或等于设定的风险值时,判定目标脚本合法安全性验证通过;若目标脚本安全性验证通过时,脚本变量管理设备将目标脚本提交运行;若目标脚本安全性验证不通过时,脚本变量管理设备将目标脚本拦截。
现有技术无法对脚本进行解析,因此无法验证脚本的安全性,本实施例中通过对脚本的解析,有效地判断目标脚本是否合法,从而保证业务运行的安全性。
参照图4,本发明实施例还提供一种脚本变量管理装置,所述脚本变量管理装置包括:
变量获取模块10,用于在接收到脚本提交请求时,获取所述脚本提交请求对应的目标脚本,及所述目标脚本中包含的目标自定义变量;
查询获取模块20,用于查询预设hashmap,获取所述目标自定义变量对应的目标键值对,和所述目标键值对中的目标变量值;
替换提交模块30,用于将所述目标自定义变量替换为所述目标变量值,并将所述目标脚本提交运行。
可选地,所述脚本变量管理装置包括:
检测获取模块,用于在检测到脚本信息更新时,获取更新的脚本和配置信息;
解析保存模块,用于解析所述脚本和所述配置信息,提取所述脚本和所述配置信息中的自定义变量,和所述自定义变量对应的变量值,将所述自定义变量和所述变量值作为键值对保存至预设hashmap;
在一实施例中,所述解析保存模块,包括:
第一解析子模块,用于解析所述脚本,得到所述脚本中的第一自定义变量,和所述第一自定义变量对应的第一变量值,将所述第一自定义变量和所述第一变量值作为第一键值对保存至预设hashmap;
第二解析子模块,用于解析所述脚本配置信息,得到所述脚本配置信息中的第二自定义变量,和所述第二自定义变量对应的第二变量值,将所述第二自定义变量和所述第二变量值作为第二键值对保存至所述预设hashmap;
第三解析子模块,用于解析所述系统配置信息,得到所述系统配置信息中的第三自定义变量,和所述第三自定义变量对应的第三变量值,将所述第三自定义变量和所述第三变量值作为第三键值对保存至所述预设hashmap。
在一实施例中,所述第二解析子模块,包括:
变量解析单元,用于解析所述脚本配置信息,得到所述脚本配置信息中的第二自定义变量,和所述第二自定义变量对应的第二变量值,将所述第二自定义变量和所述第二变量值作为第二键值对;
键值对判断单元,用于判断所述预设hashmap中是否存在与所述第二键值对匹配的预存键值对;
键值对保存单元,用于若所述预设hashmap中不存在与所述第二键值对匹配的预存键值对,则将所述第二键值对保存至所述预设hashmap。
在一实施例中,所述键值对判断单元,还用于:
将所述第二键值对中的所述第二自定义变量和所述第二变量值与所述预设hashmap中各预存键值对的自定义变量和变量值进行比较;
若不存在与所述第二自定义变量相同的预存自定义变量,且不存在与所述第二变量值相同的预存变量值,则判定所述预设hashmap中不存在与所述第二键值对匹配的预存键值对;
若存在与所述第二自定义变量相同的预存自定义变量,和/或存在与所述第二变量值相同的预存变量值,则判定所述预设hashmap中存在与所述第二键值对匹配的预存键值对。
在一实施例中,所述的脚本变量管理装置,包括:
优先级设置模块,用于获取所述键值对的来源信息,并根据所述键值对的来源信息设置所述键值对的优先级;
所述替换提交模块30,还用于:
若所述目标键值对的数量为至少两个,则获取优先级最高的目标键值对中的目标变量值,将所述目标自定义变量替换为所述目标变量值,并将所述目标脚本提交运行。
在一实施例中,所述替换提交模块30,包括:
替换验证单元,用于将所述目标自定义变量替换为所述目标变量值,并对替换后的所述目标脚本进行安全性校验;
脚本提交单元,用于在所述目标脚本安全性验证通过时,将所述目标脚本提交运行。
上述各程序模块所执行的方法可参照本发明脚本变量管理方法各个实施例,此处不再赘述。
本发明还提供一种计算机可读存储介质。
本发明计算机可读存储介质上存储有脚本变量管理程序,所述脚本变量管理程序被处理器执行时实现如上所述的脚本变量管理方法的步骤。
其中,在所述处理器上运行的脚本变量管理程序被执行时所实现的方法可参照本发明脚本变量管理方法各个实施例,此处不再赘述。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。