CN116701185A - 实时任务的代码调试方法及电子设备 - Google Patents

实时任务的代码调试方法及电子设备 Download PDF

Info

Publication number
CN116701185A
CN116701185A CN202310558329.9A CN202310558329A CN116701185A CN 116701185 A CN116701185 A CN 116701185A CN 202310558329 A CN202310558329 A CN 202310558329A CN 116701185 A CN116701185 A CN 116701185A
Authority
CN
China
Prior art keywords
target
task
debugging
real
code content
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
Application number
CN202310558329.9A
Other languages
English (en)
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.)
Zhejiang Dahua Technology Co Ltd
Original Assignee
Zhejiang Dahua Technology Co Ltd
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 Zhejiang Dahua Technology Co Ltd filed Critical Zhejiang Dahua Technology Co Ltd
Priority to CN202310558329.9A priority Critical patent/CN116701185A/zh
Publication of CN116701185A publication Critical patent/CN116701185A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3628Software debugging of optimised code
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3692Test management for test results analysis
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal 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

实时任务的代码调试方法及电子设备
技术领域
本申请涉及软件开发技术领域,特别是涉及一种实时任务的代码调试方法及电子设备。
背景技术
目前,用户可以使用实时计算平台进行实时任务的开发,上述实时计算平台可以是基于Flink(Forward link,正向连接)SQL(Structured Query Language,结构化查询语言)所构建的。随着数据开发功能的逐渐成熟,在数据应用的需求层面,对于数据的实时性的要求逐渐提高,实时任务的开发量也随之增多。
虽然Flink SQL任务的开发相比于Flink JAR(Java Archive,Java归档)/Python任务降低了一定的开发难度,但是其仍然具备一定的学习门槛,导致Flink SQL任务的开发存在一定的学习成本,尤其是Flink SQL任务的开发中纯SELECT是无法返回结果的,导致不能查看开发过程中的中间结果,提高了任务开发的复杂度。
发明内容
本申请至少提供一种实时任务的代码调试方法、实时任务的代码调试装置、计算机可读存储介质以及电子设备。
本申请第一方面提供了一种实时任务的代码调试方法,应用于任务编辑端,方法包括:响应于针对实时任务中目标步骤的调试指令,获取目标步骤对应的目标代码内容;将目标代码内容发送给任务执行端,以使任务执行端基于目标步骤对应的前置步骤的调试记录执行目标代码内容,得到步骤调试结果;显示任务执行端返回的步骤调试结果。
在一实施例中,响应于针对实时任务中目标步骤的调试指令,获取目标步骤对应的目标代码内容,包括:响应于针对目标步骤的创建指令,在实时任务开发页面创建目标步骤的代码内容编辑区域;响应于针对目标步骤的调试指令,获取目标步骤的代码内容编辑区域中的代码内容,得到目标代码内容。
在一实施例中,实时任务含有多个步骤;响应于针对目标步骤的创建指令,在实时任务开发页面创建目标步骤的代码内容编辑区域,包括:获取目标步骤针对实时任务中其他步骤的次序信息;基于次序信息,确定目标步骤的代码内容编辑区域在实时任务开发页面中的目标显示位置;在目标显示位置创建目标步骤的代码内容编辑区域。
在一实施例中,响应于针对实时任务中目标步骤的调试指令,获取目标步骤对应的目标代码内容,包括:获取实时任务中各个步骤的次序信息;基于各个步骤的次序信息,从各个步骤中选出目标步骤对应的待检测步骤;检测待检测步骤是否存在步骤调试结果,将不存在步骤调试结果的待检测步骤作为未调试步骤;基于未调试步骤对应的代码内容和目标步骤对应的代码内容,得到目标代码内容。
本申请第二方面提供了一种实时任务的代码调试方法,应用于任务执行端,方法包括:接收任务编辑端发送的目标代码内容,目标代码内容是任务编辑端响应于针对实时任务中目标步骤的调试指令,获取目标步骤对应的代码内容得到的;基于目标步骤对应的前置步骤的调试记录执行目标代码内容,得到步骤调试结果;将步骤调试结果返回至任务编辑端,以使任务编辑端显示步骤调试结果。
在一实施例中,在基于目标步骤对应的前置步骤的调试记录执行目标代码内容,得到步骤调试结果之前,方法还包括:获取目标步骤对应的实时任务的任务标识;基于任务标识查询实时任务中各个步骤对应的调试记录;从各个步骤对应的调试记录中选择出目标步骤对应的前置步骤的调试记录。
在一实施例中,从各个步骤对应的调试记录中选择出目标步骤对应的前置步骤的调试记录,包括:获取各个步骤的次序信息;基于各个步骤的次序信息,从各个步骤中选出目标步骤对应的前置步骤;从各个步骤对应的调试记录中提取出前置步骤的调试记录。
在一实施例中,基于目标步骤对应的前置步骤的调试记录执行目标代码内容,得到步骤调试结果,包括:将目标代码内容封装为待执行任务,并获取待执行任务对应的目标任务解释器;将待执行任务和前置步骤的调试记录提交给目标任务解释器;获取目标任务解释器执行待执行任务对应的步骤调试结果。
在一实施例中,在将步骤调试结果返回至任务编辑端之后,方法还包括:缓存目标步骤对应的步骤调试结果。
本申请第三方面提供了一种实时任务的代码调试装置,部署于任务编辑端,包括:获取模块,用于响应于针对实时任务中目标步骤的调试指令,获取目标步骤对应的目标代码内容;发送模块,用于将目标代码内容发送给任务执行端,以使任务执行端基于目标步骤对应的前置步骤的调试记录执行目标代码内容,得到步骤调试结果;显示模块,用于显示任务执行端返回的步骤调试结果。
本申请第四方面提供了一种实时任务的代码调试装置,部署于任务执行端,包括:接收模块,用于接收任务编辑端发送的目标代码内容,目标代码内容是任务编辑端响应于针对实时任务中目标步骤的调试指令,获取目标步骤对应的代码内容得到的;执行模块,用于基于目标步骤对应的前置步骤的调试记录执行目标代码内容,得到步骤调试结果;返回模块,用于将步骤调试结果返回至任务编辑端,以使任务编辑端显示步骤调试结果。
本申请第五方面提供了一种电子设备,包括存储器和处理器,处理器用于执行存储器中存储的程序指令,以实现上述实时任务的代码调试方法。
本申请第六方面提供了一种计算机可读存储介质,其上存储有程序指令,程序指令被处理器执行时实现上述实时任务的代码调试方法。
上述方案,通过响应于针对实时任务中目标步骤的调试指令,获取目标步骤对应的目标代码内容,将目标代码内容发送给任务执行端,细化了代码调试的粒度,以使任务执行端获取目标步骤对应的前置步骤的调试记录,基于调试记录执行目标代码内容,得到步骤调试结果,通过基于前置步骤的调试记录执行当前的步骤,提高了代码的执行效率,再显示任务执行端返回的步骤调试结果,向开发人员提供交互式的代码开发功能,使得开发人员可以查看实时任务开发过程中每个步骤的结果,降低开发难度和调试难度,缩短开发周期。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,而非限制本申请。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,这些附图示出了符合本申请的实施例,并与说明书一起用于说明本申请的技术方案。
图1是本申请的实时任务的代码调试方法的一示例性实施例的实施环境示意图;
图2是本申请的实时任务的代码调试方法的一示例性实施例的流程图;
图3是本申请的一示例性实施例示出的步骤创建示意图;
图4是本申请的一示例性实施例示出的实时任务创建示意图;
图5是本申请的一示例性实施例示出的任务删除流程图;
图6是本申请的一示例性实施例示出的代码调试的页面示意图;
图7是本申请的实时任务的代码调试方法的另一示例性实施例的流程图;
图8是本申请的一示例性实施例示出的调试目标代码内容的示意图;
图9是本申请的一示例性实施例示出的实时任务的代码调试系统的架构图;
图10是本申请的一示例性实施例示出的实时任务的代码调试示意图;
图11是本申请的一示例性实施例示出的实时任务的代码调试装置的框图;
图12是本申请的另一示例性实施例示出的实时任务的代码调试装置的框图;
图13是本申请的一示例性实施例示出的电子设备的结构示意图;
图14是本申请的一示例性实施例示出的计算机可读存储介质的结构示意图。
具体实施方式
下面结合说明书附图,对本申请实施例的方案进行详细说明。
以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、接口、技术之类的具体细节,以便透彻理解本申请。
本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。此外,本文中的“多”表示两个或者多于两个。另外,本文中术语“至少一种”表示多种中的任意一种或多种中的至少两种的任意组合,例如,包括A、B、C中的至少一种,可以表示包括从A、B和C构成的集合中选择的任意一个或多个元素。
请参考图1,其示出了本申请一个实施例提供的实时任务的代码调试方法的运行环境的示意图。该运行环境可以包括:任务编辑端10、任务执行端20和网络。网络用以在任务编辑端10和任务执行端20之间提供通信链路的介质。
网络可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
任务编辑端10可以是具有显示屏的各种电子设备,包括但不限于台式计算机、便携式计算机、智能手机和平板电脑等等。
任务执行端20可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(Content Delivery Network,CDN)、以及大数据和人工智能平台等基础云计算服务的云服务器。
应该理解,图1中的任务编辑端、网络和任务执行端的数目仅仅是示意性的。根据实现需要,可以具有任意数目的任务编辑端、网络和任务执行端。比如任务执行端20可以是多个服务器组成的服务器集群等。
任务编辑端10可以进行实时任务的代码编辑,且可以通过建立多个步骤实现对实时任务的开发,开发人员可以将实时任务划分为步骤的形式,以步骤为对象进行代码编辑,进而实现以步骤为对象进行代码调试,将需要调试的目标步骤对应的目标代码内容发送给任务执行端20。任务执行端20端中通过当前处于调试的实时任务的调试记录,实现对目标代码内容的执行,得到步骤调试结果,提高代码执行效率。任务编辑端10通过显示步骤调试结果,可以向开发人员显示实时任务中每个步骤的调试结果,提高开发人员进行代码开发的效率。
请参考图2,其示出了本申请一个实施例提供的实时任务的代码调试方法的流程图,该方法可应用于任务编辑端中。
如图2所示,在一示例性的实施例中,实时任务的代码调试方法至少包括步骤S210至步骤S230,详细介绍如下:
步骤S210:响应于针对实时任务中目标步骤的调试指令,获取目标步骤对应的目标代码内容。
实时任务是指Flink SQL任务。
本申请实施例中,在对实时任务进行开发过程中,是以步骤为基本单位进行代码开发的,实时任务由至少一个步骤组成,例如,实时任务A含有创建第一数据表的步骤和查询第一数据表的步骤。
开发人员可以根据当前调试的实际需求,对实时任务中已经创建的步骤执行选取操作,代码编辑端响应于该选取操作确定待调试的目标步骤,获取该目标步骤对应的目标代码内容。
在一些实施方式中,响应于针对实时任务中目标步骤的调试指令,获取目标步骤对应的目标代码内容,包括:响应于针对目标步骤的创建指令,在实时任务开发页面创建目标步骤的代码内容编辑区域;响应于针对目标步骤的调试指令,获取目标步骤的代码内容编辑区域中的代码内容,得到目标代码内容。
对实时任务进行步骤创建,以在实时任务开发页面创建目标步骤的代码内容编辑区域,代码内容编辑区域用于编辑该目标步骤的代码内容。
例如,请参阅图3,图3为本申请一示例性实施例示出的步骤创建示意图,如图3所示,任务编辑端提供有任务节点管理模块(Note Service)和步骤代码块管理模块(Paragraph Service),该任务编辑端向开发人员(actor)提供用于实时任务开发的Web页面。任务编辑端检测到开发人员在实时任务开发页面执行的实时任务创建操作,通过任务节点管理模块创建实时任务(note),然后任务编辑端检测到开发人员在实时任务开发页面执行的针对实时任务的目标步骤创建操作,通过步骤代码块管理模块创建目标步骤,其中,目标步骤可以看作一个代码块(paragraph),然后通过在实时任务开发页面显示目标步骤对应代码块的代码内容编辑区域,以使开发人员可以在该目标步骤的代码内容编辑区域中编辑该目标步骤的相关代码内容。
在一些实施方式中,为了提高开发人员的代码开发效率,可以在任务节点管理模块创建实时任务(note)时,直接默认创建一个该实时任务的初始步骤。例如图4所示,任务编辑端响应于开发人员在实时任务开发页面执行的实时任务a的创建操作,在创建实时任务a时,直接创建该实时任务a对应的第一个步骤(paragraph1)。
在一些实施方式中,实时任务含有多个步骤;响应于针对目标步骤的创建指令,在实时任务开发页面创建目标步骤的代码内容编辑区域,包括:获取目标步骤针对实时任务中其他步骤的次序信息;基于次序信息,确定目标步骤的代码内容编辑区域在实时任务开发页面中的目标显示位置;在目标显示位置创建目标步骤的代码内容编辑区域。
实时任务含有多个已经创建的步骤,若此时接收到新的步骤创建指令,则需要获取目标步骤针对实时任务中其他步骤的次序信息,以根据次序信息确定目标步骤的代码内容编辑区域在实时任务开发页面中的目标显示位置,进而在目标显示位置创建目标步骤的代码内容编辑区域,可以明确每个步骤对应的代码之间的次序,便于开发人员查看每个步骤对应的代码之间的逻辑关系,提高代码的准确性、可读性。
示例性地,实时任务a已经依次建立有步骤1和步骤2,若检测到实时任务开发页面中的新增代码块按钮被触发,则表明当前需要新增第3个步骤。可选地,可以是将第3个步骤对应的代码内容编辑区域的目标显示位置默认为当前所有步骤的代码内容编辑区域之后;还可以是每个已建立的步骤对应有插入步骤按钮,若检测到任一已建立的步骤对应的插入步骤按钮被触发,则将该已建立的步骤之前或之后作为第3个步骤的目标显示位置,例如,检测到第1个步骤对应的插入步骤按钮被触发,则可以将第3个步骤添加至步骤1和步骤2之间,以提高代码编辑的灵活性。可以理解的是,上述确定新增步骤的代码内容编辑区域位置的方式仅是示例性说明,还可以采用其他方式实现,本申请对此不进行限定。
在一些实施方式中,响应于针对实时任务中目标步骤的调试指令,获取目标步骤对应的目标代码内容,包括:获取实时任务中各个步骤的次序信息;基于各个步骤的次序信息,从各个步骤中选出目标步骤对应的待检测步骤;检测待检测步骤是否存在步骤调试结果,将不存在步骤调试结果的待检测步骤作为未调试步骤;基于未调试步骤对应的代码内容和目标步骤对应的代码内容,得到目标代码内容。
任务编辑端连续接收到至少两个步骤的创建指令,新增了至少两个步骤,若此时接收到目标步骤的调试指令,则不仅仅需要获取目标步骤的代码内容,还需要进一步获取目标步骤对应的与新增步骤关联的代码内容,保证代码调试的准确性。
示例性地,实时任务a已经依次创建有步骤1、步骤2和步骤3,且步骤1、步骤2和步骤3已经调试完成,然后接收到步骤4的创建指令,且该步骤4位于步骤2之后,再然后接收到步骤5的创建指令,且该步骤5位于步骤1之后。在步骤5创建完毕后接收到针对针对步骤4的调试指令,获取得到实时任务中各个步骤的次序信息为步骤1->步骤5->步骤2->步骤4->步骤3,则基于各个步骤的次序信息,从各个步骤中选出目标步骤对应的待检测步骤包括步骤1、步骤5、步骤2,然后检测到步骤5不存在步骤调试结果,则未调试的步骤5对应的代码内容应含有步骤5和步骤2分别对应的代码内容,进而得到目标代码内容为步骤5、步骤2和步骤4的代码内容。
在一些实施方式中,请参阅图5,图5是本申请一示例性实施例示出的任务删除流程图,如图5所示,任务编辑端检测到开发人员执行的实时任务删除操作,检测该实时任务在文件锁模块(FileLock Service)中的锁(lock),若该实时任务未被锁定,则通过Paragraph Service删除该实时任务的所有步骤,并通过FileLock Service删除该实时任务的lock,其中,FileLock Service用于协同开发。若均删除成功则通过页面向开发人员返回删除成功的提示,否则返回删除失败的提示。
步骤S220:将目标代码内容发送给任务执行端,以使任务执行端基于目标步骤对应的前置步骤的调试记录执行目标代码内容,得到步骤调试结果。
目标步骤对应的前置步骤是指次序在目标步骤之前的步骤,调试记录用于存储步骤的调试结果,如表创建的结果、表查询的结果等。
前置步骤的调试记录可以存储于任务编辑端,也可以存储于任务执行端,本申请对此不进行限定。
任务编辑端将目标代码内容发送给任务执行端,任务执行端用于根据目标步骤对应的前置步骤的调试记录调试执行目标代码内容,以将得到的步骤调试结果返回给任务编辑端。
步骤S230:显示任务执行端返回的步骤调试结果。
任务编辑端对任务执行端返回的步骤调试结果进行显示,以向开发人员提供交互式的代码开发功能,使得开发人员可以查看实时任务开发过程中每个步骤的结果,降低开发难度和调试难度,缩短开发周期。
示例性地,请参阅图6,图6为本申请一示例性实施例示出的代码调试的页面示意图,如图6所示,代码编辑端基于实时任务a的创建指令创建实时任务a后,默认创建该实时任务a的第一步骤paragraph1,在实时任务开发页面向开发人员显示paragraph1对应的代码内容编辑区域。然后,响应于paragraph1的调试指令,将该paragraph1的代码内容编辑区域中的代码内容作为目标代码内容发送给任务执行端接收到任务执行端返回的paragraph1的步骤调试结果,在paragraph1对应的调试结果显示区域显示paragraph1的步骤调试结果。然后,响应于针对实时任务a的第二步骤paragraph2的创建指令,创建该实时任务a的第二步骤paragraph2,在实时任务开发页面向开发人员显示paragraph2对应的代码内容编辑区域,响应于paragraph2的调试指令,将该paragraph2的代码内容编辑区域中的代码内容作为目标代码内容发送给任务执行端接收到任务执行端返回的paragraph2的步骤调试结果,在paragraph2对应的调试结果显示区域显示paragraph2的步骤调试结果。
由此可见,本申请的实时任务的代码调试方法,通过响应于针对实时任务中目标步骤的调试指令,获取目标步骤对应的目标代码内容,将目标代码内容发送给任务执行端,细化了代码调试的粒度,以使任务执行端获取目标步骤对应的前置步骤的调试记录,基于调试记录执行目标代码内容,得到步骤调试结果,通过基于前置步骤的调试记录执行当前的步骤,提高了代码的执行效率,再显示任务执行端返回的步骤调试结果,向开发人员提供交互式的代码开发功能,使得开发人员可以查看实时任务开发过程中每个步骤的结果,降低开发难度和调试难度,缩短开发周期。
请参考图7,其示出了本申请另一个实施例提供的实时任务的代码调试方法的流程图,该方法可应用于任务执行端中。
如图7所示,在一示例性的实施例中,实时任务的代码调试方法至少包括步骤S710至步骤S730,详细介绍如下:
步骤S710:接收任务编辑端发送的目标代码内容,目标代码内容是任务编辑端响应于针对实时任务中目标步骤的调试指令,获取目标步骤对应的代码内容得到的。
步骤S720:基于目标步骤对应的前置步骤的调试记录执行目标代码内容,得到步骤调试结果。
目标步骤对应的前置步骤是指次序在目标步骤之前的步骤,调试记录用于存储步骤的调试结果,如表创建的结果、表查询的结果等。
在本申请实施例中,任务执行端对实时任务的步骤的步骤调试结果进行了缓存,以通过查询缓存得到已调试步骤的调试记录。示例性地,可以是任务执行端对每个调试过的步骤的调试结果均进行了缓存,也可以是任务执行端仅对状态为运行中的实时任务的步骤的调试结果进行了缓存,本申请对此不进行限定。
在一些实施方式中,获取目标步骤对应的前置步骤的调试记录,包括:获取目标步骤对应的实时任务的任务标识;基于任务标识查询实时任务中各个步骤对应的调试记录;从各个步骤对应的调试记录中选择出目标步骤对应的前置步骤的调试记录。
任务标识用于唯一标记实时任务,任务标识可以为实时任务的任务名称、任务编号等,本申请对此不进行限定。
任务执行端对实时任务的步骤的调试结果进行缓存时,将步骤的调试结果、步骤对应的实时任务的任务标识、步骤的步骤标识等进行关联存储,进而可以通过任务标识查询得到实时任务中各个步骤对应的调试记录,然后从各个步骤对应的调试记录中选择出目标步骤对应的前置步骤的调试记录。
例如,从各个步骤对应的调试记录中选择出目标步骤对应的前置步骤的调试记录,包括:获取各个步骤的次序信息;基于各个步骤的次序信息,从各个步骤中选出目标步骤对应的前置步骤;从各个步骤对应的调试记录中提取出前置步骤的调试记录。
各个步骤的次序信息可以通过步骤的名称、次序编号等获取,本申请对此不进行限定。
示例性地,任务执行端以对实时任务a的步骤1、步骤2和步骤3进行了调试,并缓存有实时任务a的步骤1、步骤2和步骤3的调试记录。然后,任务执行端接收任务编辑端发送的目标代码内容,该目标代码内容中含有步骤4的代码内容,获取已调试的各个步骤的次序信息为步骤1->步骤2->步骤3,然后基于次序信息从各个步骤中选出目标步骤对应的前置步骤。例如,若获取目标代码内容中含有的步骤4的次序信息为第四位,则得到的步骤4的前置步骤包括步骤1、步骤2和步骤3;若获取目标代码内容中含有的步骤4的次序信息为在第3位之前插入,则表明步骤4的代码内容位于步骤3的代码内容之前,则将步骤1和步骤2作为步骤4的前序内容。
在一些实施方式中,若目标代码内容中含有多个步骤的代码内容,则需要以该多个步骤的次序信息来确定一个基准步骤。例如,在上述实施例的基础上,目标代码内容中含有步骤4和步骤5的代码内容,步骤4的次序信息为第四位,步骤5为的次序信息为在第2位之前插入,则从步骤4和步骤5中选择出次序最高的步骤作为基准步骤,即选择步骤5为基准步骤,然后基于该基准步骤的次序信息从各个步骤中选出该基准步骤对应的前置步骤,前置步骤确定过程如上述实施例所示,在此不作赘述。
确定目标代码内容对应的前置步骤后,各个步骤对应的调试记录中提取出前置步骤的调试记录。
然后,可以将调试记录作为目标代码内容执行的前置条件,进而对目标代码内容进行执行,不用对在同一实时任务中的相同步骤在每一次调试中均进行执行,提高了代码执行的效率。
在一些实施方式中,基于调试记录执行目标代码内容,得到步骤调试结果,包括:将目标代码内容封装为待执行任务,并获取待执行任务对应的目标任务解释器;将待执行任务提交给目标任务解释器;获取目标任务解释器执行待执行任务对应的步骤调试结果。
目标任务解释器用于真正运行实时任务,每个实时任务可以独占一个任务解释器。
可选地,任务解释器为服务器集群,每个不同的任务解释器可以是在不同的服务器创建的,以提高数据处理效率。
可以理解的是,也可以是任务编辑端将目标代码内容封装为待执行任务,以及可以是任务编辑端获取待执行任务对应的目标任务解释器,本申请对此不进行限定。
例如,请参阅图8,图8为本申请一示例性实施例示出的调试目标代码内容的示意图,如图8所示,任务编辑端的Note Service响应于针对实时任务中目标步骤的调试指令,任务编辑端的Paragraph Service获取目标步骤对应的目标代码内容,并向任务执行端的解释器管理模块(Interpreter Manager)发起获取或创建任务解释器的请求,以得到Interpreter Manager返回的目标解释器信息,如目标解释器所处服务器的物理地址等。然后,任务编辑端将目标代码内容封装为待执行任务(Paragraph Job),基于InterpreterManager返回的目标解释器信息运行待执行任务。
步骤S730:将步骤调试结果返回至任务编辑端,以使任务编辑端显示步骤调试结果。
在一些实施方式中,在将步骤调试结果返回至任务编辑端之后,任务执行端还缓存该目标步骤对应的步骤调试结果。
在一些实施方式中,还可以是任务编辑端缓存有实时任务的各个步骤的调试记录,则任务编辑端在向任务执行端发送目标代码内容时,还需要向任务执行端发送该目标代码内容对应的前置步骤的调试记录。
接下来对本申请的实时任务的代码调试方法进行进一步示例性说明:
请参阅图9,图9为本申请一示例性实施例示出的实时任务的代码调试系统的架构图,如图9所示,任务编辑端(Client)通过浏览器(WEB NOTEBOOK)向用户提供实时任务开发页面,Client与任务执行端(Service)通信连接,Client一方面将浏览器接收到的操作下发到Service,一方面响应Service传输的信息,将Service的信息返回给浏览器。
Client包括:
通信模块(WebSocket Service):Client和浏览器的双工通道,并向浏览器返回Service传输的信息;
任务节点管理模块(Note Service):将一个实时任务作为一个节点,提供节点创建、删除、保存、运行、停止、清空节点调试记录、选取节点中的指定步骤运行等功能;
步骤代码块管理模块(Paragraph Service):多个步骤按序组成一个完整的节点,模块提供步骤的查询、存储、运行等功能,并维护处于运行中的Paragraph Job。
Service包括:
连接管理模块(Connect Manager):管理Service和Client的webSocket连接,提供创建、关闭连接的功能,同时提供向对应的webSocket发送消息的能力。
元数据管理模块(Metadata Manager):管理实时任务能够使用的元数据,包括原始数据库的元数据信息和实时任务调试过程中的调试记录的元数据信息,对外提供元数据查询功能。
解释器管理模块(Interpreter Manager):用于运行实时任务,每个实时任务可以独占一个解释器,主要对外提供interpreter的获取、关闭、以及提交/停止Paragraph Job的能力。
解释器事件管理模块(Interpreter Event Manager):主要用于监听解释器发送的事件,根据对应的事件做出相应的反应。例如解析器的注册、日志输出、任务状态变化等。
基于上述实施例,请参阅图10,图10为本申请一示例性实施例示出的实时任务的代码调试示意图,如图10所示,实时任务的代码调试步骤包括:
1.web浏览器向Note Service发送针对实时任务中目标步骤的调试请求;
2.Note Service调用Paragraph Service;
3.Paragraph Service获取目标步骤对应的目标代码内容(Paragraph),并根据Paragraph构建Paragraph Job;
4.状态监听器(StatusListener)针对该Paragraph Job进行状态参数注入;
5.Paragraph Service向Interpreter Manager确定该Paragraph Job对应的Interpreter(不对步骤4、5之间的执行先后顺序进行限定);
6.基于确定的Interpreter执行Paragraph Job运行步骤;
7.启动确定的Interpreter,并向启动后的Interpreter提交Paragraph Job;
8.若检测到Paragraph Job以提交,则更新Paragraph Job的状态参数,如更新为运行中;
9.触发StatusListener的监听事务;
10.StatusListener向Connect Manager发送Paragraph Job更新后的状态参数;
11.Interpreter Event Manager接收到Interpreter的步骤调试结果;
12.Interpreter Event Manager向Connect Manager发送步骤调试结果;
13.Connect Manager将接收到的信息(如状态参数、步骤调试结果等)通过WebSocket Service返回给浏览器,浏览器可以对状态参数、步骤调试结果等进行显示。
另外,可以在Client或Service中的至少一者中进行Paragraph Job的步骤调试结果缓存,例如Note Service将实时任务的每个步骤的步骤调试结果缓存至ParagraphService中,Paragraph Service对每个步骤的步骤调试结果进行管理;又例如MetadataManager将实时任务的每个步骤的步骤调试结果进行缓存和管理,本申请对此不进行限定。
本申请的实时任务的代码调试方法,通过接收任务编辑端发送的目标代码内容,基于目标步骤对应的前置步骤的调试记录执行目标代码内容,得到步骤调试结果,将步骤调试结果返回至任务编辑端,以使任务编辑端显示步骤调试结果,提高了代码的执行效率,且通过显示任务执行端返回的步骤调试结果,向开发人员提供交互式的代码开发功能,使得开发人员可以查看实时任务开发过程中每个步骤的结果,降低开发难度和调试难度,缩短开发周期。
图11是本申请的一示例性实施例示出的实时任务的代码调试装置的框图,该实时任务的代码调试装置部署于任务编辑端。如图11所示,该示例性的实时任务的代码调试装置1100包括:获取模块1110、发送模块1120和显示模块1130。具体地:
获取模块1110,用于响应于针对实时任务中目标步骤的调试指令,获取目标步骤对应的目标代码内容;
发送模块1120,用于将目标代码内容发送给任务执行端,以使任务执行端基于目标步骤对应的前置步骤的调试记录执行目标代码内容,得到步骤调试结果;
显示模块1130,用于显示任务执行端返回的步骤调试结果。
在上述示例性的实时任务的代码调试装置中,通过响应于针对实时任务中目标步骤的调试指令,获取目标步骤对应的目标代码内容,将目标代码内容发送给任务执行端,细化了代码调试的粒度,以使任务执行端获取目标步骤对应的前置步骤的调试记录,基于调试记录执行目标代码内容,得到步骤调试结果,通过基于前置步骤的调试记录执行当前的步骤,提高了代码的执行效率,再显示任务执行端返回的步骤调试结果,向开发人员提供交互式的代码开发功能,使得开发人员可以查看实时任务开发过程中每个步骤的结果,降低开发难度和调试难度,缩短开发周期。
图12是本申请的一示例性实施例示出的实时任务的代码调试装置的框图,该实时任务的代码调试装置部署于任务执行端。如图12所示,该示例性的实时任务的代码调试装置1200包括:获取模块1110、发送模块1120和显示模块1130。具体地:
接收模块1210,用于接收任务编辑端发送的目标代码内容,目标代码内容是任务编辑端响应于针对实时任务中目标步骤的调试指令,获取目标步骤对应的代码内容得到的;
执行模块1220,用于基于目标步骤对应的前置步骤的调试记录执行目标代码内容,得到步骤调试结果;
返回模块1230,用于将步骤调试结果返回至任务编辑端,以使任务编辑端显示步骤调试结果。
在上述示例性的实时任务的代码调试装置中,通过接收任务编辑端发送的目标代码内容,基于目标步骤对应的前置步骤的调试记录执行目标代码内容,得到步骤调试结果,将步骤调试结果返回至任务编辑端,以使任务编辑端显示步骤调试结果,提高了代码的执行效率,且通过显示任务执行端返回的步骤调试结果,向开发人员提供交互式的代码开发功能,使得开发人员可以查看实时任务开发过程中每个步骤的结果,降低开发难度和调试难度,缩短开发周期。
其中,各个模块的功能可参见实时任务的代码调试方法实施例所述,此处不再赘述。
请参阅图13,图13是本申请电子设备一实施例的结构示意图。电子设备1300包括存储器1301和处理器1302,处理器1302用于执行存储器1301中存储的程序指令,以实现上述任一实时任务的代码调试方法实施例中的步骤。在一个具体的实施场景中,电子设备1300可以包括但不限于:微型计算机、服务器,此外,电子设备1300还可以包括笔记本电脑、平板电脑等移动设备,在此不做限定。
具体而言,处理器1302用于控制其自身以及存储器1301以实现上述任一实时任务的代码调试方法实施例中的步骤。处理器1302还可以称为CPU(Central Processing Unit,中央处理单元)。处理器1302可能是一种集成电路芯片,具有信号的处理能力。处理器1302还可以是通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。另外,处理器1302可以由集成电路芯片共同实现。
请参阅图14,图14是本申请计算机可读存储介质一实施例的结构示意图。计算机可读存储介质1400存储有能够被处理器运行的程序指令1410,程序指令1410用于实现上述任一实时任务的代码调试方法实施例中的步骤。
在一些实施例中,本公开实施例提供的装置具有的功能或包含的模块可以用于执行上文方法实施例描述的方法,其具体实现可以参照上文方法实施例的描述,为了简洁,这里不再赘述。
上文对各个实施例的描述倾向于强调各个实施例之间的不同之处,其相同或相似之处可以互相参考,为了简洁,本文不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的方法和装置,可以通过其它的方式实现。例如,以上所描述的装置实施方式仅仅是示意性的,例如,模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性、机械或其它的形式。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本申请各个实施方式方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。

