The disclosure text discloses a script processing method and device, which relates to the network technology field. Including: access to be executed according to the script; script generating abstract syntax tree; add interrupt checking logic in setting the node of the abstract syntax tree; abstract syntax tree according to add interrupt checking logic, the generated executable program supports interrupt check. In this scheme, even if the user submitted potential dead circulation script in the unconscious, but also to ensure that when executed including automatic dead cycle check script compile, reduce the waste of computing resources in the cycle of death, solve the technical problems existing in related technology.
【技术实现步骤摘要】
脚本处理方法及装置
本披露文本涉及网络
,尤其涉及一种脚本处理方法及装置。
技术介绍
目前,很多网页(WEB)应用中设置自定义脚本的功能,用户可以编写脚本,由网页应用提交给服务器;服务器接收到该脚本后,会对其进行编译并启动一个线程执行编译后的脚本,然后将结果返回给网页应用。如果用户恶意或者无意在脚本中写了死循环逻辑(例如:while(true){}),那么服务器启动的线程就会一直运行,非常消耗中央处理器(CentralProcessingUnit,CPU)等资源;如果该网页应用中包含死循环逻辑的脚本较多,那么该网页应用就会卡死,影响用户体验。为了检测脚本中的死循环逻辑,服务器通常会检测线程的执行时长,一旦线程的执行时长超过设定时长,就会发送中断信号,但是发送中断信号并不能保证线程一定会终止,并且仅仅通过线程执行时长来判断脚本中是否存在死循环逻辑,判断维度太单一,很难进行准确判断。可见,相关的脚本处理方法中,不能准确检测脚本中是否存在死循环逻辑,在检测出脚本中存在死循环逻辑时,也不能终止正在执行的线程。
技术实现思路
本披露文本实施例提供一种脚本处理方法及装置,用以解决相关技术中存在的不能准确检测脚本中是否存在死循环逻辑,以及在检测出脚本中存在死循环逻辑时,也不能终止正在执行的线程的问题。根据本披露文本实施例,提供一种脚本处理方法,包括:获取待执行的脚本;根据所述脚本生成抽象语法树;在所述抽象语法树的设定节点中添加中断检查逻辑;根据添加中断检查逻辑的抽象语法树,生成支持中断检查的可执行程序。具体的,所述设定节点是所述抽象语法树中包括的易产生死循环的节点。可 ...
【技术保护点】
一种脚本处理方法,其特征在于,包括:获取待执行的脚本;根据所述脚本生成抽象语法树;在所述抽象语法树的设定节点中添加中断检查逻辑;根据添加中断检查逻辑的抽象语法树,生成支持中断检查的可执行程序。
【技术特征摘要】
1.一种脚本处理方法,其特征在于,包括:获取待执行的脚本;根据所述脚本生成抽象语法树;在所述抽象语法树的设定节点中添加中断检查逻辑;根据添加中断检查逻辑的抽象语法树,生成支持中断检查的可执行程序。2.如权利要求1所述的方法,其特征在于,所述设定节点是所述抽象语法树中包括的易产生死循环的节点。3.如权利要求1所述的方法,其特征在于,还包括:启动第一线程运行所述可执行程序;在所述可执行程序的运行过程中,调用所述中断检查逻辑执行:监控所述第一线程是否接收到中断请求;以及,统计所述脚本中的各个设定节点的循环次数,并监控各个所述设定节点的循环次数是否满足终止条件;若监控到所述第一线程接收到中断请求或者各个所述设定节点的循环次数满足所述终止条件,则终止所述第一线程运行所述可执行程序。4.如权利要求3所述的方法,其特征在于,监控各个所述设定节点的循环次数是否满足终止条件,具体包括:确定各个所述设定节点的循环次数的总和是否超过第一设定次数,若各个所述设定节点的循环次数的总和超过所述第一设定次数,则监控到各个所述设定节点的循环次数满足所述终止条件;或者,确定各个所述设定节点的循环次数的平均值是否超过第二设定次数,若各个所述设定节点的循环次数的平均值超过所述第二设定次数,则监控到各个所述设定节点的循环次数满足所述终止条件。5.如权利要求3所述的方法,其特征在于,终止所述第一线程运行所述可执行程序,具体包括:在所述可执行程序的运行过程中,逐级抛出异常,直到终止所述第一线程。6.如权利要求3-5任一所述的方法,其特征在于,还包括:调用第二线程执行:获取所述中断检查逻辑统计的所述脚本中的各个设定节点的循环次数;确定各个所述设定节点的循环次数的总和是否超过第三设定次数,若各个所述设定节点的循环次数的总和超过所述第三设定次数,则向所述第一线程发送所述中断请求;或者,确定各个所述设定节点的循环次数的平均值是否超过第四设定次数,若各个所述设定节点的循环次数的平均值超过所述第四设定次数,则向所述第一线程发送所述中断请求;或者,检测所述第一线程的运行时长,判断所述第一线程的运行时长是否超过设定时长,若所述第一线程的运行时长超过所述设定时长,则向所述第一线程发送所述中断请求。7.一种脚本处理装置,其特征在于,包括:获取模块,用于获取待执行的脚本;第一生成模块,...
【专利技术属性】
技术研发人员:郭志通,
申请(专利权)人:阿里巴巴集团控股有限公司,
类型:发明
国别省市:开曼群岛,KY
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。