CN110908820A - 一种异步任务的执行方法、装置、设备及存储介质 - Google Patents

一种异步任务的执行方法、装置、设备及存储介质 Download PDF

Info

Publication number
CN110908820A
CN110908820A CN201911076087.XA CN201911076087A CN110908820A CN 110908820 A CN110908820 A CN 110908820A CN 201911076087 A CN201911076087 A CN 201911076087A CN 110908820 A CN110908820 A CN 110908820A
Authority
CN
China
Prior art keywords
error
information
calling
description
wrong
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
CN201911076087.XA
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.)
Reach Best Technology Co Ltd
Beijing Dajia Internet Information Technology Co Ltd
Original Assignee
Reach Best 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 Reach Best Technology Co Ltd filed Critical Reach Best Technology Co Ltd
Priority to CN201911076087.XA priority Critical patent/CN110908820A/zh
Publication of CN110908820A publication Critical patent/CN110908820A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/079Root cause analysis, i.e. error or fault diagnosis

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本公开提供一种异步任务的执行方法、装置、设备及存储介质,涉及计算机技术领域,用于优化代理对象代理异步任务时捕获调用错误信息的过程。该方法包括:在调用至少一个代理对象的过程中,若调用错误且从历史错误信息中确定出本次调用错误的错误说明信息,则生成第一调用错误信息,所述第一调用错误信息包括错误说明信息以及本次调用错误的代理对象的对象信息;将第一调用错误信息封装成第一错误说明对象,并将第一错误说明对象作为第一错误处理函数的参数;通过第二错误处理函数加载第一错误处理函数,以显示第一调用错误信息。该方法在调用代理对象发生错误时,能直接显示调用错误的错误说明信息以及对象信息,减少了分析错误的时间。

Description

