CN108241543B - 业务操作断点执行的方法、业务服务器及系统 - Google Patents

业务操作断点执行的方法、业务服务器及系统 Download PDF

Info

Publication number
CN108241543B
CN108241543B CN201611263942.4A CN201611263942A CN108241543B CN 108241543 B CN108241543 B CN 108241543B CN 201611263942 A CN201611263942 A CN 201611263942A CN 108241543 B CN108241543 B CN 108241543B
Authority
CN
China
Prior art keywords
function
array
called
name
execution
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.)
Active
Application number
CN201611263942.4A
Other languages
English (en)
Other versions
CN108241543A (zh
Inventor
徐远飞
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
OneConnect Financial Technology Co Ltd Shanghai
Original Assignee
OneConnect Financial Technology Co Ltd Shanghai
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by OneConnect Financial Technology Co Ltd Shanghai filed Critical OneConnect Financial Technology Co Ltd Shanghai
Priority to CN201611263942.4A priority Critical patent/CN108241543B/zh
Publication of CN108241543A publication Critical patent/CN108241543A/zh
Application granted granted Critical
Publication of CN108241543B publication Critical patent/CN108241543B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/547Remote procedure calls [RPC]; Web services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/34Network 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张关于风景的图片,然后一张张传给客户端”为例进行说明:
其中,部分程序代码包括:
Figure BDA0001200303970000071
在该程序代码中,有两个函数分别是“GetResultFromBaidu”、“AnalyzeResult”。GetResultFromBaidu函数为发送给百度服务器的一个请求函数,AnalyzeResult函数为通过返回的HTML,从里面分析出100张关于风景的图片。
如果在执行echo list[i]执行时出现异常或程序发生崩溃,则首先确定需要在开发机中还原线上的执行状态,以及将修改后的程序代码发布到线上,使得当前程序继续从echo[i]处执行。
建立数组{函数名,输入参数,结果}来存放上述的两个函数,然后在本地调试echo[i]的执行情况:当程序执行到GetResultFromBaidu的操作时发现,函数名以及输入参数和数组中对应的一致,则不再调用接口进行请求,而是直接返回数组中的结果;当程序执行到AnalyzeResult的时发现,函数名以及输入参数和数组中对应的一致,也不再调用复杂的处理程序,而直接返回数组中的结果,经调试后,还原了出现异常前的状态。
与现有技术相比,本实施例预先定义需要控制的业务操作,在业务操作执行过程中有函数被调用时,生成由被调用的函数的名称、输入的函数参数及执行结果构成的数组,在发生异常时,由开发机调试对应的源代码后将其返回给业务服务器,如果是之前调用过的、且调用时未发生异常的函数,可以直接将对应的数组中的执行结果返回即可,不需要逐个函数进行重新调用,能够较快还原发生异常前业务操作执行的状态,提高业务操作的执行速度及提高业务操作处理的工作效率。
在一优选的实施例中,如图2所示,在上述图1的实施例的基础上,在上述步骤S5之后还包括:
步骤S7,若所述函数的名称和/或函数参数匹配失败,则业务服务器确定被调用的函数是否有对应的已存数组,且确定是否有执行顺序在该被调用的函数之后的函数有已存数组;
步骤S8,若该被调用的函数有已存数组,和/或有执行顺序在该被调用的函数之后的函数有已存数组,则业务服务器将该被调用的函数的已存数组和/或执行顺序在该被调用的函数之后的函数的已存数组进行清除,执行该被调用的函数并记录执行结果;
步骤S9,获取与所述执行结果对应的函数的名称及函数参数,基于所述执行结果及所获取的函数的名称、函数参数生成预设格式的数组,并将生成的数组与所述业务操作关联。
本实施例中,如果被调用的函数的函数的名称与各数组中函数的名称均不相同但是函数参数有相同的、或者函数的名称有相同的但函数参数均不同、或者函数的名称及函数参数均不相同时,则匹配失败,这时源代码中的函数的名称或者函数参数可能已经在开发机中被修改。业务服务器确定该被调用的函数是否有对应的已存数组,例如将该业务操作中的各被调用函数与各数组进行一一对应,以确定该被调用的函数是否有对应的已存函数,同时确定是否有执行顺序在该被调用的函数之后的函数有已存数组。
如果该被调用的函数有对应的已存数组,和/或有执行顺序在该被调用的函数之后的函数有已存数组,则将该被调用的函数的已存数组及/或执行顺序在该被调用的函数之后的函数的已存数组进行清除,然后才执行该被调用的函数,记录执行结果。最后重新确定该被调用的函数的函数的名称、输入的函数参数,生成该函数的名称、输入的函数参数及执行结果的数组,并将生成的数组与业务操作关联。
本实施例中,经开发机调试后的源代码在业务服务器上重新执行时,如果被调用的函数未能与数组匹配,但被调用的函数存在已存数组,和/或有执行顺序在该被调用的函数之后的函数有已存数组,则需要删除已存数组,以减少后续不必要的匹配过程,在执行该被调用函数之后重新生成与该被调用的函数匹配的数组。
本实施例仍以上述的业务操作“从百度搜索中搜取100张关于风景的图片,然后一张张传给客户端”为例进行说明:
如果已经修改了源代码,修改后的源代码为:
Figure BDA0001200303970000101
业务服务器执行到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 (8)

1.一种业务操作断点执行的方法,其特征在于,所述业务操作断点执行的方法包括:
S1,业务服务器预先定义需要进行执行过程控制的业务操作;
S2,若在所述业务操作的执行过程中有函数被调用,则业务服务器确定所述函数的名称、输入的函数参数及执行结果,基于所述函数的名称、输入的函数参数及执行结果生成预设格式的数组,并将所述数组与所述业务操作关联;
S3,若在所述业务操作的执行过程中发生异常,则业务服务器将所述业务操作对应的源代码及关联的数组加载至开发机中;
S4,开发机执行所述业务操作,并基于所述数组修改对应的源代码,将修改后的代码上传给所述业务服务器;
S5,业务服务器在接收到开发机上传的修改后的源代码后,基于修改后的源代码重新执行所述业务操作,并在有函数被调用时,将被调用的函数中的名称及函数参数与各数组中的函数的名称及函数参数对应进行匹配;
S6,若所述函数的名称及函数参数均匹配成功,则业务服务器跳过该函数的执行过程,并将对应的数组中的执行结果返回以作为该函数的执行结果;
所述步骤S5之后还包括:
S7,若所述函数的名称和/或函数参数匹配失败,则业务服务器确定被调用的函数是否有对应的已存数组,且确定是否有执行顺序在该被调用的函数之后的函数有已存数组;
S8,若该被调用的函数有已存数组,和/或有执行顺序在该被调用的函数之后的函数有已存数组,则业务服务器将该被调用的函数的已存数组和/或执行顺序在该被调用的函数之后的函数的已存数组进行清除,执行该被调用的函数并记录执行结果;
S9,获取与所述执行结果对应的函数的名称及函数参数,基于所述执行结果及所获取的函数的名称、函数参数生成预设格式的数组,并将生成的数组与所述业务操作关联。
2.根据权利要求1所述的业务操作断点执行的方法,其特征在于,所述步骤S7之后还包括:
S10,若该被调用的函数无已存数组,且执行顺序在该被调用的函数之后的函数无已存数组,则业务服务器执行该被调用的函数并记录执行结果,并执行步骤S9。
3.根据权利要求1至2任一项所述的业务操作断点执行的方法,其特征在于,所述步骤S4包括:
S41,若在开发机重新执行所述业务操作的过程中有函数被调用,则确定被调用的函数的名称,并将所述函数的名称与所述业务操作关联的各数组中的函数的名称进行匹配;
S42,若匹配均失败,则将该函数的位置作为断点位置,以供调试员基于所述断点位置确定异常原因并修改对应的源代码。
4.根据权利要求3所述的业务操作断点执行的方法,其特征在于,所述异常原因包括断点位置的源代码异常、断点位置之后的源代码异常、断点位置的调用函数异常、断点位置之前的调用函数异常、断点位置的函数参数异常及断点位置之前的函数参数异常。
5.一种业务服务器,其特征在于,所述业务服务器包括:
定义模块,用于预先定义需要进行执行过程控制的业务操作;
第一生成模块,用于若在所述业务操作的执行过程中有函数被调用,则确定所述函数的名称、输入的函数参数及执行结果,基于所述函数的名称、输入的函数参数及执行结果生成预设格式的数组,并将所述数组与所述业务操作关联;
加载模块,用于若在所述业务操作的执行过程中发生异常,则将所述业务操作对应的源代码及关联的数组加载至开发机中;
匹配模块,用于在接收到开发机上传的修改后的源代码后,基于修改后的源代码重新执行所述业务操作,并在有函数被调用时,将被调用的函数中的名称及函数参数与各数组中的函数的名称及函数参数对应进行匹配;
返回模块,用于若所述函数的名称及函数参数均匹配成功,则跳过该函数的执行过程,并将对应的数组中的执行结果返回以作为该函数的执行结果;
所述业务服务器还包括:
确定模块,用于若所述函数的名称和/或函数参数匹配失败,则确定被调用的函数是否有对应的已存数组,且确定是否有执行顺序在该被调用的函数之后的函数有已存数组;
清除模块,用于若该被调用的函数有已存数组,和/或有执行顺序在该被调用的函数之后的函数有已存数组,则将该被调用的函数的已存数组和/或执行顺序在该被调用的函数之后的函数的已存数组进行清除,执行该被调用的函数并记录执行结果;
第二生成模块,用于获取与所述执行结果对应的函数的名称及函数参数,基于所述执行结果及所获取的函数的名称、函数参数生成预设格式的数组,并将生成的数组与所述业务操作关联。
6.根据权利要求5所述的业务服务器,其特征在于,所述业务服务器还包括:
执行模块,用于若该被调用的函数无已存数组,且执行顺序在该被调用的函数之后的函数无已存数组,则业务服务器执行该被调用的函数并记录执行结果。
7.一种业务操作断点执行系统,其特征在于,所述业务操作断点执行系统包括开发机及权利要求5至6任一项所述的业务服务器,所述开发机用于加载所述业务服务器的所述业务操作对应的源代码及关联的数组,执行所述业务操作,并基于所述数组修改对应的源代码,将修改后的代码上传给所述业务服务器。
8.根据权利要求7所述的业务操作断点执行系统,其特征在于,所述开发机具体用于若在开发机重新执行所述业务操作的过程中有函数被调用,则确定被调用的函数的名称,并将所述函数的名称与所述业务操作关联的各数组中的函数的名称进行匹配;若匹配均失败,则将该函数的位置作为断点位置,以供调试员基于所述断点位置确定异常原因并修改对应的源代码,其中,所述异常原因包括断点位置的源代码异常、断点位置之后的源代码异常、断点位置的调用函数异常、断点位置之前的调用函数异常、断点位置的函数参数异常及断点位置之前的函数参数异常。
CN201611263942.4A 2016-12-30 2016-12-30 业务操作断点执行的方法、业务服务器及系统 Active CN108241543B (zh)

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 CN108241543A (zh) 2018-07-03
CN108241543B true 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)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
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 南京燚麒智能科技有限公司 一种批量模型算法的执行方法和装置
CN113010413B (zh) * 2021-02-20 2023-04-25 烽火通信科技股份有限公司 一种接口自动化测试方法和装置