Claims (10)

1.一种实时任务的代码调试方法,其特征在于,应用于任务编辑端,所述方法包括:
响应于针对实时任务中目标步骤的调试指令,获取所述目标步骤对应的目标代码内容;
将所述目标代码内容发送给任务执行端,以使所述任务执行端基于所述目标步骤对应的前置步骤的调试记录执行所述目标代码内容,得到步骤调试结果;
显示所述任务执行端返回的步骤调试结果。
2.根据权利要求1所述的方法,其特征在于,所述响应于针对实时任务中目标步骤的调试指令,获取所述目标步骤对应的目标代码内容,包括:
响应于针对所述目标步骤的创建指令,在实时任务开发页面创建所述目标步骤的代码内容编辑区域;
响应于针对所述目标步骤的调试指令,获取所述目标步骤的代码内容编辑区域中的代码内容,得到目标代码内容。
3.根据权利要求2所述的方法,其特征在于,所述实时任务含有多个步骤;所述响应于针对所述目标步骤的创建指令,在实时任务开发页面创建所述目标步骤的代码内容编辑区域,包括:
获取所述目标步骤针对所述实时任务中其他步骤的次序信息;
基于所述次序信息,确定所述目标步骤的代码内容编辑区域在所述实时任务开发页面中的目标显示位置;
在所述目标显示位置创建所述目标步骤的代码内容编辑区域。
4.根据权利要求1所述的方法,其特征在于,所述响应于针对实时任务中目标步骤的调试指令,获取所述目标步骤对应的目标代码内容,包括:
获取所述实时任务中各个步骤的次序信息;
基于所述各个步骤的次序信息,从所述各个步骤中选出所述目标步骤对应的待检测步骤;
检测所述待检测步骤是否存在步骤调试结果,将不存在步骤调试结果的待检测步骤作为未调试步骤;
基于所述未调试步骤对应的代码内容和所述目标步骤对应的代码内容,得到目标代码内容。
5.一种实时任务的代码调试方法,其特征在于,应用于任务执行端,所述方法包括:
接收任务编辑端发送的目标代码内容,所述目标代码内容是所述任务编辑端响应于针对实时任务中目标步骤的调试指令,获取所述目标步骤对应的代码内容得到的;
基于所述目标步骤对应的前置步骤的调试记录执行所述目标代码内容,得到步骤调试结果;
将所述步骤调试结果返回至所述任务编辑端,以使所述任务编辑端显示所述步骤调试结果。
6.根据权利要求5所述的方法,其特征在于,在所述基于所述目标步骤对应的前置步骤的调试记录执行所述目标代码内容,得到步骤调试结果之前,所述方法还包括:
获取所述目标步骤对应的实时任务的任务标识;
基于所述任务标识查询所述实时任务中各个步骤对应的调试记录;
从所述各个步骤对应的调试记录中选择出所述目标步骤对应的前置步骤的调试记录。
7.根据权利要求6所述的方法,其特征在于,所述从所述各个步骤对应的调试记录中选择出所述目标步骤对应的前置步骤的调试记录,包括:
获取所述各个步骤的次序信息;
基于所述各个步骤的次序信息,从所述各个步骤中选出所述目标步骤对应的前置步骤;
从所述各个步骤对应的调试记录中提取出所述前置步骤的调试记录。
8.根据权利要求5所述的方法,其特征在于,所述基于所述目标步骤对应的前置步骤的调试记录执行所述目标代码内容,得到步骤调试结果,包括:
将所述目标代码内容封装为待执行任务,并获取所述待执行任务对应的目标任务解释器;
将所述待执行任务和所述前置步骤的调试记录提交给所述目标任务解释器;
获取所述目标任务解释器执行所述待执行任务对应的步骤调试结果。
9.根据权利要求8所述的方法,其特征在于,在所述将所述步骤调试结果返回至所述任务编辑端之后,所述方法还包括:缓存所述目标步骤对应的步骤调试结果。
10.一种电子设备,其特征在于,包括存储器和处理器,所述处理器用于执行所述存储器中存储的程序指令,以实现权利要求1至9中任一项所述的方法。
CN202310558329.9A 2023-05-15 2023-05-15 实时任务的代码调试方法及电子设备 Pending CN116701185A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310558329.9A CN116701185A (zh) 2023-05-15 2023-05-15 实时任务的代码调试方法及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310558329.9A CN116701185A (zh) 2023-05-15 2023-05-15 实时任务的代码调试方法及电子设备