一种异步任务的执行方法、装置、设备及存储介质
技术领域
本公开涉及计算机技术领域,尤其涉及一种异步任务的执行方法、装置、设备及存储介质。
背景技术
相关技术中,在使用代理机制代理异步任务时,调用代理对象的过程中可能会调用错误,目前常在代理对象链的最后添加一个异常捕获.catch()函数,通过.catch()函数捕获调用代理对象的过程中抛出的错误,但是不能直接从.catch()函数捕获的错误中获知调用错误的错误说明信息,只能由工作人员对捕获的错误进行再次分析,才能得知调用代理对象的错误说明信息,进而才能得知调用代理对象的过程中出现错误的环节,分析执行出错的异步任务过程繁琐,十分不便。
发明内容
本公开实施例提供一种异步任务的执行方法、装置、设备及存储介质,用于优化在代理对象代理异步任务时捕获调用错误信息的过程。
本公开第一方面,提供一种异步任务的执行方法,包括:
在调用至少一个代理对象的过程中,若调用错误且从历史错误信息中确定出本次调用错误的错误说明信息,则生成第一调用错误信息,其中所述一个代理对象代理至少一个异步任务,所述第一调用错误信息包括本次调用错误的错误说明信息以及本次调用错误的代理对象的对象信息;
将所述第一调用错误信息封装成第一错误说明对象,并将所述第一错误说明对象作为第一错误处理函数的参数;
通过第二错误处理函数加载所述第一错误处理函数,以显示所述第一错误说明对象的第一调用错误信息。
在一种可能的实现方式中,所述方法还包括:
若调用错误且从所述历史错误信息中未确定出本次调用错误的错误说明信息,则确定用于提示调用错误的第二调用错误信息;
将所述第二调用错误信息封装成第二错误说明对象,并将所述第二错误说明对象作为所述第一错误处理函数的参数;
通过所述第二错误处理函数通过加载所述第一错误处理函数,以显示所述第二错误说明对象的第二调用错误信息。
在一种可能的实现方式中,所述从历史错误信息中确定出本次调用错误的错误说明信息的步骤,包括:
确定本次调用错误的错误标识;
确定所述历史错误信息中与所述错误标识对应的错误说明信息,作为所述本次调用错误的错误说明信息。
在一种可能的实现方式中,所述将所述第一调用错误信息封装成第一错误说明对象的步骤,包括:
将所述第一调用错误信息按照预设封装结构,封装成所述第一错误说明对象。
在一种可能的实现方式中,所述预设封装格式包括错误对象属性和错误说明属性,所述将第一调用错误信息按照预设封装格式,封装成所述第一错误说明对象的步骤,包括:
将所述本次调用错误的代理对象的对象信息作为所述错误对象属性的对象属性值,将所述本次调用错误的错误说明信息作为所述错误说明属性的说明属性值进行封装,得到所述第一错误说明对象。
在一种可能的实现方式中,所述将所述第一调用错误信息封装成第一错误说明对象的步骤,还包括:
确定本次调用错误的附加错误说明信息,所述附加错误说明信息包括写入日志信息、调用错误的时间、本次调用错误的操作者以及本次调用错误的操作系统中的一个或多个信息;
在所述第一错误说明对象中封装所述附加错误说明信息。
本公开第二方面,提供一种异步任务的执行装置,包括:
调用错误信息确定单元,被配置为执行在调用至少一个代理对象的过程中,若调用错误且从历史错误信息中确定出本次调用错误的错误说明信息,则生成第一调用错误信息,其中所述一个代理对象代理至少一个异步任务,所述第一调用错误信息包括本次调用错误的错误说明信息以及本次调用错误的代理对象的对象信息;
错误说明对象封装单元,被配置为执行将所述第一调用错误信息封装成第一错误说明对象,并将所述第一错误说明对象作为第一错误处理函数的参数;
错误信息显示单元,被配置为通过第二错误处理函数加载所述第一错误处理函数,以显示所述第一错误说明对象的第一调用错误信息。
在一种可能的实现方式中,所述调用错误信息确定单元还被配置为执行若调用错误且从所述历史错误信息中未确定出本次调用错误的错误说明信息,则确定用于提示调用错误的第二调用错误信息;
所述错误说明对象封装单元,还被配置为执行将所述第二调用错误信息封装成第二错误说明对象,并将所述第二错误说明对象作为所述第一错误处理函数的参数;
所述错误信息显示单元,还被配置为执行通过所述第二错误处理函数通过加载所述第一错误处理函数,以显示所述第二错误说明对象的第二调用错误信息。
在一种可能的实现方式中,调用错误信息确定单元具体被配置为执行:
确定本次调用错误的错误标识;
确定所述历史错误信息中与所述错误标识对应的错误说明信息,作为所述本次调用错误的错误说明信息。
在一种可能的实现方式中,所述错误说明对象封装单元具体被配置为执行:
将所述第一调用错误信息按照预设封装结构,封装成所述第一错误说明对象。
在一种可能的实现方式中,所述预设封装格式包括错误对象属性和错误说明属性,所述错误说明对象封装单元具体被配置为执行:
将所述本次调用错误的代理对象的对象信息作为所述错误对象属性的对象属性值,将所述本次调用错误的错误说明信息作为所述错误说明属性的说明属性值进行封装,得到所述第一错误说明对象。
在一种可能的实现方式中,所述错误说明对象封装单元还被配置为执行:
确定本次调用错误的附加错误说明信息,所述附加错误说明信息包括写入日志信息、调用错误的时间、本次调用错误的操作者以及本次调用错误的操作系统中的一个或多个信息;
在所述第一错误说明对象中封装所述附加错误说明信息。
本公开第三方面,提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现第一方面及一种可能的实施方式中任一所述的方法。
本公开第四方面,提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,当所述计算机指令在计算机上运行时,使得计算机执行如第一方面及一种可能的实施方式中任一所述的方法。
本公开的方案至少带来以下的有益效果:
本公开的方案中,在调用代理对象发生错误时,会将调用错误的错误说明信息以及调用错误的代理对象的对象信息封装成第一错误说明对象,通过第二错误函数直接显示第一错误说明对象中的错误说明信息以及对象信息,能够明确得知调用代理对象的过程中出错的环节,减少了分析错误的时间。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理,并不构成对本公开的不当限定。
图1为本公开示例性实施例提供的一种异步任务的执行的完整流程示意图;
图2为本公开示例性实施例提供的一种异步任务的执行装置的结构示意图;
图3为本公开示例性实施例提供的一种电子设备的结构示意图。
具体实施方式
为了使本领域普通人员更好地理解本公开的技术方案,下面将结合附图,对本公开实施例中的技术方案进行清楚、完整地描述。
需要说明的是,本公开的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例能够以除了在这里图示或描述的那些以外的顺序实施。
为了便于本领域技术人员更好地理解本公开的技术方案,下面对本公开涉及的技术术语进行说明。
异步任务:异步执行的任务,异步任务指被引擎放在一边,不进入主进程、而进入任务队列的任务,只有引擎认为某个异步任务可以执行了,该异步任务(采用回调函数的形式)才会进入主线程执行,排在异步任务后面的程序,不用等待异步任务结束会马上运行;异步任务是相对于同步任务而言的,同步任务指没有被引擎挂起、在主线程上排队执行的任务,只有前一个任务执行结束才能执行后一个任务,其可能造成“堵塞”效应;其中,任务为软件开发中用户定义的函数,用于实现用户的功能。
Promise代理机制:是ES6标准新增的一个API,意在解决异步任务的回调问题,并且被广泛使用;使用Promise编写也会提高程序的可读性、可维护性,使用Promise,每个函数调用不需要知道下一个执行程序应该转到哪里,执行顺序完全交给调用方决定。
下面对本公开的设计思想进行说明。
在节点服务(Node Server)中存在大量的异步任务,每一个异步任务有一个或多个回调函数(callback),前一个IBU任务结束后,不是执行后一个异步任务,而是执行回调函数,后一个异步任务则是不等前一个异步任务结束就执行,所以程序的执行顺序与异步任务的排列顺序是不同步的,但是在处理异步任务时会存在回调地狱的问题,为了避免这个问题,采用代理机制在处理异步任务的项目;
如在Promise代理机制中,Promise链式调用处理需要依此执行多个异步任务,为了捕获Promise链式调用中的错误信息,常在Promise链的最后添加一个异常捕获函数.catch(),用于捕获Promise链式调用中的错误信息,但是.catch()中默认只能接收到指定类型的错误参数,该错误参数中包含Promise链式调用中的基本错误信息,需要对错误参数进行再分析才能得到执行出错的异步任务,非常不方便,且不能准确地得到执行出错的环节。
鉴于此,本公开设计一种异步任务的执行方法、装置、设备及存储介质,用以优化代理对象代理异步任务时捕获调用错误信息的过程,本公开的方法包括:用代理对象代理异步任务,在调用至少一个代理对象的过程中,若调用错误,则根据历史错误信息确定本次调用错误的信息,若从历史错误信息中确定出本次调用错误的错误说明信息,则生成第一调用错误信息,上述第一调用错误信息包括本次调用错误的错误说明信息以及本次调用错误的代理对象的对象信息;进而将第一调用错误信息封装成第一错误说明对象,并将第一错误说明对象作为第一错误处理函数的参数;通过第二错误处理函数加载上述第一错误处理函数,以显示上述第一错误说明对象的第一调用错误信息。
以下结合附图对本公开的方案进行详细说明。
当需要调度多个异步任务时,用一个或多个代理对象代理异步任务,其中,一个代理对象可以代理一个或多个异步任务,本实施例中仅以一个代理对象代理一个异步任务进行说明。
多个代理对象按照调度方决定的调度顺序组成一个代理链,该代理链上一个代理对象调用成功后可调用下一个代理对象,一旦某个代理对象调用错误,即调用某个代理对象失败时该代理链的执行结束。
本实施例中仅以Promise代理机制中的Promise对象作为上述代理对象,对本公开的方案进行详细描述,但应当理解的是,本公开中的方案并不局限于使用在Promise代理机制中,也可以使用其他的任务代理机制中。
一个Promise对象可以有以下几种状态:
1)初始状态pending:即Promise对象未被调用时的状态,既不是调用成功也不是调用错误;
2)调用成功filled:指调用Promise对象操作完成状态,即调用成功;
3)调用错误reject:指调用Promise对象操作失败状态,即调用错误。
为了达到显示调用错误信息的目的,本公开在主线程中设置错误捕获函数、第一错误处理函数以及第二错误处理函数,其中:
在调用至少一个代理对象的过程中,若调用错误,则执行该错误捕获函数,通过错误捕获函数捕获调用错误信息,并将调用错误信息封装成错误说明对象,以及将错误说明对象作为第一错误处理函数的参数;进而通过第二错误处理函数加载第一错误处理函数,显示错误说明对象中的调用错误信息。
以下对上述错误捕获函数的构成进行详细说明:
上述错误捕获函数中设置有错误信息捕获程序模块以及错误说明对象封装程序模块,具体如下:
1)错误信息捕获程序模块
从历史错误信息中查找与本次调用错误相关的错误信息,若在历史错误信息中确定出本次调用错误的错误说明信息,则生成第一调用错误信息;其中,上述第一调用错误信息包括本次调用错误的错误说明信息以及本次调用错误的代理对象的对象信息。
若未从上述历史错误信息中未确定出本次调用错误的错误说明信息,则确定调用错误时自动抛出的第二调用错误信息,该第二调用错误信息用于提示调用错误,但并不会提示具体的错误说明信息和调用错误的代理对象的代理信息。
2)错误说明对象封装程序模块
若上述错误信息捕获程序模块中生成了第一调用错误信息,若上述错误信息捕获程序模块中确定了第二调用错误信息,则将第二调用错误信息封装成第二错误说明对象。
进一步地,可以通过如下方法封装第一错误说明对象以及第二错误说明对象:
可以将上述第一调用错误信息按照预设封装结构,封装成上述第一错误说明对象;上述预设封装格式包括属性如错误对象属性err和错误说明属性msg时,可以将上述本次调用错误的代理对象的对象信息作为上述错误对象属性的对象属性值,将上述本次调用错误的错误说明信息作为上述错误说明属性的说明属性值进行封装,得到上述第一错误说明对象。
可选地,可以对Promise代理机制中的reject()函数进行优化得到上述错误捕获函数,具体可将reject()函数中的reject(err)优化为reject({err:Err,msg:XXX}),其中,err表示上述错误对象属性,Err表示上述错误对象属性的对象属性值,上述msg表示上述错误说明属性,上述XXX表示错误说明属性的说明属性值。
在封装第一错误说明对象时,可以将本次调用错误的代理对象的对象信息作为上述对象属性值Err,用以指示本次调用错误的代理对象,可以将从历史错误信息中确定出的错误说明信息作为上述说明属性值XXX,用以指示本次调用错误的具体说明信息。
在封装第二错误说明对象时,将第二调用错误信息作为第二错误说明对象的属性的属性值,生成一个不包含错误说明信息XXX的第二错误对象。
上述对象信息用以表示代理对象的身份标识,可以但不局限用数字或其他设定格式字符为每个代理对象设定一个对象信息。
以下对从历史错误信息中查找与本次调用错误相关的错误信息的步骤进行详细说明:
确定本次调用错误的错误标识;
确定历史错误信息中与上述错误标识对应的错误说明信息,作为本次调用错误的错误说明信息。
其中,上述历史错误信息中可以保存有以往调用错误的错误说明信息和错误标识的映射关系,当调用代理对象发生错误时,可以确定本次调用错误的错误标识,进而从历史错误信息中查询与该错误标识对应的错误说明信息。
上述调用错误可以包括信息输入错误、第三方服务错误、数据库操作错误等,上述错误说明信息可以为信息输入错误、XX服务错误、数据库查询数据错误、数据添加错误、数据删除错误等。
上述错误标识仅用于标识调用错误事件,可以使用数字或设定格式字符作为上述错误标识。
以下给出一种错误说明信息和错误标识的映射关系,参见表1:
表1:
错误标识 错误说明信息
1000 信息输入错误
1001 XX服务错误
1010 数据库查询数据错误
1011 数据删除错误
表1中,采用二进制数字表示错误标识,本领域的技术人员也可采用其他形式标识错误标识,其中,每个错误标识对应一个错误说明信息。
可选地,可以将Promise代理机制中的.catch()函数进行优化得到上述第二错误处理函数,具体可将.catch()函数中的.catch(err=>handleError(err))优化为.catch(catchError(({err,msg})=>handleError(err,msg))),以使得到的第二错误处理函数能处理第一错误说明对象和第二错误说明对象。
第二错误处理函数加载第一错误处理函数,若第一错误处理函数的参数为第一错误说明对象,则显示第一错误说明对象中的第一调用错误信息,即显示第一调用错误信息中的错误说明信息及对象信息,以告知用户或技术人员在调用代理对象过程中具体出错的环节以及原因;若第一错误处理函数的参数为第二说明对象,则显示第二错误说明对象中的第二调用错误信息,以向用户或开发人员指示调用错误,让其对第二调用错误信息进行分析以获知调用代理对象过程中具体出错的环节以及原因。
为了显示更详细的调用错误信息,本公开在将第一调用错误信息封装成第一错误说明对象时,还可以确定本次调用错误的附件错误说明信息,并在上述第一错误说明信息中封装上述附加错误说明信息;上述附加错误说明信息可以包括写入日志信息、调用错误的时间、本次调用错误的操作者以及本次调用错误的操作系统中的一个或多个信息。
还可以在按照reject({err:err,msg:XXX})格式封装第一错误说明对象时,在其中添加日志关键字log,即按照reject({err:err,msg:XXX,log:YYY})的形式封装第一错误说明对象,其中YYY为将第一调用错误信息写入日志的附加错误说明信息。
对应地,可以优化第二错误处理函数中的程序.catch(catchError(({err,msg})=>handleError(err,msg)))为:
Figure BDA0002262496640000101
上述程序中表示,如果存在日志关键字log,则将日志关键字log对应的YYY信息写入到日志文件中。
如图1所示,为了便于理解,给出本公开方案的一个完整流程,具体包括:
调用至少一个代理对象的过程中,调用到任一个代理对象时,进入步骤S101。
步骤S101,判断调用是否发生错误,若调用错误,进入步骤S102,若调用成功,进入步骤S109。
步骤S102,从历史错误信息中确定本次调用错误的错误说明信息。
步骤S103,判断是否从历史错误信息中确定出本次调用错误的错误说明信息,若确定出,进入步骤S104,否则,进入步骤S105。
步骤S104,将调用错误的错误说明信息及调用错误的代理对象的对象信息作为第一调用错误信息,并将第一调用错误信息封装成错误说明对象,并进入步骤S106。
此步骤中,上述第一调用错误信息封装成的错误说明对象即为上述第一错误说明对象。
步骤S105,确定用于提示调用错误的第二调用错误信息,并进入步骤S106。
步骤S106,判断错误说明对象是否包含属性,若是,进入步骤S107,否则,进入步骤S1061。
其中,步骤S104中按照上述reject({err:err,msg:XXX})格式封装出的错误说明对象是有属性err和msg的,而步骤S105中仅确定了第二调用错误信息,并不包含属性。
步骤S1061,将第二调用错误信息作为属性进行封装,得到错误说明对象,并进入步骤S107。
此步骤中,上述第二调用错误信息封装成的错误说明对象即为上述第二错误说明对象。
步骤S107,将错误说明对象作为第一错误处理函数的参数。
步骤S108,通过第二错误处理函数加载上述第一错误处理函数,显示调用错误信息。
其中,若第一错误处理函数的参数为第一错误说明对象,则步骤中显示第一调用错误信息,若第一错误处理函数的参数为第二错误说明对象,则步骤中显示第二调用错误信息。
步骤S109,调用下一个代理对象,并进入步骤S101。
为了便于理解,以下给出本公开方案的实施效果进行说明。
该示例的场景的目标任务为批量查询用户信息,该目标任务中包括以下三个异步任务的环节:
第一异步任务:上传文件;
第二异步任务:读取文件;
第三异步任务:获取用户的身份标识。
用第一代理对象代理第一异步任务,第二代理对象代理第二异步任务,第三代理对象代理第三异步任务,第一代理对象至第三代理对象构成一个代理链,该代理链中包括三个环节,任何一个代理对象的调用错误,都会导致该目标任务失败。
若调用第一代理对象发生错误,则提供一个错误说明信息为“上传文件出错,原因为XX”;若调用第二代理对象发生错误,则提供一个错误说明信息为“读取文件出错,原因为YY”;若调用第三代理对象发生错误,提供一个错误说明信息为“第三方服务出错,原因为ZZ”。
进而代理机制中的第二错误处理函数能捕获上述各个错误说明信息并显示,以便用户或技术人员快速定位出错环节,进而及时进行修复。
本公开中将调用错误信息封装成错误说明对象,将错误说明对象作为第一错误处理函数的参数,通过第二错误处理函数加载第一错误处理函数,能直接显示错误说明对象中的错误说明信息和调用错误的代理对象的对象信息,使得用户或技术人员能更便捷地得知在调用至少一个代理对象的过程中,出错的具体环节和原因;且可以对错误说明信息进行扩展,获取调用错误的更多的说明信息。
如图2所示,基于相同的发明构思,本公开实施例还提供一种异步任务的执行装置200,该装置包括:
调用错误信息确定单元201,被配置为执行在调用至少一个代理对象的过程中,若调用错误且从历史错误信息中确定出本次调用错误的错误说明信息,则生成第一调用错误信息,其中上述一个代理对象代理至少一个异步任务,上述第一调用错误信息包括本次调用错误的错误说明信息以及本次调用错误的代理对象的对象信息;
错误说明对象封装单元202,被配置为执行将上述第一调用错误信息封装成第一错误说明对象,并将上述第一错误说明对象作为第一错误处理函数的参数;
错误信息显示单元203,被配置为通过第二错误处理函数加载上述第一错误处理函数,以显示上述第一错误说明对象的第一调用错误信息。
可选地,上述调用错误信息确定单元还被配置为执行若调用错误且从上述历史错误信息中未确定出本次调用错误的错误说明信息,则确定用于提示调用错误的第二调用错误信息;
上述错误说明对象封装单元,还被配置为执行将上述第二调用错误信息封装成第二错误说明对象,并将上述第二错误说明对象作为上述第一错误处理函数的参数;
上述错误信息显示单元,还被配置为执行通过上述第二错误处理函数通过加载上述第一错误处理函数,以显示上述第二错误说明对象的第二调用错误信息。
可选地,上述调用错误信息确定单元还被配置为执行:
确定本次调用错误的错误标识;
确定上述历史错误信息中与上述错误标识对应的错误说明信息,作为上述本次调用错误的错误说明信息。
可选地,上述错误说明对象封装单元具体被配置为执行:
将上述第一调用错误信息按照预设封装结构,封装成上述第一错误说明对象。
可选地,上述预设封装格式包括错误对象属性和错误说明属性,上述错误说明对象封装单元具体被配置为执行:
将上述本次调用错误的代理对象的对象信息作为上述错误对象属性的对象属性值,将上述本次调用错误的错误说明信息作为上述错误说明属性的说明属性值进行封装,得到上述第一错误说明对象。
可选地,上述错误说明对象封装单元还被配置为执行:
确定本次调用错误的附加错误说明信息,上述附加错误说明信息包括写入日志信息、调用错误的时间、本次调用错误的操作者以及本次调用错误的操作系统中的一个或多个信息;
在上述第一错误说明对象中封装上述附加错误说明信息。
如图3所示,本公开提供一种电子设备300,包括处理器301、用于存储上述处理器可执行指令的存储器302;
其中,上述处理器被配置为执行如下过程:
在调用至少一个代理对象的过程中,若调用错误且从历史错误信息中确定出本次调用错误的错误说明信息,则生成第一调用错误信息,其中上述一个代理对象代理至少一个异步任务,上述第一调用错误信息包括本次调用错误的错误说明信息以及本次调用错误的代理对象的对象信息;
将上述第一调用错误信息封装成第一错误说明对象,并将上述第一错误说明对象作为第一错误处理函数的参数;
通过第二错误处理函数加载上述第一错误处理函数,以显示上述第一错误说明对象的第一调用错误信息。
上述处理器还被配置为执行如下过程:
若调用错误且从上述历史错误信息中未确定出本次调用错误的错误说明信息,则确定用于提示调用错误的第二调用错误信息;
将上述第二调用错误信息封装成第二错误说明对象,并将上述第二错误说明对象作为上述第一错误处理函数的参数;
通过上述第二错误处理函数通过加载上述第一错误处理函数,以显示上述第二错误说明对象的第二调用错误信息。
上述处理器具体被配置为执行如下过程:
确定本次调用错误的错误标识;
确定上述历史错误信息中与上述错误标识对应的错误说明信息,作为上述本次调用错误的错误说明信息。
上述处理器具体被配置为执行如下过程:
将上述第一调用错误信息按照预设封装结构,封装成上述第一错误说明对象。
上述预设封装格式包括错误对象属性和错误说明属性,上述处理器具体被配置为执行如下过程:
将上述本次调用错误的代理对象的对象信息作为上述错误对象属性的对象属性值,将上述本次调用错误的错误说明信息作为上述错误说明属性的说明属性值进行封装,得到上述第一错误说明对象。
上述处理器还被配置为执行如下过程:
确定本次调用错误的附加错误说明信息,上述附加错误说明信息包括写入日志信息、调用错误的时间、本次调用错误的操作者以及本次调用错误的操作系统中的一个或多个信息;
在上述第一错误说明对象中封装上述附加错误说明信息。
在示例性实施例中,还提供了一种包括指令的存储介质,例如包括指令的存储器,上述指令可由上述电子设备的处理器执行以完成上述方法。可选地,存储介质可以是非临时性计算机可读存储介质,例如,上述非临时性计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本公开旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。

Claims (10)

1.一种异步任务的执行方法,其特征在于,包括:
在调用至少一个代理对象的过程中,若调用错误且从历史错误信息中确定出本次调用错误的错误说明信息,则生成第一调用错误信息,其中所述一个代理对象代理至少一个异步任务,所述第一调用错误信息包括本次调用错误的错误说明信息以及本次调用错误的代理对象的对象信息;
将所述第一调用错误信息封装成第一错误说明对象,并将所述第一错误说明对象作为第一错误处理函数的参数;
通过第二错误处理函数加载所述第一错误处理函数,以显示所述第一错误说明对象的第一调用错误信息。
2.如权利要求1所述的方法,其特征在于,还包括:
若调用错误且从所述历史错误信息中未确定出本次调用错误的错误说明信息,则确定用于提示调用错误的第二调用错误信息;
将所述第二调用错误信息封装成第二错误说明对象,并将所述第二错误说明对象作为所述第一错误处理函数的参数;
通过所述第二错误处理函数通过加载所述第一错误处理函数,以显示所述第二错误说明对象的第二调用错误信息。
3.如权利要求1所述的方法,其特征在于,所述从历史错误信息中确定出本次调用错误的错误说明信息的步骤,包括:
确定本次调用错误的错误标识;
确定所述历史错误信息中与所述错误标识对应的错误说明信息,作为所述本次调用错误的错误说明信息。
4.如权利要求1所述的方法,其特征在于,所述将所述第一调用错误信息封装成第一错误说明对象的步骤,包括:
将所述第一调用错误信息按照预设封装结构,封装成所述第一错误说明对象。
5.如权利要求4所述的方法,其特征在于,所述预设封装格式包括错误对象属性和错误说明属性,所述将第一调用错误信息按照预设封装格式,封装成所述第一错误说明对象的步骤,包括:
将所述本次调用错误的代理对象的对象信息作为所述错误对象属性的对象属性值,将所述本次调用错误的错误说明信息作为所述错误说明属性的说明属性值进行封装,得到所述第一错误说明对象。
6.如权利要求1所述的方法,其特征在于,所述将所述第一调用错误信息封装成第一错误说明对象的步骤,还包括:
确定本次调用错误的附加错误说明信息,所述附加错误说明信息包括写入日志信息、调用错误的时间、本次调用错误的操作者以及本次调用错误的操作系统中的一个或多个信息;
在所述第一错误说明对象中封装所述附加错误说明信息。
7.一种异步任务的执行装置,其特征在于,包括:
调用错误信息确定单元,被配置为执行在调用至少一个代理对象的过程中,若调用错误且从历史错误信息中确定出本次调用错误的错误说明信息,则生成第一调用错误信息,其中所述一个代理对象代理至少一个异步任务,所述第一调用错误信息包括本次调用错误的错误说明信息以及本次调用错误的代理对象的对象信息;
错误说明对象封装单元,被配置为执行将所述第一调用错误信息封装成第一错误说明对象,并将所述第一错误说明对象作为第一错误处理函数的参数;
错误信息显示单元,被配置为通过第二错误处理函数加载所述第一错误处理函数,以显示所述第一错误说明对象的第一调用错误信息。
8.如权利要求7所述的装置,其特征在于,
所述调用错误信息确定单元还被配置为执行若调用错误且从所述历史错误信息中未确定出本次调用错误的错误说明信息,则确定用于提示调用错误的第二调用错误信息;
所述错误说明对象封装单元,还被配置为执行将所述第二调用错误信息封装成第二错误说明对象,并将所述第二错误说明对象作为所述第一错误处理函数的参数;
所述错误信息显示单元,还被配置为执行通过所述第二错误处理函数通过加载所述第一错误处理函数,以显示所述第二错误说明对象的第二调用错误信息。
9.一种电子设备,其特征在于,包括处理器、用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为执行权利要求1至6中任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机指令,当所述计算机指令在计算机上运行时,使得计算机执行权利要求1-6中任一项所述的方法。
CN201911076087.XA 2019-11-06 2019-11-06 一种异步任务的执行方法、装置、设备及存储介质 Pending CN110908820A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911076087.XA CN110908820A (zh) 2019-11-06 2019-11-06 一种异步任务的执行方法、装置、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911076087.XA CN110908820A (zh) 2019-11-06 2019-11-06 一种异步任务的执行方法、装置、设备及存储介质

Publications (1)

Publication Number Publication Date
CN110908820A true CN110908820A (zh) 2020-03-24

Family

ID=69814879

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911076087.XA Pending CN110908820A (zh) 2019-11-06 2019-11-06 一种异步任务的执行方法、装置、设备及存储介质

Country Status (1)

Country Link
CN (1) CN110908820A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113568686A (zh) * 2020-10-30 2021-10-29 深圳市九九互动科技有限公司 Lua语言的异步处理方法、装置、计算机设备和存储介质

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002358252A (ja) * 2001-06-01 2002-12-13 Nec Corp Snmpプロトコルにおけるエラー伝達方法、エラー伝達プログラム及びエラー伝達システム
US20030037291A1 (en) * 2001-08-17 2003-02-20 International Business Machines Corporation Method, system and program for handling errors occurring in function calls
CN102831027A (zh) * 2012-08-29 2012-12-19 上海交通大学 一种基于代理的面向服务软件系统的容错方法
CN103516530A (zh) * 2012-06-20 2014-01-15 中兴通讯股份有限公司 一种获取代理端扩展错误信息的方法及装置
CN107360037A (zh) * 2017-08-08 2017-11-17 京信通信系统(中国)有限公司 一种错误信息获取方法及网络管理设备
CN108228439A (zh) * 2018-01-04 2018-06-29 广东睿江云计算股份有限公司 一种程序与日志解耦的方法
CN109710440A (zh) * 2018-12-14 2019-05-03 平安科技(深圳)有限公司 网页前端的异常处理方法、装置、存储介质及终端设备

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002358252A (ja) * 2001-06-01 2002-12-13 Nec Corp Snmpプロトコルにおけるエラー伝達方法、エラー伝達プログラム及びエラー伝達システム
US20030037291A1 (en) * 2001-08-17 2003-02-20 International Business Machines Corporation Method, system and program for handling errors occurring in function calls
CN103516530A (zh) * 2012-06-20 2014-01-15 中兴通讯股份有限公司 一种获取代理端扩展错误信息的方法及装置
CN102831027A (zh) * 2012-08-29 2012-12-19 上海交通大学 一种基于代理的面向服务软件系统的容错方法
CN107360037A (zh) * 2017-08-08 2017-11-17 京信通信系统(中国)有限公司 一种错误信息获取方法及网络管理设备
CN108228439A (zh) * 2018-01-04 2018-06-29 广东睿江云计算股份有限公司 一种程序与日志解耦的方法
CN109710440A (zh) * 2018-12-14 2019-05-03 平安科技(深圳)有限公司 网页前端的异常处理方法、装置、存储介质及终端设备

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113568686A (zh) * 2020-10-30 2021-10-29 深圳市九九互动科技有限公司 Lua语言的异步处理方法、装置、计算机设备和存储介质
CN113568686B (zh) * 2020-10-30 2023-11-28 深圳市九九互动科技有限公司 Lua语言的异步处理方法、装置、计算机设备和存储介质

Similar Documents

Publication Publication Date Title
CN109634800A (zh) 数据处理方法、系统、终端及可读存储介质
CN108804215B (zh) 一种任务处理方法、装置以及电子设备
US8156479B2 (en) System and method of monitoring dynamic scopes in synchronous and asynchronous calls
US11169896B2 (en) Information processing system
CN108616668B (zh) 监控拨打任务的方法、电子装置及计算机可读存储介质
CN111475401A (zh) 一种测试方法及相关设备
CN110599305A (zh) 业务处理方法、装置及存储介质
CN110543429B (zh) 测试用例调试方法、装置及存储介质
WO2020253045A1 (zh) 配置化的数据转发异常补处理方法、装置及可读存储介质
CN110908820A (zh) 一种异步任务的执行方法、装置、设备及存储介质
CN111913804A (zh) 访前报告的生成方法、装置、电子设备及存储介质
US20200042296A1 (en) Code lineage tool
CN113535439B (zh) 业务请求处理方法、装置、设备及存储介质
CN115509714A (zh) 一种任务处理方法、装置、电子设备及存储介质
CN114610413A (zh) 基于Java的同异步任务的执行方法、装置、设备及存储介质
CN111866576B (zh) 线上问题处理系统及方法
WO2020199469A1 (zh) 基于django框架的接口调用记录方法、装置、设备及存储介质
US8321844B2 (en) Providing registration of a communication
CN113886277B (zh) 一种软件缺陷报告合规性的检测方法及装置
CN116501533B (zh) 一种异步队列任务的报错处理方法及系统
US10481880B2 (en) Code lineage tool
CN113052574A (zh) 工作流的数据处理方法及装置、存储介质及电子设备
CN114416027A (zh) 一种软件低代码开发系统及方法
CN116048949A (zh) 接口测试方法、装置、电子设备和存储介质
CN112988582A (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