[发明专利]脚本运行方法、装置、电子设备及存储介质在审
| 申请号: | 201811300354.2 | 申请日: | 2018-11-02 | 
| 公开(公告)号: | CN109445881A | 公开(公告)日: | 2019-03-08 | 
| 发明(设计)人: | 关振宇;朱家强 | 申请(专利权)人: | 拉卡拉支付股份有限公司 | 
| 主分类号: | G06F9/448 | 分类号: | G06F9/448 | 
| 代理公司: | 北京英赛嘉华知识产权代理有限责任公司 11204 | 代理人: | 王达佐;王艳春 | 
| 地址: | 100094 北京市海*** | 国省代码: | 北京;11 | 
| 权利要求书: | 查看更多 | 说明书: | 查看更多 | 
| 摘要: | |||
| 搜索关键词: | 语句 脚本运行 依赖关系 存储介质 电子设备 脚本 并行执行 | ||
本公开实施例公开了一种脚本运行方法、装置、电子设备及存储介质。根据一个实施方式的脚本运行方法,其特征在于,包括:确定脚本内的语句之间的依赖关系;根据所述依赖关系将所述脚本内的至少部分所述语句分为多个组,使得任意一个所述组中的任意一个所述语句与任意另一个所述组中的任意一个所述语句之间没有依赖关系;并行执行所述多个组。
技术领域
本公开涉及计算机领域,具体地,涉及一种脚本运行方法、装置、电子设备及存储介质。
背景技术
脚本(script)是一种可在特定的运行环境(runtime environment)中运行的文件。例如,JavaScript脚本文件(后缀为.js)的运行环境包括浏览器环境和非浏览器环境(比如Node.js、MongoDB),SQL脚本文件(后缀为.sql)的运行环境包括MYSQL,SQL Server,Oracle等。
脚本文件的内容是以解释性语言撰写的一条条的语句。运行脚本文件时,由解释器(interpreter)从第一条语句开始读一条解释一条,如果是指令性语句则去运行,运行完后再读下一条语句,即边解释边运行。
由于脚本文件运行的这种特点,所以在脚本文件包含很多语句的情况下,运行脚本文件会很耗时。
发明内容
本公开要解决的技术问题在于,在脚本文件包含很多语句的情况下,运行脚本文件会很耗时。
根据本公开的一个方面,一种脚本运行方法包括:确定脚本内的语句之间的依赖关系;根据依赖关系将语句分组,使得组之间没有依赖关系;并行执行组。
在一个实施方式中,上述脚本运行方法还可包括:根据依赖关系将组中的语句分为子组,使得子组之间没有依赖关系;并行执行子组。
在一个实施方式中,确定脚本内的语句之间的依赖关系可包括:确定每个语句的输入和/或输出;两两比较语句的输入和/或输出,判断其中一个语句的输入与另一个语句的输出的交集是否不为空、或者其中一个语句的输出与另一个语句的输出的交集是否不为空;当判断结果为是时,确定两个语句之间具有依赖关系。
在一个实施方式中,确定每个语句的输入和/或输出可包括:通过语法分析器生成每个语句的语法树;以及遍历语法树,确定每个语句的输入和/或输出。
在一个实施方式中,确定每个语句的输入和输出可包括:通过语法分析器生成每个语句的语法树;将语法树转化为查询块,确定每个语句的输入和/或输出。
根据本公开的另一方面,一种脚本运行装置包括:依赖关系确定模块,用于确定脚本内的语句之间的依赖关系;分组模块,用于根据依赖关系确定模块所确定的依赖关系将语句分组,使得组之间没有依赖关系;并行执行模块,用于并行执行根据分组模块所分的组。
在一个实施方式中,分组模块还可用于:根据依赖关系确定模块所确定的依赖关系将组中的语句分为子组,使得子组之间没有依赖关系;并行执行模块还用于:并行执行子组。
在一个实施方式中,依赖关系确定模块可包括:语句分析子模块,用于确定每个语句的输入和/或输出;依赖关系确定子模块,用于两两比较语句的输入和/或输出,判断其中一个语句的输入与另一个语句的输出的交集是否不为空、或者其中一个语句的输出与另一个语句的输出的交集是否不为空,且当判断结果为是时,确定两个语句之间具有依赖关系。
在一个实施方式中,语句分析子模块可用于:通过语法分析器生成每个语句的语法树;遍历语法树,确定每个语句的输入和/或输出。
在一个实施方式中,语句分析子模块可用于:通过语法分析器生成每个语句的语法树;将语法树转化为查询块,确定每个语句的输入和/或输出。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于拉卡拉支付股份有限公司,未经拉卡拉支付股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201811300354.2/2.html,转载请声明来源钻瓜专利网。
- 上一篇:跨线程调用链上下文的传递方法、装置及电子设备
- 下一篇:界面显示系统及方法