Publications (1)

Publication Number Publication Date
CN116701185A true CN116701185A (zh) 2023-09-05

Family

ID=87833116

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310558329.9A Pending CN116701185A (zh) 2023-05-15 2023-05-15 实时任务的代码调试方法及电子设备

Country Status (1)

Country Link
CN (1) CN116701185A (zh)

Similar Documents

Publication Publication Date Title
US12112144B2 (en) API specification generation
US11775501B2 (en) Trace and span sampling and analysis for instrumented software
US11755531B1 (en) System and method for storage of data utilizing a persistent queue
CN112256318B (zh) 一种用于依赖产品的构建方法及设备
US11822433B2 (en) Qualification parameters for captain selection in a search head cluster
CN109740129B (zh) 基于区块链的报表生成方法、装置、设备及可读存储介质
CN114791846B (zh) 一种针对云原生混沌工程实验实现可观测性的方法
US20090187656A1 (en) Method, system, and apparatus for scheduling pattern based web services
US7533383B2 (en) Method, system, and apparatus for scheduling pattern based web services
CN111817984A (zh) 消息发送方法、装置、设备及存储介质
US7289989B2 (en) Pattern based web services
CN113254819B (zh) 一种页面渲染方法、系统、设备和存储介质
CN114385382A (zh) 轻应用的访问方法、装置、计算机设备和存储介质
CN113900907A (zh) 一种映射构建方法和系统
CN113360210A (zh) 数据对账方法、装置、计算机设备和存储介质
CN117271584A (zh) 数据处理方法及装置、计算机可读存储介质和电子设备
CN114371969B (zh) 一种页面性能测试方法、装置、电子设备及存储介质
CN116701185A (zh) 实时任务的代码调试方法及电子设备
CN111782428B (zh) 数据调用系统以及方法
CN111400060B (zh) 设备联动方法、装置、服务器和介质
CN114092211A (zh) 核算数据的处理方法、电子设备和可读存储介质
CN114449031A (zh) 信息获取方法、装置、设备和存储介质
CN113301180A (zh) 对象标识符解析方法、装置、设备及存储介质
CN112000618A (zh) 集群节点的文件变动管理方法、装置、设备及存储介质
CN112948225A (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