CN108241543A - 业务操作断点执行的方法、业务服务器及系统 - Google Patents
业务操作断点执行的方法、业务服务器及系统 Download PDFInfo
- Publication number
- CN108241543A CN108241543A CN201611263942.4A CN201611263942A CN108241543A CN 108241543 A CN108241543 A CN 108241543A CN 201611263942 A CN201611263942 A CN 201611263942A CN 108241543 A CN108241543 A CN 108241543A
- Authority
- CN
- China
- Prior art keywords
- function
- array
- business operation
- called
- title
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/547—Remote procedure calls [RPC]; Web services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/34—Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明涉及一种业务操作断点执行的方法、业务服务器及系统,该方法包括:预先定义业务操作;若在业务操作的执行过程中有函数被调用,则确定函数的名称、输入的函数参数及执行结果,生成预设格式的数组并与业务操作关联;若在业务操作的执行过程中发生异常,则将业务操作对应的源代码及关联的数组加载至开发机中,以修改对应的源代码;在接收到修改后的源代码后,重新执行业务操作,并在有函数被调用时,将被调用的函数与各数组进行匹配;若函数的名称及函数参数均匹配成功,则跳过该函数的执行过程,并将对应的数组中的执行结果返回以作为该函数的执行结果。本发明能快速还原发生异常前业务操作执行的状态,提高业务操作的执行速度及工作效率。
Description
技术领域
本发明涉及通信技术领域,尤其涉及一种业务操作断点执行的方法、业务服务器及系统。
背景技术
目前,在金融等服务领域,业界经常遇到的线上问题有:线上的服务可能需要执行很多业务操作,业务操作例如为“从百度搜索中搜取100张关于风景的图片”。在执行业务操作的过程中,一旦某一函数的调用发生异常,现有的做法是由技术人员修改对应的代码,然后重新启动该业务操作,将该业务操作的函数逐个重新调用,以保证本次的执行环境和上次的执行环境一样。
由于在重新启动该业务操作后,该业务操作的函数需要逐个重新调用,即服务器需要花费一定的时间执行一些重复的操作,因此无法快速还原发生异常前业务操作执行的状态,导致业务操作执行过慢,工作效率低。
发明内容
本发明的目的在于提供一种业务操作断点执行的方法、业务服务器及系统,旨在快速还原发生异常前业务操作执行的状态,提高业务操作的执行速度及提高业务操作处理的工作效率。
为实现上述目的,本发明提供一种业务操作断点执行的方法,所述业务操作断点执行的方法包括:
S1,业务服务器预先定义需要进行执行过程控制的业务操作;
S2,若在所述业务操作的执行过程中有函数被调用,则业务服务器确定所述函数的名称、输入的函数参数及执行结果,基于所述函数的名称、输入的函数参数及执行结果生成预设格式的数组,并将所述数组与所述业务操作关联;
S3,若在所述业务操作的执行过程中发生异常,则业务服务器将所述业务操作对应的源代码及关联的数组加载至开发机中;
S4,开发机执行所述业务操作,并基于所述数组修改对应的源代码,将修改后的代码上传给所述业务服务器;
S5,业务服务器在接收到开发机上传的修改后的源代码后,基于修改后的源代码重新执行所述业务操作,并在有函数被调用时,将被调用的函数中的名称及函数参数与各数组中的函数的名称及函数参数对应进行匹配;
S6,若所述函数的名称及函数参数均匹配成功,则业务服务器跳过该函数的执行过程,并将对应的数组中的执行结果返回以作为该函数的执行结果。
优选地,所述步骤S5之后还包括:
S7,若所述函数的名称和/或函数参数匹配失败,则业务服务器确定被调用的函数是否有对应的已存数组,且确定是否有执行顺序在该被调用的函数之后的函数有已存数组;
S8,若该被调用的函数有已存数组,和/或有执行顺序在该被调用的函数之后的函数有已存数组,则业务服务器将该被调用的函数的已存数组和/或执行顺序在该被调用的函数之后的函数的已存数组进行清除,执行该被调用的函数并记录执行结果;
S9,获取与所述执行结果对应的函数的名称及函数参数,基于所述执行结果及所获取的函数的名称、函数参数生成预设格式的数组,并将生成的数组与所述业务操作关联。
优选地,所述步骤S7之后还包括:
S10,若该被调用的函数无已存数组,且执行顺序在该被调用的函数之后的函数无已存数组,则业务服务器执行该被调用的函数并记录执行结果,并执行步骤S9。
优选地,所述步骤S4包括:
S41,若在开发机重新执行所述业务操作的过程中有函数被调用,则确定被调用的函数的名称,并将所述函数的名称与所述业务操作关联的各数组中的函数的名称进行匹配;
S42,若匹配均失败,则将该函数的位置作为断点位置,以供调试员基于所述断点位置确定异常原因并修改对应的源代码。
优选地,所述异常原因包括断点位置的源代码异常、断点位置之后的源代码异常、断点位置的调用函数异常、断点位置之前的调用函数异常、断点位置的函数参数异常及断点位置之前的函数参数异常。
为实现上述目的,本发明还提供一种业务服务器,所述业务服务器包括:
定义模块,用于预先定义需要进行执行过程控制的业务操作;
第一生成模块,用于若在所述业务操作的执行过程中有函数被调用,则确定所述函数的名称、输入的函数参数及执行结果,基于所述函数的名称、输入的函数参数及执行结果生成预设格式的数组,并将所述数组与所述业务操作关联;
加载模块,用于若在所述业务操作的执行过程中发生异常,则将所述业务操作对应的源代码及关联的数组加载至开发机中;
匹配模块,用于在接收到开发机上传的修改后的源代码后,基于修改后的源代码重新执行所述业务操作,并在有函数被调用时,将被调用的函数中的名称及函数参数与各数组中的函数的名称及函数参数对应进行匹配;
返回模块,用于若所述函数的名称及函数参数均匹配成功,则跳过该函数的执行过程,并将对应的数组中的执行结果返回以作为该函数的执行结果。
优选地,所述业务服务器还包括:
确定模块,用于若所述函数的名称和/或函数参数匹配失败,则确定被调用的函数是否有对应的已存数组,且确定是否有执行顺序在该被调用的函数之后的函数有已存数组;
清除模块,用于若该被调用的函数有已存数组,和/或有执行顺序在该被调用的函数之后的函数有已存数组,则将该被调用的函数的已存数组和/或执行顺序在该被调用的函数之后的函数的已存数组进行清除,执行该被调用的函数并记录执行结果;
第二生成模块,用于获取与所述执行结果对应的函数的名称及函数参数,基于所述执行结果及所获取的函数的名称、函数参数生成预设格式的数组,并将生成的数组与所述业务操作关联。
优选地,所述业务服务器还包括:
执行模块,用于若该被调用的函数无已存数组,且执行顺序在该被调用的函数之后的函数无已存数组,则业务服务器执行该被调用的函数并记录执行结果。
为实现上述目的,本发明还提供一种系统,所述系统包括开发机及上述的业务服务器,所述开发机用于加载所述业务服务器的所述业务操作对应的源代码及关联的数组,执行所述业务操作,并基于所述数组修改对应的源代码,将修改后的代码上传给所述业务服务器。
优选地,所述开发机具体用于若在开发机重新执行所述业务操作的过程中有函数被调用,则确定被调用的函数的名称,并将所述函数的名称与所述业务操作关联的各数组中的函数的名称进行匹配;若匹配均失败,则将该函数的位置作为断点位置,以供调试员基于所述断点位置确定异常原因并修改对应的源代码,其中,所述异常原因包括断点位置的源代码异常、断点位置之后的源代码异常、断点位置的调用函数异常、断点位置之前的调用函数异常、断点位置的函数参数异常及断点位置之前的函数参数异常。
本发明的有益效果是:本发明预先定义需要控制的业务操作,在业务操作执行过程中有函数被调用时,生成由被调用的函数的名称、输入的函数参数及执行结果构成的数组,在发生异常时,由开发机调试对应的源代码后将其返回给业务服务器,如果是之前调用过的、且调用时未发生异常的函数,可以直接将对应的数组中的执行结果返回即可,不需要逐个函数进行重新调用,能够较快还原发生异常前业务操作执行的状态,提高业务操作的执行速度及提高业务操作处理的工作效率。
附图说明
图1为本发明业务操作断点执行的方法第一实施例的流程示意图;
图2为本发明业务操作断点执行的方法第二实施例的流程示意图;
图3为本发明业务操作断点执行的方法第三实施例的流程示意图;
图4为图1所示步骤S4的细化流程示意图;
图5为本发明业务服务器一实施例的结构示意图;
图6为本发明系统一实施例的结构示意图。
具体实施方式
以下结合附图对本发明的原理和特征进行描述,所举实例只用于解释本发明,并非用于限定本发明的范围。
如图1所示,图1为本发明业务操作断点执行的方法一实施例的流程示意图,该业务操作断点执行的方法包括以下步骤:
步骤S1,业务服务器预先定义需要进行执行过程控制的业务操作。
本实施例中,所定义的需要进行执行过程控制的业务操作可以是一个或者多个,业务操作例如可以是:需要进行复杂字符串处理的操作或需要调用外部接口的操作等等。
步骤S2,若在所述业务操作的执行过程中有函数被调用,则业务服务器确定所述函数的名称、输入的函数参数及执行结果,基于所述函数的名称、输入的函数参数及执行结果生成预设格式的数组,并将所述数组与所述业务操作关联。
本实施例中,在业务操作的执行过程中如果有函数被调用,则业务服务器确定所调用的函数的名称、输入的函数参数及执行结果,然后生成预设格式的数组,例如生成的数组为:{name:“调用函数名”,param:“输入的函数参数”,result:“本次函数执行的结果”},将生成的数组与该业务操作关联。
进一步地,在将生成的数组与该业务操作关联前,可以在定义需要进行执行过程控制的业务操作后生成代表该业务操作的操作过程的唯一标识,然后将该标识与生成的数组进行关联,以实现将数组与业务操作进行关联。
步骤S3,若在所述业务操作的执行过程中发生异常,则业务服务器将所述业务操作对应的源代码及关联的数组加载至开发机中。
本实施例中,如果在业务操作执行的过程中,如果发生异常,则将业务操作对应的源代码及与该业务操作关联的数组加载至开发机中,该开发机具有软件调试功能。
步骤S4,开发机执行所述业务操作,并基于所述数组修改对应的源代码,将修改后的代码上传给所述业务服务器。
本实施例中,开发机基于该业务操作对应的源代码重新执行该业务操作,开发机在执行过程中可以自动找到数组结束的断点位置,调试人员基于断点位置可以在开发机上修改源代码。在修改源代码后,开发机将修改后的源代码发送给业务服务器。
步骤S5,业务服务器在接收到开发机上传的修改后的源代码后,基于修改后的源代码重新执行所述业务操作,并在有函数被调用时,将被调用的函数中的名称及函数参数与各数组中的函数的名称及函数参数对应进行匹配。
本实施例中,由业务服务器基于修改后的源代码再次执行该业务操作,然后在执行该业务操作的过程中,如果有函数被调用,将被调用的函数与数组逐个进行匹配,即将被调用的函数中函数的名称与某一数组中的函数的名称进行匹配、同时将该被调用的函数中的函数参数与该数组中的函数参数进行匹配。
步骤S6,若所述函数的名称及函数参数均匹配成功,则业务服务器跳过该函数的执行过程,并将对应的数组中的执行结果返回以作为该函数的执行结果。
本实施例中,如果被调用的函数中的函数的名称及函数参数与某一数组中的函数的名称及函数参数匹配或者两者分别一致,则匹配成功。业务服务器跳过该函数的执行过程,即不需要执行该函数,而是直接将所匹配的数组中的执行结果返回作为该函数的执行结果。
为了便于理解,以下以业务操作“从百度搜索中搜取100张关于风景的图片,然后一张张传给客户端”为例进行说明:
其中,部分程序代码包括:
在该程序代码中,有两个函数分别是“GetResultFromBaidu”、“AnalyzeResult”。GetResultFromBaidu函数为发送给百度服务器的一个请求函数,AnalyzeResult函数为通过返回的HTML,从里面分析出100张关于风景的图片。
如果在执行echo list[i]执行时出现异常或程序发生崩溃,则首先确定需要在开发机中还原线上的执行状态,以及将修改后的程序代码发布到线上,使得当前程序继续从echo[i]处执行。
建立数组{函数名,输入参数,结果}来存放上述的两个函数,然后在本地调试echo[i]的执行情况:当程序执行到GetResultFromBaidu的操作时发现,函数名以及输入参数和数组中对应的一致,则不再调用接口进行请求,而是直接返回数组中的结果;当程序执行到AnalyzeResult的时发现,函数名以及输入参数和数组中对应的一致,也不再调用复杂的处理程序,而直接返回数组中的结果,经调试后,还原了出现异常前的状态。
与现有技术相比,本实施例预先定义需要控制的业务操作,在业务操作执行过程中有函数被调用时,生成由被调用的函数的名称、输入的函数参数及执行结果构成的数组,在发生异常时,由开发机调试对应的源代码后将其返回给业务服务器,如果是之前调用过的、且调用时未发生异常的函数,可以直接将对应的数组中的执行结果返回即可,不需要逐个函数进行重新调用,能够较快还原发生异常前业务操作执行的状态,提高业务操作的执行速度及提高业务操作处理的工作效率。
在一优选的实施例中,如图2所示,在上述图1的实施例的基础上,在上述步骤S5之后还包括:
步骤S7,若所述函数的名称和/或函数参数匹配失败,则业务服务器确定被调用的函数是否有对应的已存数组,且确定是否有执行顺序在该被调用的函数之后的函数有已存数组;
步骤S8,若该被调用的函数有已存数组,和/或有执行顺序在该被调用的函数之后的函数有已存数组,则业务服务器将该被调用的函数的已存数组和/或执行顺序在该被调用的函数之后的函数的已存数组进行清除,执行该被调用的函数并记录执行结果;
步骤S9,获取与所述执行结果对应的函数的名称及函数参数,基于所述执行结果及所获取的函数的名称、函数参数生成预设格式的数组,并将生成的数组与所述业务操作关联。
本实施例中,如果被调用的函数的函数的名称与各数组中函数的名称均不相同但是函数参数有相同的、或者函数的名称有相同的但函数参数均不同、或者函数的名称及函数参数均不相同时,则匹配失败,这时源代码中的函数的名称或者函数参数可能已经在开发机中被修改。业务服务器确定该被调用的函数是否有对应的已存数组,例如将该业务操作中的各被调用函数与各数组进行一一对应,以确定该被调用的函数是否有对应的已存函数,同时确定是否有执行顺序在该被调用的函数之后的函数有已存数组。
如果该被调用的函数有对应的已存数组,和/或有执行顺序在该被调用的函数之后的函数有已存数组,则将该被调用的函数的已存数组及/或执行顺序在该被调用的函数之后的函数的已存数组进行清除,然后才执行该被调用的函数,记录执行结果。最后重新确定该被调用的函数的函数的名称、输入的函数参数,生成该函数的名称、输入的函数参数及执行结果的数组,并将生成的数组与业务操作关联。
本实施例中,经开发机调试后的源代码在业务服务器上重新执行时,如果被调用的函数未能与数组匹配,但被调用的函数存在已存数组,和/或有执行顺序在该被调用的函数之后的函数有已存数组,则需要删除已存数组,以减少后续不必要的匹配过程,在执行该被调用函数之后重新生成与该被调用的函数匹配的数组。
本实施例仍以上述的业务操作“从百度搜索中搜取100张关于风景的图片,然后一张张传给客户端”为例进行说明:
如果已经修改了源代码,修改后的源代码为:
业务服务器执行到GetResultFromBaidu的操作时发现,函数名以及函数参数和数组中对应的一致,就不再调用百度的接口,而直接返回该数组中的执行结果。当执行到AnalyzeResult时发现,函数参数和数组中对应的不一致(由100变成200),则把该数组中的所有内容都删除,重新执行AnalyzeResult中修改后的代码,并重新生成与被调用的函数匹配的数组。这样,即使线上的环境发生变化,存储在数组中的执行结果也不会影响执行环境。
在一优选的实施例中,如图3所示,在上述图2的实施例的基础上,在上述步骤S7之后还包括:
S10,若该被调用的函数无已存数组,且执行顺序在该被调用的函数之后的函数无已存数组,则业务服务器执行该被调用的函数并记录执行结果,并执行步骤S9。
本实施例中,如果被调用的函数未能与数组匹配,并且,被调用的函数不存在已存数组,和/或执行顺序在该被调用的函数之后的函数没有已存数组则在执行该被调用函数之后,重新生成与该被调用的函数匹配的数组。
在一优选的实施例中,如图4所示,在上述图1的实施例的基础上,上述步骤S4包括:
S41,若在开发机重新执行所述业务操作的过程中有函数被调用,则确定被调用的函数的名称,并将所述函数的名称与所述业务操作关联的各数组中的函数的名称进行匹配;
S42,若匹配均失败,则将该函数的位置作为断点位置,以供调试员基于所述断点位置确定异常原因并修改对应的源代码。
本实施例中,如果在开发机重新执行该业务操作的过程中有函数被调用,则将被调用的函数的名称与该业务操作关联的各数组中的函数的名称进行匹配,如果在各数组中没有函数的名称一致的数组,则自动将该函数的位置作为断点位置,调试员基于该断点位置确定发生异常的异常原因,然后在开发机上修改源代码。
其中,异常原因包括但不限于断点位置的源代码异常、断点位置之后的源代码异常、断点位置的调用函数异常、断点位置之前的调用函数异常、断点位置的函数参数异常及断点位置之前的函数参数异常。
如图5所示,图5为本发明业务服务器一实施例的结构示意图,该业务服务器包括:
定义模块101,用于预先定义需要进行执行过程控制的业务操作;
本实施例中,所定义的需要进行执行过程控制的业务操作可以是一个或者多个,业务操作例如可以是:需要进行复杂字符串处理的操作或需要调用外部接口的操作等等。
第一生成模块102,用于若在所述业务操作的执行过程中有函数被调用,则确定所述函数的名称、输入的函数参数及执行结果,基于所述函数的名称、输入的函数参数及执行结果生成预设格式的数组,并将所述数组与所述业务操作关联;
本实施例中,在业务操作的执行过程中如果有函数被调用,则业务服务器确定所调用的函数的名称、输入的函数参数及执行结果,然后生成预设格式的数组,例如生成的数组为:{name:“调用函数名”,param:“输入的函数参数”,result:“本次函数执行的结果”},将生成的数组与该业务操作关联。
进一步地,在将生成的数组与该业务操作关联前,可以在定义需要进行执行过程控制的业务操作后生成代表该业务操作的操作过程的唯一标识,然后将该标识与生成的数组进行关联,以实现将数组与业务操作进行关联。
加载模块103,用于若在所述业务操作的执行过程中发生异常,则将所述业务操作对应的源代码及关联的数组加载至开发机中;
本实施例中,如果在业务操作执行的过程中,如果发生异常,则将业务操作对应的源代码及与该业务操作关联的数组加载至开发机中,该开发机具有软件调试功能。
匹配模块104,用于在接收到开发机上传的修改后的源代码后,基于修改后的源代码重新执行所述业务操作,并在有函数被调用时,将被调用的函数中的名称及函数参数与各数组中的函数的名称及函数参数对应进行匹配;
本实施例中,由业务服务器基于修改后的源代码再次执行该业务操作,然后在执行该业务操作的过程中,如果有函数被调用,将被调用的函数与数组逐个进行匹配,即将被调用的函数中函数的名称与某一数组中的函数的名称进行匹配、同时将该被调用的函数中的函数参数与该数组中的函数参数进行匹配。
返回模块105,用于若所述函数的名称及函数参数均匹配成功,则跳过该函数的执行过程,并将对应的数组中的执行结果返回以作为该函数的执行结果。
本实施例中,如果被调用的函数中的函数的名称及函数参数与某一数组中的函数的名称及函数参数匹配或者两者分别一致,则匹配成功。业务服务器跳过该函数的执行过程,即不需要执行该函数,而是直接将所匹配的数组中的执行结果返回作为该函数的执行结果。
本实施例可以参阅上述的以业务操作“从百度搜索中搜取100张关于风景的图片,然后一张张传给客户端”为实例的说明,此处不再赘述。
在一优选的实施例中,在上述图5的实施例的基础上,上述业务服务器还包括:
确定模块,用于若所述函数的名称和/或函数参数匹配失败,则确定被调用的函数是否有对应的已存数组,且确定是否有执行顺序在该被调用的函数之后的函数有已存数组;
清除模块,用于若该被调用的函数有已存数组,和/或有执行顺序在该被调用的函数之后的函数有已存数组,则将该被调用的函数的已存数组和/或执行顺序在该被调用的函数之后的函数的已存数组进行清除,执行该被调用的函数并记录执行结果;
第二生成模块,用于获取与所述执行结果对应的函数的名称及函数参数,基于所述执行结果及所获取的函数的名称、函数参数生成预设格式的数组,并将生成的数组与所述业务操作关联。
本实施例中,如果被调用的函数的函数的名称与各数组中函数的名称均不相同但是函数参数有相同的、或者函数的名称有相同的但函数参数均不同、或者函数的名称及函数参数均不相同时,则匹配失败,这时源代码中的函数的名称或者函数参数可能已经在开发机中被修改。业务服务器确定该被调用的函数是否有对应的已存数组,例如将该业务操作中的各被调用函数与各数组进行一一对应,以确定该被调用的函数是否有对应的已存函数,同时确定是否有执行顺序在该被调用的函数之后的函数有已存数组。
如果该被调用的函数有对应的已存数组,和/或有执行顺序在该被调用的函数之后的函数有已存数组,则将该被调用的函数的已存数组及/或执行顺序在该被调用的函数之后的函数的已存数组进行清除,然后才执行该被调用的函数,记录执行结果。最后重新确定该被调用的函数的函数的名称、输入的函数参数,生成该函数的名称、输入的函数参数及执行结果的数组,并将生成的数组与业务操作关联。
本实施例中,经开发机调试后的源代码在业务服务器上重新执行时,如果被调用的函数未能与数组匹配,但被调用的函数存在已存数组,和/或有执行顺序在该被调用的函数之后的函数有已存数组,则需要删除已存数组,以减少后续不必要的匹配过程,在执行该被调用函数之后重新生成与该被调用的函数匹配的数组。相关的实例可以参阅上述以业务操作“从百度搜索中搜取100张关于风景的图片,然后一张张传给客户端”为实例的说明。
在一优选的实施例中,在上述图5的实施例的基础上,所述业务服务器还包括:
执行模块,用于若该被调用的函数无已存数组,且执行顺序在该被调用的函数之后的函数无已存数组,则业务服务器执行该被调用的函数并记录执行结果。
本实施例中,如果被调用的函数未能与数组匹配,并且,被调用的函数不存在已存数组,和/或执行顺序在该被调用的函数之后的函数没有已存数组则在执行该被调用函数之后,重新生成与该被调用的函数匹配的数组。
如图6所示,图6为本发明系统一实施例的结构示意图,该系统包括开发机及上述的业务服务器,所述开发机用于加载所述业务服务器的所述业务操作对应的源代码及关联的数组,执行所述业务操作,并基于所述数组修改对应的源代码,将修改后的代码上传给所述业务服务器。具体地,开发机用于若在开发机重新执行所述业务操作的过程中有函数被调用,则确定被调用的函数的名称,并将所述函数的名称与所述业务操作关联的各数组中的函数的名称进行匹配;若匹配均失败,则将该函数的位置作为断点位置,以供调试员基于所述断点位置确定异常原因并修改对应的源代码,其中,所述异常原因包括断点位置的源代码异常、断点位置之后的源代码异常、断点位置的调用函数异常、断点位置之前的调用函数异常、断点位置的函数参数异常及断点位置之前的函数参数异常。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种业务操作断点执行的方法,其特征在于,所述业务操作断点执行的方法包括:
S1,业务服务器预先定义需要进行执行过程控制的业务操作;
S2,若在所述业务操作的执行过程中有函数被调用,则业务服务器确定所述函数的名称、输入的函数参数及执行结果,基于所述函数的名称、输入的函数参数及执行结果生成预设格式的数组,并将所述数组与所述业务操作关联;
S3,若在所述业务操作的执行过程中发生异常,则业务服务器将所述业务操作对应的源代码及关联的数组加载至开发机中;
S4,开发机执行所述业务操作,并基于所述数组修改对应的源代码,将修改后的代码上传给所述业务服务器;
S5,业务服务器在接收到开发机上传的修改后的源代码后,基于修改后的源代码重新执行所述业务操作,并在有函数被调用时,将被调用的函数中的名称及函数参数与各数组中的函数的名称及函数参数对应进行匹配;
S6,若所述函数的名称及函数参数均匹配成功,则业务服务器跳过该函数的执行过程,并将对应的数组中的执行结果返回以作为该函数的执行结果。
2.根据权利要求1所述的业务操作断点执行的方法,其特征在于,所述步骤S5之后还包括:
S7,若所述函数的名称和/或函数参数匹配失败,则业务服务器确定被调用的函数是否有对应的已存数组,且确定是否有执行顺序在该被调用的函数之后的函数有已存数组;
S8,若该被调用的函数有已存数组,和/或有执行顺序在该被调用的函数之后的函数有已存数组,则业务服务器将该被调用的函数的已存数组和/或执行顺序在该被调用的函数之后的函数的已存数组进行清除,执行该被调用的函数并记录执行结果;
S9,获取与所述执行结果对应的函数的名称及函数参数,基于所述执行结果及所获取的函数的名称、函数参数生成预设格式的数组,并将生成的数组与所述业务操作关联。
3.根据权利要求2所述的业务操作断点执行的方法,其特征在于,所述步骤S7之后还包括:
S10,若该被调用的函数无已存数组,且执行顺序在该被调用的函数之后的函数无已存数组,则业务服务器执行该被调用的函数并记录执行结果,并执行步骤S9。
4.根据权利要求1至3任一项所述的业务操作断点执行的方法,其特征在于,所述步骤S4包括:
S41,若在开发机重新执行所述业务操作的过程中有函数被调用,则确定被调用的函数的名称,并将所述函数的名称与所述业务操作关联的各数组中的函数的名称进行匹配;
S42,若匹配均失败,则将该函数的位置作为断点位置,以供调试员基于所述断点位置确定异常原因并修改对应的源代码。
5.根据权利要求4所述的业务操作断点执行的方法,其特征在于,所述异常原因包括断点位置的源代码异常、断点位置之后的源代码异常、断点位置的调用函数异常、断点位置之前的调用函数异常、断点位置的函数参数异常及断点位置之前的函数参数异常。
6.一种业务服务器,其特征在于,所述业务服务器包括:
定义模块,用于预先定义需要进行执行过程控制的业务操作;
第一生成模块,用于若在所述业务操作的执行过程中有函数被调用,则确定所述函数的名称、输入的函数参数及执行结果,基于所述函数的名称、输入的函数参数及执行结果生成预设格式的数组,并将所述数组与所述业务操作关联;
加载模块,用于若在所述业务操作的执行过程中发生异常,则将所述业务操作对应的源代码及关联的数组加载至开发机中;
匹配模块,用于在接收到开发机上传的修改后的源代码后,基于修改后的源代码重新执行所述业务操作,并在有函数被调用时,将被调用的函数中的名称及函数参数与各数组中的函数的名称及函数参数对应进行匹配;
返回模块,用于若所述函数的名称及函数参数均匹配成功,则跳过该函数的执行过程,并将对应的数组中的执行结果返回以作为该函数的执行结果。
7.根据权利要求6所述的业务服务器,其特征在于,所述业务服务器还包括:
确定模块,用于若所述函数的名称和/或函数参数匹配失败,则确定被调用的函数是否有对应的已存数组,且确定是否有执行顺序在该被调用的函数之后的函数有已存数组;
清除模块,用于若该被调用的函数有已存数组,和/或有执行顺序在该被调用的函数之后的函数有已存数组,则将该被调用的函数的已存数组和/或执行顺序在该被调用的函数之后的函数的已存数组进行清除,执行该被调用的函数并记录执行结果;
第二生成模块,用于获取与所述执行结果对应的函数的名称及函数参数,基于所述执行结果及所获取的函数的名称、函数参数生成预设格式的数组,并将生成的数组与所述业务操作关联。
8.根据权利要求7所述的业务服务器,其特征在于,所述业务服务器还包括:
执行模块,用于若该被调用的函数无已存数组,且执行顺序在该被调用的函数之后的函数无已存数组,则业务服务器执行该被调用的函数并记录执行结果。
9.一种系统,其特征在于,所述系统包括开发机及权利要求6至8任一项所述的业务服务器,所述开发机用于加载所述业务服务器的所述业务操作对应的源代码及关联的数组,执行所述业务操作,并基于所述数组修改对应的源代码,将修改后的代码上传给所述业务服务器。
10.根据权利要求9所述的系统,其特征在于,所述开发机具体用于若在开发机重新执行所述业务操作的过程中有函数被调用,则确定被调用的函数的名称,并将所述函数的名称与所述业务操作关联的各数组中的函数的名称进行匹配;若匹配均失败,则将该函数的位置作为断点位置,以供调试员基于所述断点位置确定异常原因并修改对应的源代码,其中,所述异常原因包括断点位置的源代码异常、断点位置之后的源代码异常、断点位置的调用函数异常、断点位置之前的调用函数异常、断点位置的函数参数异常及断点位置之前的函数参数异常。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611263942.4A CN108241543B (zh) | 2016-12-30 | 2016-12-30 | 业务操作断点执行的方法、业务服务器及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611263942.4A CN108241543B (zh) | 2016-12-30 | 2016-12-30 | 业务操作断点执行的方法、业务服务器及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108241543A true CN108241543A (zh) | 2018-07-03 |
CN108241543B CN108241543B (zh) | 2020-07-07 |
Family
ID=62703077
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611263942.4A Active CN108241543B (zh) | 2016-12-30 | 2016-12-30 | 业务操作断点执行的方法、业务服务器及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108241543B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109683856A (zh) * | 2018-10-26 | 2019-04-26 | 平安科技(深圳)有限公司 | 电子装置、Faas平台函数创建方法及存储介质 |
CN112269610A (zh) * | 2020-10-26 | 2021-01-26 | 南京燚麒智能科技有限公司 | 一种批量模型算法的执行方法和装置 |
CN113010413A (zh) * | 2021-02-20 | 2021-06-22 | 烽火通信科技股份有限公司 | 一种接口自动化测试方法和装置 |
CN112269610B (zh) * | 2020-10-26 | 2024-10-22 | 南京燚麒智能科技有限公司 | 一种批量模型算法的执行方法和装置 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6016558A (en) * | 1997-12-09 | 2000-01-18 | Electronics And Telecommunications Research Institute | Communication event/message tracing method for RPC-based distribution processing program |
CN1323417A (zh) * | 1998-10-19 | 2001-11-21 | 国际商业机器公司 | 事务处理系统中的失败指示 |
US7093237B2 (en) * | 2001-04-27 | 2006-08-15 | International Business Machines Corporation | High performance debugging in a message flow environment |
US20130318504A1 (en) * | 2012-05-25 | 2013-11-28 | Johan Eker | Execution Breakpoints in an Integrated Development Environment for Debugging Dataflow Progrrams |
CN104317960A (zh) * | 2014-11-14 | 2015-01-28 | 中国建设银行股份有限公司 | 一种批处理作业的处理方法和装置 |
CN102736948B (zh) * | 2010-12-20 | 2015-04-01 | 微软公司 | 用于设置检查点并恢复程序状态的方法 |
CN104536893A (zh) * | 2015-01-05 | 2015-04-22 | 中国农业银行股份有限公司 | 一种批量处理程序容报错处理方法及装置 |
CN102981856B (zh) * | 2012-11-28 | 2015-08-12 | 南开大学 | 基于网络的程序计算结果存储与检索方法及系统 |
-
2016
- 2016-12-30 CN CN201611263942.4A patent/CN108241543B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6016558A (en) * | 1997-12-09 | 2000-01-18 | Electronics And Telecommunications Research Institute | Communication event/message tracing method for RPC-based distribution processing program |
CN1323417A (zh) * | 1998-10-19 | 2001-11-21 | 国际商业机器公司 | 事务处理系统中的失败指示 |
US7093237B2 (en) * | 2001-04-27 | 2006-08-15 | International Business Machines Corporation | High performance debugging in a message flow environment |
CN102736948B (zh) * | 2010-12-20 | 2015-04-01 | 微软公司 | 用于设置检查点并恢复程序状态的方法 |
US20130318504A1 (en) * | 2012-05-25 | 2013-11-28 | Johan Eker | Execution Breakpoints in an Integrated Development Environment for Debugging Dataflow Progrrams |
CN102981856B (zh) * | 2012-11-28 | 2015-08-12 | 南开大学 | 基于网络的程序计算结果存储与检索方法及系统 |
CN104317960A (zh) * | 2014-11-14 | 2015-01-28 | 中国建设银行股份有限公司 | 一种批处理作业的处理方法和装置 |
CN104536893A (zh) * | 2015-01-05 | 2015-04-22 | 中国农业银行股份有限公司 | 一种批量处理程序容报错处理方法及装置 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109683856A (zh) * | 2018-10-26 | 2019-04-26 | 平安科技(深圳)有限公司 | 电子装置、Faas平台函数创建方法及存储介质 |
CN109683856B (zh) * | 2018-10-26 | 2024-08-16 | 平安科技(深圳)有限公司 | 电子装置、Faas平台函数创建方法及存储介质 |
CN112269610A (zh) * | 2020-10-26 | 2021-01-26 | 南京燚麒智能科技有限公司 | 一种批量模型算法的执行方法和装置 |
CN112269610B (zh) * | 2020-10-26 | 2024-10-22 | 南京燚麒智能科技有限公司 | 一种批量模型算法的执行方法和装置 |
CN113010413A (zh) * | 2021-02-20 | 2021-06-22 | 烽火通信科技股份有限公司 | 一种接口自动化测试方法和装置 |
CN113010413B (zh) * | 2021-02-20 | 2023-04-25 | 烽火通信科技股份有限公司 | 一种接口自动化测试方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN108241543B (zh) | 2020-07-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104809202B (zh) | 一种数据库同步的方法和装置 | |
CN108063759B (zh) | Web漏洞扫描方法 | |
CN105306585B (zh) | 一种多数据中心的数据同步方法 | |
CN102236672A (zh) | 一种数据导入方法及装置 | |
CN103092712A (zh) | 一种任务中断恢复方法和设备 | |
CN107943572B (zh) | 数据迁移方法、装置、计算机设备和存储介质 | |
CN111563130A (zh) | 一种基于区块链技术的数据可信数据治理方法和系统 | |
CN104423982B (zh) | 请求的处理方法和处理设备 | |
CN100535863C (zh) | 实现配置事务的方法及设备 | |
CN114860654A (zh) | 一种基于Flink数据流的Iceberg表Schema动态变更方法及系统 | |
CN111813774B (zh) | 一种基于sysdig系统监控获取溯源信息的方法 | |
US20140108367A1 (en) | Client apparatus and database server for resumable transaction and method thereof | |
CN108241543A (zh) | 业务操作断点执行的方法、业务服务器及系统 | |
CN103701653B (zh) | 一种接口热插拔配置数据的处理方法及网络配置服务器 | |
CN111240892A (zh) | 数据备份方法及装置 | |
CN109426438B (zh) | 实时大数据镜像存储方法及装置 | |
WO2020253045A1 (zh) | 配置化的数据转发异常补处理方法、装置及可读存储介质 | |
CN108897569A (zh) | iOS工程无用文件的清理方法及计算机可读存储介质 | |
CN108920295A (zh) | 系统异常的处理方法、装置及系统 | |
CN109165217A (zh) | 一种时序数据的高效存储方法 | |
CN110968408B (zh) | 一种执行流移除方法、装置、电子设备及存储介质 | |
CN110020297A (zh) | 一种网页内容的加载方法、装置及系统 | |
CN116627609A (zh) | 基于Hive批处理的调度方法及装置 | |
CN104133762A (zh) | 软件测试方法及测试装置 | |
CN110263305A (zh) | 配置文件对比方法、装置、设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |