CN116860601A - 协同调试方法、装置、网关、服务端及系统 - Google Patents
协同调试方法、装置、网关、服务端及系统 Download PDFInfo
- Publication number
- CN116860601A CN116860601A CN202310589851.3A CN202310589851A CN116860601A CN 116860601 A CN116860601 A CN 116860601A CN 202310589851 A CN202310589851 A CN 202310589851A CN 116860601 A CN116860601 A CN 116860601A
- Authority
- CN
- China
- Prior art keywords
- debugging
- target
- user side
- candidate
- server
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 56
- 238000004891 communication Methods 0.000 claims abstract description 57
- 238000004590 computer program Methods 0.000 claims description 10
- 230000004044 response Effects 0.000 claims description 10
- 238000012544 monitoring process Methods 0.000 claims description 2
- 238000010586 diagram Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 230000001360 synchronised effect Effects 0.000 description 3
- 230000003068 static effect Effects 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
- G06F11/3628—Software debugging of optimised code
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明提供的一种协同调试方法、装置、网关、服务端及系统,涉及软件开发技术领域。所述方法:网关响应候选人用户端发送的调试请求,从多个调试服务端中确定出能与面试官用户端进行通信的目标调试服务端;网关建立候选人用户端与目标调试服务端之间的通信;网关向候选人用户端发送预设指令,告知候选人用户端将待调试代码输入目标调试服务端,以使候选人和面试官分别通过目标调试服务端对待调试代码进行协同调试,共同对代码中的错误进行修正,提升沟通效率,使面试官在与候选人进行协同调试过程中,准确评判候选人。
Description
技术领域
本发明涉及软件开放技术领域,具体而言,涉及一种协同调试方法、装置、网关、服务端及系统。
背景技术
随着软件开发行业的不断发展,代码调试已经成为软件开发过程中不可或缺的一部分。
代码调试的目的是通过查找、定位和修复代码错误,来提高代码质量和稳定性。在面试技术人员的过程中,候选人的代码往往存在错误,并需要面试官和候选人共同修复这些错误。然而,传统的代码调试器,如gdb和Visual Studio调试,是单独运行在本地机器上的,也就是说,在单独的调试环境中,面试官和候选人不能实现实时协同调试,导致沟通效率低下和协作障碍,面试官无法准确评判候选人。
发明内容
本发明实施例提供了一种协同调试方法、装置、网关、服务端及系统,其能够让面试官和候选人对代码进行实时协同调试,提高沟通效率,使面试官就能够准确评判候选人。
本发明实施例的技术方案可以这样实现:
第一方面,本发明实施例提供一种协同调试方法,应用于调试系统中的网关,所述网关分别与候选人用户端和面试官用户端进行通信,所述调试系统还包括多个调试服务端,所述方法包括:
响应所述候选人用户端发送的调试请求,从所述多个调试服务端中确定出能与所述面试官用户端进行通信的目标调试服务端;
建立所述候选人用户端与所述目标调试服务端之间的通信;
向所述候选人用户端发送预设指令,告知所述候选人用户端将待调试代码输入所述目标调试服务端,以使候选人和面试官分别通过所述目标调试服务端对所述待调试代码进行协同调试。
可选地,所述调试系统还包括Redis,所述Redis与所述网关通信连接,所述调试请求包括面试会话ID;
所述响应所述候选人用户端发送的调试请求,从所述多个调试服务端中确定出能与所述面试官用户端进行通信的目标调试服务端的步骤包括:
根据所述面试会话ID,从所述Redis获取所述面试官用户端的用户身份证明;
若根据所述面试官用户端的用户身份证明,从所述Redis能搜索到关于所述面试官用户端的通信建立记录,则将所述通信建立记录中的调试服务端作为目标调试服务端。
可选地,所述响应所述候选人用户端发送的调试请求,从所述多个调试服务端中确定出能与所述面试官用户端进行通信的目标调试服务端的步骤还包括:
若根据所述面试官用户端的用户身份证明,未能从所述Redis搜索到关于所述面试官用户端的通信建立记录,则将所述多个调试服务端中处于空闲状态的调试服务端作为目标调试服务端,并锁定所述目标调试服务端,以便后续建立所述面试官用户端与所述目标调试服务端之间的通信。
第二方面,本发明实施例提供一种协同调试方法,应用于调试系统中的调试服务端,所述调试服务端能与面试官用户端进行通信,所述调试系统还包括网关,所述网关分别与候选人用户端和所述面试官用户端进行通信,所述调试服务端上部署有多个调试器,每个所述调试器对应的编程语言均不同,所述方法包括:
在与所述候选人用户端之间建立通信时,开放所述候选人用户端的调试权限并关闭所述面试官用户端的调试权限,所述调试服务端与所述候选人用户端之间的通信是所述网关通过执行前述第一方面所述的协同调试方法建立的;
根据所述候选人用户端发送的待调试代码的编程语言,从所述多个调试器中确定目标调试器,并获取所述目标调试器的启动次数;
若所述目标调试器的启动次数为0,则在接收到所述候选人用户端发送的针对所述目标调试器的启动指令时,开放所述面试官用户端的调试权限,并启动所述目标调试器,以对所述待调试代码进行调试;
实时获取所述目标调试器的状态更新数据,并同步至所述候选人用户端和所述面试官用户端。
可选地,所述方法还包括:
若所述目标调试器的启动次数不为0,则开放所述面试官用户端的调试权限,并实时监听来自所述候选人用户端和/或所述面试官用户端的代码调试请求;
将监听到的每个所述代码调试请求都添加至待响应请求队列,以使所述目标调试器逐一处理每个所述代码调试请求;
在每个所述代码调试请求被处理完成时,获取所述目标调试器的状态更新数据,并同步至所述候选人用户端和所述面试官用户端。
第三方面,本发明实施例提供一种协同调试装置,应用于调试系统中的网关,所述网关分别与候选人用户端和面试官用户端进行通信,所述调试系统还包括多个调试服务端,所述装置包括:
响应模块,用于响应所述候选人用户端发送的调试请求,从所述多个调试服务端中确定出能与所述面试官用户端进行通信的目标调试服务端;
建立模块,用于建立所述候选人用户端与所述目标调试服务端之间的通信;
发送模块,用于向所述候选人用户端发送预设指令,告知所述候选人用户端将待调试代码输入所述目标调试服务端,以使候选人和面试官分别通过所述目标调试服务端对所述待调试代码进行协同调试。
第四方面,本发明实施例提供一种协同调试装置,其中特征在于,应用于调试系统中的调试服务端,所述调试服务端能与面试官用户端进行通信,所述调试系统还包括网关,所述网关与候选人用户端和面试官用户端进行通信,所述调试服务端上部署有多个调试器,每个所述调试器对应的编程语言均不同,所述装置包括:
设置模块,用于在与所述候选人用户端之间建立通信时,开放所述候选人用户端的调试权限并关闭所述面试官用户端的调试权限,所述调试服务端与所述候选人用户端之间的通信是所述网关通过执行前述第一方面所述的协同调试方法建立的;
确定模块,用于根据所述候选人用户端发送的待调试代码的编程语言,从所述多个调试器中确定目标调试器,并获取所述目标调试器的启动次数;
所述设置模块,还用于若所述目标调试器的启动次数为0,则在接收到所述候选人用户端发送的针对所述目标调试器的启动指令时,开放所述面试官用户端的调试权限,并启动所述目标调试器,以对所述待调试代码进行调试;
同步模块,用于实时获取所述目标调试器的状态更新数据,并同步至所述候选人用户端和所述面试官用户端。
第五方面,本发明实施例提供一种网关,其包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时实现如前述第一方面所述的协同调试方法。
第六方面,本发明实施例提供一种服务端,其包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时实现如前述第二方面所述的协同调试方法。
第七方面,本发明实施例提供一种调试系统,其包括如前述第五方面所述的网关和多个如前述第六方面所述的调试服务端。
相较于现有技术,本发明实施例提供的一种应用于网关的协同调试方法,响应候选人用户端发送的调试请求,从多个调试服务端中确定出能与面试官用户端进行通信的目标调试服务端;建立候选人用户端与目标调试服务端之间的通信;向候选人用户端发送预设指令,告知候选人用户端将待调试代码输入目标调试服务端,以使候选人和面试官分别通过目标调试服务端对待调试代码进行协同调试。由于本发明实施例通过将候选人用户端和面试官用户端与同一调试服务端建立通信,来使候选人和面试官可以对输入该调试服务端的代码进行协同调试,共同对代码中的错误进行修正,提升沟通效率,使面试官在与候选人进行协同调试过程中,准确评判候选人。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本发明实施例提供的一种调试系统的结构示意框图;
图2为本发明实施例提供的一种应用于网关的协同调试方法的流程示意图;
图3为本发明实施例提供的一种应用于调试服务端的协同调试方法的流程示意图;
图4为本发明实施例提供的一种应用于网关的协同调试装置的功能单元框图;
图5为本发明实施例提供的一种应用于调试服务端的协同调试装置的功能单元框图;
图6为本发明实施例提供的一种电子设备的结构示意框图。
图标:100-应用于网关的协同调试装置;101-响应模块;102-建立模块;103-发送模块;200-应用于调试服务端的协同调试装置;201-设置模块;202-确定模块;203-同步模块;300-电子设备;310-存储器;320-处理器。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。
因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
此外,若出现术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
需要说明的是,在不冲突的情况下,本发明的实施例中的特征可以相互结合。
如图1所示,本发明实施例提供了一种的调试系统。该调试系统包括网关、多个调试服务端以及Redis(Remote Dictionary Server,远程字典服务)。其中,网关分别与面试官用户端、候选人用户端,以及Redis进行通信。
调试服务端上部署有多个用于调试不同编程语言的代码的调试器,调试服务端与候选人用户端之间的通信由网关来建立,同样地,调试服务端与面试官用户端之间的通信也由网关来建立。
Redis用于维护网关以及每个调试服务端产生的数据。
调试服务端可以为可以是一台独立的计算机设备,或者是多个计算机设备组成的集群,或者是一个存储阵列等。
面试官用户端和候选人用户端可以是手机、平板电脑或者笔记本电脑等。
为了让面试官和候选人对代码进行实时协同调试,提高沟通效率,使面试官就能够准确评判候选人,本发明提供了一种应用于图1中网关的协同调试方法和一种应用于图1中的任一调试服务端的协同调试方法,下面将进行详细介绍。
请参照图2,应用于图1中网关的协同调试方法包括步骤S101~S103。
S101,响应候选人用户端发送的调试请求,从多个调试服务端中确定出能与面试官用户端进行通信的目标调试服务端。
其中,调试请求包括面试会话ID。
在本发明实施例中,面试官用户端与候选人用户端接入同一线上面试房间,面试会话ID可以为该线上面试房间的房间号。
在一种可能的实现方式中,S101可以包括子步骤S101-1~S101-3。
S101-1,根据面试会话ID,从Redis获取面试官用户端的用户身份证明。
其中,Redis保存有每个线上面试房间的文档数据,从这些文档数据中可以获知接入该线上面试房间的候选者用户端的用户身份证明,以及面试官用户端的用户身份证明。
S101-2,若根据面试官用户端的用户身份证明,从Redis能搜索到关于面试官用户端的通信建立记录,则将通信建立记录中的调试服务端作为目标调试服务端。
其中,通信建立记录包括用户端的用户身份证明和调试服务端的标识。
在本发明实施例中,网关在建立任一用户端(面试官用户端或候选人用户端)与调试服务端的之间的通信时,都会生成相应的通信建立记录并保存至Redis,所以在建立候选人用户端与调试服务端之间的通信前,需先判断接入同一线上面试房间的面试官用户端是否已经与某一调试服务端建立了通信。
如果从Redis能搜索到关于面试官用户端的通信建立记录,则意味着网关已将建立了面试官用户端与一调试服务端之间的通信,在这种情况下,网关需要建立候选人用户端与该调试服务端之间的通信。
S101-3,若根据面试官用户端的用户身份证明,未能从Redis搜索到关于面试官用户端的通信建立记录,则将多个调试服务端中处于空闲状态的调试服务端作为目标调试服务端,并锁定目标调试服务端,以便后续建立面试官用户端与目标调试服务端之间的通信。
如果从Redis未能搜索到关于面试官用户端的通信建立记录,则意味着网关没有建立面试官用户端与任一调试服务端之间的通信,此时可以从所有处于空闲状态的调试服务端中选择一个调试服务端,再分别建立该调试服务端与面试官用户端和候选人用户端之间的通信。
可以理解地,当只有一个调试服务端处于空闲状态时,便可以直接将该调试服务端作为目标调试服务端。
而当存在不止一个调试服务端处于空闲状态时,可以将这些处于空闲状态的调试服务端中设备编号最小或最大的作为目标调试服务端。
需要注意地是,由于目标调试服务端与面试官用户端和候选人用户端之间的通信可以不是同时建立的,因此,在确定出处于空闲状态的目标调试服务端后,需要先将其用分布式锁锁住,再定期通过心跳锁锁住。
在后续消毁目标调试服务端与面试官用户端和候选人用户端之间的通信时,再解锁目标调试服务端。
S102,建立候选人用户端与目标调试服务端之间的通信。
在本发明实施中,可以通过创建WebSocket连接来建立候选人用户端与目标调试服务端之间的通信。
同样地,面试官用户端与目标调试服务端之间的通信也可以通过创建WebSocket连接来建立。
S103,向候选人用户端发送预设指令,告知候选人用户端将待调试代码输入目标调试服务端,以使候选人和面试官分别通过目标调试服务端对待调试代码进行协同调试。
可以理解地,网关通过将候选人用户端和面试官用户端与同一调试服务端建立通信,来使候选人和面试官可以对输入该调试服务端的代码进行协同调试,共同对代码中的错误进行修正,提升沟通效率,使面试官在与候选人进行协同调试过程中,准确评判候选人。
请参照图3,应用于图1中任一调试服务端的协同调试方法包括步骤S201~S204。
S201,在与候选人用户端之间建立通信时,开放候选人用户端的调试权限并关闭面试官用户端的调试权限。
其中,调试服务端与候选人用户端之间的通信是网关通过执行步骤S101~S103建立的。
在进行协同调试前,调试服务端可以先通过协同算法将代码同步到面试官用户端和候选人用户端上的编辑器中。
在候选人用户端接入调试服务端时,通过触发addUser函数,使候选人用户端的调试权限被开启。
再将触发后的addUser函数锁住,使面试官用户端的调试权限被关闭。
S202,根据候选人用户端发送的待调试代码的编程语言,从多个调试器中确定目标调试器,并获取目标调试器的启动次数。
其中,调试服务端上部署有多个调试器,每个调试器对应的编程语言均不同。
可以理解地,所有调试器中,对应待调试代码的编程语言的调试器便为目标调试器。
S203,若目标调试器的启动次数为0,则在接收到候选人用户端发送的针对目标调试器的启动指令时,开放面试官用户端的调试权限,并启动目标调试器,以对待调试代码进行调试。
在本发明实施例中,若目标调试器处于待首次被启动的情况,则等待接收候选人用户端发送的启动指令。
只有在接收到候选人用户端发送的启动指令后,才启动目标调试器,并将目标调试器启动时的状态数据存入snapshot中。
Snapshot的结构可以如下:
{
compiling:any,
variables:any,
setBreakpoints:any,
evaluateList:any,
output:any
stopped:any,
others:any[]
}
在启动目标调试器的同时,也将addUser函数解锁,从而开放面试官用户端的调试权限。
S204,实时获取目标调试器的状态更新数据,并同步至候选人用户端和面试官用户端。
在本发明实施例中,调试服务端上的任何一个调试器的状态发生更新时,都会将针对该调试器的状态更新数据存入snapshot。
因此,通过实时从snapshot获取目标调试器的状态更新数据,并同步至候选人用户端和面试官用户端,使候选人和面试官可以分别通过候选人用户端和面试官用户端上的编辑器,查看代码调试结果。
请再次参照图3,应用于图1中任一调试服务端的协同调试方法还包括步骤S205~S207。
S205,若目标调试器的启动次数不为0,则开放面试官用户端的调试权限,并实时监听来自候选人用户端和/或面试官用户端的代码调试请求。
其中,若目标调试器不处于待首次被启动的情况,意味着snapshot已经是保存有目标调试器的状态更新数据,此时,将snapshot已保存的目标调试器的状态更新数据同步至候选人用户端和面试官用户端,使候选人和面试官可以分别通过候选人用户端和面试官用户端上的编辑器,查看代码之前的调试结果。
在将snapshot已保存的目标调试器的状态更新数据同步至候选人用户端和面试官用户端的同时,也将addUser函数解锁,从而开放面试官用户端的调试权限。
S206,将监听到的每个代码调试请求都添加至待响应请求队列,以使目标调试器逐一处理每个代码调试请求。
其中,监听到的来自候选人用户端和/或面试官用户端的代码调试请求中包括关于待调试代码的断点数据。
目标调试器处理每个代码调试请求的过程,就是对添加了或删除了断点的待调试代码进行调试。
S207,在每个代码调试请求被处理完成时,获取目标调试器的状态更新数据,并同步至候选人用户端和面试官用户端。
同样地,通过从snapshot获取目标调试器的状态更新数据,并同步至候选人用户端和面试官用户端,使候选人和面试官可以分别通过候选人用户端和面试官用户端上的编辑器,查看代码调试结果。
为了执行上述方法实施例及各个可能的实施方式中的相应步骤,下面给出一种应用于网关的协同调试装置100和一种应用于调试服务端的协同调试装置200。
请参照图4,该应用于网关的协同调试装置100包括响应模块101、建立模块102、发送模块103。
响应模块101,用于响应候选人用户端发送的调试请求,从多个调试服务端中确定出能与面试官用户端进行通信的目标调试服务端。
建立模块102,用于建立候选人用户端与目标调试服务端之间的通信。
发送模块103,用于向候选人用户端发送预设指令,告知候选人用户端将待调试代码输入目标调试服务端,以使候选人和面试官分别通过目标调试服务端对待调试代码进行协同调试。
请参照图5,应用于调试服务端的协同调试装置200包括设置模块201、确定模块202、同步模块203。
设置模块201,用于在与候选人用户端之间建立通信时,开放候选人用户端的调试权限并关闭面试官用户端的调试权限,调试服务端与候选人用户端之间的通信是网关通过执行前述的协同调试方法建立的。
确定模块202,用于根据候选人用户端发送的待调试代码的编程语言,从多个调试器中确定目标调试器,并获取目标调试器的启动次数。
设置模块201,还用于若目标调试器的启动次数为0,则在接收到候选人用户端发送的针对目标调试器的启动指令时,开放面试官用户端的调试权限,并启动目标调试器,以对待调试代码进行调试。
同步模块203,用于实时获取目标调试器的状态更新数据,并同步至候选人用户端和面试官用户端。
第五方面,本发明实施例提供一种网关,其包括存储器和处理器,存储器存储有计算机程序,计算机程序被处理器执行时实现如前述第一方面的协同调试方法。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述应用于网关的协同调试装置100和应用于调试服务端的协同调试装置200的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
进一步地,本发明实施例还提供了一种电子设备300,其可以为图1中的网关,也可以为图1中的任一调试服务端,请参照图6,电子设备300还可以包括存储器310和处理器320。
其中,处理器320可以是一个通用的中央处理器(Central Processing Unit,CPU),微处理器,特定应用集成电路(Application-Specific Integrated Circuit,ASIC),或一个或多个用于控制上述方法实施例提供的应用于网关的协同调试方法,或,应用于调试服务端的协同调试方法执行的集成电路。
存储器310可以是ROM或可存储静态信息和指令的其它类型的静态存储设备,RAM或者可存储信息和指令的其它类型的动态存储设备,也可以是电可擦可编程只读存储器(Electrically Erasable Programmabler-Only MEMory,EEPROM)、只读光盘(CompactdiscRead-Only MEMory,CD-ROM)或其它光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其它磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其它介质,但不限于此。存储器310可以是独立存在,通过通信总线与处理器320相连接。存储器310也可以和处理器320集成在一起。其中,存储器310用于存储执行本申请方案的机器可执行指令。处理器320用于执行存储器310中存储的机器可执行指令,以实现上述的方法实施例。
本发明实施例还提供一种包含计算机程序的计算机可读存储介质,计算机程序在被执行时可以用于执行上述的方法实施例提供的应用于网关的协同调试方法,或,应用于调试服务端的协同调试方法中的相关操作。
以上,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
Claims (10)
1.一种协同调试方法,其特征在于,应用于调试系统中的网关,所述网关分别与候选人用户端和面试官用户端进行通信,所述调试系统还包括多个调试服务端,所述方法包括:
响应所述候选人用户端发送的调试请求,从所述多个调试服务端中确定出能与所述面试官用户端进行通信的目标调试服务端;
建立所述候选人用户端与所述目标调试服务端之间的通信;
向所述候选人用户端发送预设指令,告知所述候选人用户端将待调试代码输入所述目标调试服务端,以使候选人和面试官分别通过所述目标调试服务端对所述待调试代码进行协同调试。
2.如权利要求1所述的方法,其特征在于,所述调试系统还包括Redis,所述Redis与所述网关通信连接,所述调试请求包括面试会话ID;
所述响应所述候选人用户端发送的调试请求,从所述多个调试服务端中确定出能与所述面试官用户端进行通信的目标调试服务端的步骤包括:
根据所述面试会话ID,从所述Redis获取所述面试官用户端的用户身份证明;
若根据所述面试官用户端的用户身份证明,从所述Redis能搜索到关于所述面试官用户端的通信建立记录,则将所述通信建立记录中的调试服务端作为目标调试服务端。
3.如权利要求2所述的方法,其特征在于,所述响应所述候选人用户端发送的调试请求,从所述多个调试服务端中确定出能与所述面试官用户端进行通信的目标调试服务端的步骤还包括:
若根据所述面试官用户端的用户身份证明,未能从所述Redis搜索到关于所述面试官用户端的通信建立记录,则将所述多个调试服务端中处于空闲状态的调试服务端作为目标调试服务端,并锁定所述目标调试服务端,以便后续建立所述面试官用户端与所述目标调试服务端之间的通信。
4.一种协同调试方法,其特征在于,应用于调试系统中的调试服务端,所述调试服务端能与面试官用户端进行通信,所述调试系统还包括网关,所述网关分别与候选人用户端和所述面试官用户端进行通信,所述调试服务端上部署有多个调试器,每个所述调试器对应的编程语言均不同,所述方法包括:
在与所述候选人用户端之间建立通信时,开放所述候选人用户端的调试权限并关闭所述面试官用户端的调试权限,所述调试服务端与所述候选人用户端之间的通信是所述网关通过执行权利要求1~3任一项所述的协同调试方法建立的;
根据所述候选人用户端发送的待调试代码的编程语言,从所述多个调试器中确定目标调试器,并获取所述目标调试器的启动次数;
若所述目标调试器的启动次数为0,则在接收到所述候选人用户端发送的针对所述目标调试器的启动指令时,开放所述面试官用户端的调试权限,并启动所述目标调试器,以对所述待调试代码进行调试;
实时获取所述目标调试器的状态更新数据,并同步至所述候选人用户端和所述面试官用户端。
5.如权利要求4所述的方法,其特征在于,所述方法还包括:
若所述目标调试器的启动次数不为0,则开放所述面试官用户端的调试权限,并实时监听来自所述候选人用户端和/或所述面试官用户端的代码调试请求;
将监听到的每个所述代码调试请求都添加至待响应请求队列,以使所述目标调试器逐一处理每个所述代码调试请求;
在每个所述代码调试请求被处理完成时,获取所述目标调试器的状态更新数据,并同步至所述候选人用户端和所述面试官用户端。
6.一种协同调试装置,其特征在于,应用于调试系统中的网关,所述网关分别与候选人用户端和面试官用户端进行通信,所述调试系统还包括多个调试服务端,所述装置包括:
响应模块,用于响应所述候选人用户端发送的调试请求,从所述多个调试服务端中确定出能与所述面试官用户端进行通信的目标调试服务端;
建立模块,用于建立所述候选人用户端与所述目标调试服务端之间的通信;
发送模块,用于向所述候选人用户端发送预设指令,告知所述候选人用户端将待调试代码输入所述目标调试服务端,以使候选人和面试官分别通过所述目标调试服务端对所述待调试代码进行协同调试。
7.一种协同调试装置,其特征在于,应用于调试系统中的调试服务端,所述调试服务端能与面试官用户端进行通信,所述调试系统还包括网关,所述网关与候选人用户端和面试官用户端进行通信,所述调试服务端上部署有多个调试器,每个所述调试器对应的编程语言均不同,所述装置包括:
设置模块,用于在与所述候选人用户端之间建立通信时,开放所述候选人用户端的调试权限并关闭所述面试官用户端的调试权限,所述调试服务端与所述候选人用户端之间的通信是所述网关通过执行权利要求1~3任一项所述的协同调试方法建立的;
确定模块,用于根据所述候选人用户端发送的待调试代码的编程语言,从所述多个调试器中确定目标调试器,并获取所述目标调试器的启动次数;
所述设置模块,还用于若所述目标调试器的启动次数为0,则在接收到所述候选人用户端发送的针对所述目标调试器的启动指令时,开放所述面试官用户端的调试权限,并启动所述目标调试器,以对所述待调试代码进行调试;
同步模块,用于实时获取所述目标调试器的状态更新数据,并同步至所述候选人用户端和所述面试官用户端。
8.一种网关,其特征在于,其包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时实现如权利要求1~3任一项所述的协同调试方法。
9.一种服务端,其特征在于,其包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时实现如权利要求4~5任一项所述的协同调试方法。
10.一种调试系统,其特征在于,其包括如权利要求8所述的网关和多个如权利要求9所述的调试服务端。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310589851.3A CN116860601A (zh) | 2023-05-23 | 2023-05-23 | 协同调试方法、装置、网关、服务端及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310589851.3A CN116860601A (zh) | 2023-05-23 | 2023-05-23 | 协同调试方法、装置、网关、服务端及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116860601A true CN116860601A (zh) | 2023-10-10 |
Family
ID=88220412
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310589851.3A Pending CN116860601A (zh) | 2023-05-23 | 2023-05-23 | 协同调试方法、装置、网关、服务端及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116860601A (zh) |
-
2023
- 2023-05-23 CN CN202310589851.3A patent/CN116860601A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108427705B (zh) | 电子装置、分布式系统日志查询方法及存储介质 | |
CN107220142B (zh) | 执行数据恢复操作的方法及装置 | |
CN111522922A (zh) | 日志信息查询方法、装置、存储介质及计算机设备 | |
CN106484611B (zh) | 基于自动化协议适配的模糊测试方法和装置 | |
CN111177165A (zh) | 数据一致性检测的方法、装置及设备 | |
CN112256318B (zh) | 一种用于依赖产品的构建方法及设备 | |
CN112905441A (zh) | 测试用例生成方法、测试方法、装置及设备 | |
CN111355802A (zh) | 信息推送方法和装置 | |
CN110688305B (zh) | 测试环境同步方法、装置、介质、电子设备 | |
CN115242894A (zh) | 数据处理方法、装置、存储介质和计算机设备 | |
CN111078506A (zh) | 业务数据跑批任务监控方法及装置 | |
CN112835856A (zh) | 一种日志数据查询方法及装置、设备、介质 | |
CN112706709A (zh) | 车辆参数修改方法及装置、车辆控制系统、车辆 | |
CN112115060A (zh) | 基于终端的音频测试方法与系统 | |
CN111367869A (zh) | 镜像文件处理方法、装置、存储介质及电子设备 | |
CN116860601A (zh) | 协同调试方法、装置、网关、服务端及系统 | |
CN116360787A (zh) | 表格代码自动生成方法、装置、电子设备及存储介质 | |
CN111240990A (zh) | 一种ismcli命令行测试方法、系统、终端及存储介质 | |
CN113760631A (zh) | 页面加载时长确定方法、装置、设备和存储介质 | |
CN114371866A (zh) | 业务系统的版本重构测试方法、装置和设备 | |
CN105988917A (zh) | 异常信息获取方法及装置 | |
CN114844859B (zh) | 域名配置方法、装置、电子设备及存储介质 | |
CN113190465B (zh) | 测试信息处理方法、装置、设备及存储介质 | |
CN116303067B (zh) | 一种基于云测试平台的测试方法、装置、设备以及介质 | |
CN116450400A (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 |