Citations (7)

* Cited by examiner, † Cited by third party
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
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 南开大学 基于网络的程序计算结果存储与检索方法及系统

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130318504A1 (en) * 2012-05-25 2013-11-28 Johan Eker Execution Breakpoints in an Integrated Development Environment for Debugging Dataflow Progrrams

Patent Citations (7)

* Cited by examiner, † Cited by third party
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 微软公司 用于设置检查点并恢复程序状态的方法
CN102981856B (zh) * 2012-11-28 2015-08-12 南开大学 基于网络的程序计算结果存储与检索方法及系统
CN104317960A (zh) * 2014-11-14 2015-01-28 中国建设银行股份有限公司 一种批处理作业的处理方法和装置
CN104536893A (zh) * 2015-01-05 2015-04-22 中国农业银行股份有限公司 一种批量处理程序容报错处理方法及装置

Also Published As

Publication number Publication date
CN108241543A (zh) 2018-07-03

Similar Documents

Publication Publication Date Title
CN109032838B (zh) 虚拟机备份恢复数据一致性的自动校验方法
CN110673936B (zh) 编排业务的断点续作方法、装置、存储介质及电子设备
CN108241543B (zh) 业务操作断点执行的方法、业务服务器及系统
US10795793B1 (en) Method and system for simulating system failures using domain-specific language constructs
US11573780B2 (en) Automated generation of status chains for software updates
CN110659256A (zh) 多机房同步方法、计算设备及计算机存储介质
US9697107B2 (en) Testing applications
US10108474B2 (en) Trace capture of successfully completed transactions for trace debugging of failed transactions
CN107943617B (zh) 数据的修复方法、装置及服务器集群
US11188449B2 (en) Automated exception resolution during a software development session based on previous exception encounters
CN112416762B (zh) Api测试方法及装置、设备、计算机可读存储介质
CN113468143A (zh) 数据迁移方法、系统、计算设备及存储介质
CN111694724B (zh) 分布式表格系统的测试方法、装置、电子设备及存储介质
CN108804239B (zh) 平台整合的方法、装置、计算机设备和存储介质
US10474443B2 (en) Code lineage tool
US20140245159A1 (en) Transport script generation based on a user interface script
US20230132560A1 (en) Infrastructure as code (iac) pre-deployment analysis via a machine-learning model
CN113050926B (zh) 一种代码同步变更的确认方法、装置和设备
CN111159313B (zh) 一种数据库快速合成备份方法、系统、装置及存储介质
CN113448758A (zh) 处理任务的方法、装置及终端设备
CN115705297A (zh) 代码调用检测方法、装置、计算机设备以及存储介质
US20160275002A1 (en) Image capture in application lifecycle management for documentation and support
CN112860492B (zh) 一种适用于核心系统的自动化回归测试方法及系统
US20150007200A1 (en) Automatically Deriving a Command for Starting a Program in an Operating System of a Computer
CN111522737B (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