服务的异步调用方法和装置制造方法及图纸

技术编号:21340465 阅读:25 留言:0更新日期:2019-06-13 21:49
本申请实施例公开了服务的异步调用方法和装置。该方法的一具体实施方式包括:从预设消息队列中获取待处理的消息,其中,消息与调用方需要以异步调用方式调用的被调用方提供的接口相关联;响应于确定待处理的消息为需处理的消息,基于待处理的消息,以异步调用方式调用被调用方提供的接口,得到调用结果;执行与调用结果相关联的操作,与调用结果相关联的操作包括将待处理的消息设置为需要延迟处理的消息。该实施方式在异步调用任务失败后,可以延时重新执行调用任务,从而确保了异步调用任务的肯定被执行。此外,还可以对被调用方起到削峰保护,从而可以提高云服务的稳定性。

Asynchronous invocation methods and devices for services

The embodiment of this application discloses an asynchronous invocation method and device of a service. One specific implementation of the method includes: obtaining the message to be processed from the default message queue, in which the message is associated with the interface provided by the callee that the caller needs to invoke in an asynchronous manner; in response to determining that the message to be processed is the message to be processed, invoking the interface provided by the callee in an asynchronous manner based on the message to be processed, and obtaining the invocation. Result; perform operations associated with the result of the call, including setting the message to be processed to a message that needs to be delayed. After the asynchronous invocation task fails, the implementation can delay the re-execution of the invocation task, thus ensuring that the asynchronous invocation task is definitely executed. In addition, it can also provide peak shaving protection to the callee, which can improve the stability of cloud services.

【技术实现步骤摘要】
服务的异步调用方法和装置
本申请实施例涉及计算机
,具体涉及互联网
,尤其涉及服务的异步调用方法和装置。
技术介绍
在云服务平台提供的各种服务中,一种云服务为了实现自身所提供的功能,可能会调用其他的云服务。为了降低资源占用,减少网络阻塞,通常可以使用异步调用的方法实现不同云服务间的调用。现有的异步调用的方法通常由调用方(一种云服务)发调用请求到异步调用服务方,异步调用服务方可以接收调用请求,将所接收的调用请求保存到消息队列中;异步调用服务方依次从消息队列中提取调用请求,根据调用请求所指示的被调用方(另一种云服务)的地址来向被调用方发起调用。并将上述调用返回的结果返回给调用方。
技术实现思路
本申请实施例提出了一种服务的异步调用方法和装置。第一方面,本申请实施例提供了一种服务的异步调用方法,该方法包括:从预设消息队列中获取待处理的消息,其中,消息与调用方需要以异步调用方式调用的被调用方提供的接口相关联;响应于确定待处理的消息为需处理的消息,基于待处理的消息,以异步调用方式调用被调用方提供的接口,得到调用结果;执行与调用结果相关联的操作,与调用结果相关联的操作包括将待处理的消息设置为需要延迟处理的消息。在一些实施例中,在响应于确定待处理的消息为需处理的消息,基于待处理的消息,以异步调用方式调用被调用方提供的接口,得到调用结果之前,该方法还包括:确定待处理的消息是否满足预设条件,预设条件包括:待处理的消息不与预设时长的判断时间段内从消息队列中获取的任意一个消息为同一个消息,判断时间段的结束时刻在确定消息队列中的消息是否满足处理条件的时刻之前;当待处理的消息满足预设条件时,将待处理的消息确定为需处理的消息。在一些实施例中,该方法还包括:生成待处理的消息对应的键值对,键值对包括:表示消息的标识的键、表示消息的属性信息的键值;以及确定待处理的消息是否满足预设条件,包括:查询预设键值对列表中是否存在待处理的消息对应的键;若不存在,则确定待处理消息满足预设条件;将待处理的消息对应的键值对添加至预设键值对列表;其中,预设键值对列表中存储预设时长的判断时间段内从消息队列中获取的多个消息各自对应的键值对。在一些实施例中,在响应于确定待处理的消息为需处理的消息,基于待处理的消息,以异步调用方式调用被调用方提供的接口,得到调用结果之前,该方法还包括:当确定待处理的消息为需处理的消息时,将待处理的消息以及待处理的消息对应的执行时间信息添加入预设有序集合中;以及响应于确定待处理的消息为需处理的消息,基于待处理的消息,以异步调用方式调用被调用方提供的接口,得到调用结果,包括:在执行时间信息所指示的时刻,以异步调用方式调用与待处理的消息所关联的被调用方提供的接口,得到调用结果。在一些实施例中,在执行与调用结果相关联的操作之前,该方法还包括:确定调用结果是否为预设调用返回结果;以及执行与调用结果相关联的操作,包括:若确定调用结果为预设调用返回结果,则执行从预设有序集合中删除待处理的消息及待处理的消息对应的执行时间信息的操作。在一些实施例中,该方法还包括:每隔预设时间间隔,对预设有序集合进行检查,以检查预设有序集合是否存在已过执行时间的需处理的消息;若存在,则以同步调用方式执行调用该需处理的消息对应的被调用方提供的接口的操作。在一些实施例中,预设消息队列为分布式发布订阅消息系统中的预设消息队列。第二方面,本申请实施例提供了一种服务的异步调用装置,该装置包括:获取单元,被配置成从预设消息队列中获取待处理的消息,其中,消息与调用方需要以异步调用方式调用的被调用方提供的接口相关联;调用单元,被配置成响应于确定待处理的消息为需处理的消息,基于待处理的消息,以异步调用方式调用被调用方提供的接口,得到调用结果;执行单元,被配置成执行与调用结果相关联的操作,与调用结果相关联的操作包括将待处理的消息设置为需要延迟处理的消息。在一些实施例中,该装置还包括确定单元,确定单元被配置成:在调用单元响应于确定待处理的消息为需处理的消息,基于待处理的消息,以异步调用方式调用被调用方提供的接口,得到调用结果之前,确定待处理的消息是否满足预设条件,预设条件包括:待处理的消息不与预设时长的判断时间段内从消息队列中获取的任意一个消息为同一个消息,判断时间段的结束时刻在确定消息队列中的消息是否满足处理条件的时刻之前;当待处理的消息满足处理条件时,将待处理的消息确定为需处理的消息。在一些实施例中,该装置还包括生成单元,生成单元被配置成:生成待处理的消息对应的键值对,键值对包括:表示消息的标识的键、表示消息的属性信息的键值;以及确定单元进一步被配置成:查询预设键值对列表中是否存在待处理的消息对应的键;若不存在,则确定待处理消息满足预设条件;将待处理的消息对应的键值对添加至预设键值对列表;其中,预设键值对列表中存储预设时长的判断时间段内从消息队列中获取的多个消息对应的键值对。在一些实施例中,该装置还包括消息添加单元,消息添加单元被配置成:在调用单元响应于确定待处理的消息为需处理的消息,基于待处理的消息,以异步调用方式调用被调用方提供的接口,得到调用结果之前,当确定待处理的消息为需处理的消息时,将待处理的消息以及待处理的消息对应的执行时间信息添加入预设有序集合中;以及调用单元进一步被配置成:在执行时间信息所指示的时刻,以异步调用方式调用与待处理的消息所关联的被调用方提供的接口,得到调用结果。在一些实施例中,执行单元进一步被配置成:在执行与调用结果相关联的操作之前,确定调用结果是否为预设调用返回结果;以及若确定调用结果为预设调用返回结果,则执行从预设有序集合中删除待处理的消息及待处理的消息对应的执行时间信息的操作。在一些实施例中,调用单元进一步被配置成:每隔预设时间间隔,对预设有序集合进行检查,以检查预设有序集合是否存在已过执行时间的需处理的消息;若存在,则执行以同步调用方式调用该需处理的消息对应的被调用方提供的接口的操作。在一些实施例中,预设消息队列为分布式发布订阅消息系统中的预设消息队列。第三方面,本申请实施例提供了一种电子设备,该电子设备包括:一个或多个处理器;存储装置,其上存储有一个或多个程序,当上述一个或多个程序被上述一个或多个处理器执行时,使得上述一个或多个处理器实现如第一方面中任一实现方式描述的方法。第四方面,本申请实施例提供了一种计算机可读介质,其上存储有计算机程序,其中,该计算机程序被处理器执行时实现如第一方面中任一实现方式描述的方法。本申请实施例提供的服务的异步调用方法和装置,通过从预设消息队列中获取待处理的消息,消息与调用方需要以异步调用方式调用的被调用方提供的接口相关联,而后响应于确定待处理的消息为需处理的消息,基于待处理的消息,以异步调用方式调用被调用方提供的接口,得到调用结果,最后执行与调用结果相关联的操作,与调用结果相关联的操作包括将待处理的消息设置为需要延迟处理的消息。上述方案在异步调用任务失败后,可以延时重新调用,从而确保了异步调用任务的被成功执行。此外,还可以对被调用方起到削峰保护,从而可以提高云服务的稳定性。附图说明通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:图1是本申本文档来自技高网...

【技术保护点】
1.一种服务的异步调用方法,包括:从预设消息队列中获取待处理的消息,其中,所述消息与调用方需要以异步调用方式调用的被调用方提供的接口相关联;响应于确定待处理的消息为需处理的消息,基于待处理的消息,以异步调用方式调用被调用方提供的接口,得到调用结果;执行与调用结果相关联的操作,与调用结果相关联的操作包括将待处理的消息设置为需要延迟处理的消息。

【技术特征摘要】
1.一种服务的异步调用方法,包括:从预设消息队列中获取待处理的消息,其中,所述消息与调用方需要以异步调用方式调用的被调用方提供的接口相关联;响应于确定待处理的消息为需处理的消息,基于待处理的消息,以异步调用方式调用被调用方提供的接口,得到调用结果;执行与调用结果相关联的操作,与调用结果相关联的操作包括将待处理的消息设置为需要延迟处理的消息。2.根据权利要求1所述的方法,其中,在所述响应于确定待处理的消息为需处理的消息,基于待处理的消息,以异步调用方式调用被调用方提供的接口,得到调用结果之前,所述方法还包括:确定所述待处理的消息是否满足预设条件,所述预设条件包括:所述待处理的消息不与预设时长的判断时间段内从消息队列中获取的任意一个消息为同一个消息,所述判断时间段的结束时刻在确定消息队列中的消息是否满足处理条件的时刻之前;当所述待处理的消息满足预设条件时,将所述待处理的消息确定为需处理的消息。3.根据权利要求2所述的方法,其中,所述方法还包括:生成所述待处理的消息对应的键值对,所述键值对包括:表示消息的标识的键、表示消息的属性信息的键值;以及所述确定所述待处理的消息是否满足预设条件,包括:查询预设键值对列表中是否存在所述待处理的消息对应的键;若不存在,则确定所述待处理消息满足预设条件;将所述待处理的消息对应的键值对添加至所述预设键值对列表;其中,所述预设键值对列表中存储所述预设时长的判断时间段内从消息队列中获取的多个消息各自对应的键值对。4.根据权利要求2所述的方法,其中,在所述响应于确定待处理的消息为需处理的消息,基于待处理的消息,以异步调用方式调用被调用方提供的接口,得到调用结果之前,所述方法还包括:当确定所述待处理的消息为需处理的消息时,将所述待处理的消息以及所述待处理的消息对应的执行时间信息添加入预设有序集合中;以及所述响应于确定待处理的消息为需处理的消息,基于待处理的消息,以异步调用方式调用被调用方提供的接口,得到调用结果,包括:在所述执行时间信息所指示的时刻,以异步调用方式调用与所述待处理的消息所关联的所述被调用方提供的接口,得到调用结果。5.根据权利要求4所述的方法,其中,在所述执行与调用结果相关联的操作之前,所述方法还包括:确定所述调用结果是否为预设调用返回结果;以及所述执行与调用结果相关联的操作,包括:若确定所述调用结果为预设调用返回结果,则执行从所述预设有序集合中删除所述待处理的消息及所述待处理的消息对应的执行时间信息的操作。6.根据权利要求4所述的方法,其中,所述方法还包括:每隔预设时间间隔,对所述预设有序集合进行检查,以检查预设有序集合是否存在已过执行时间的需处理的消息;若存在,则以同步调用方式执行调用该需处理的消息对应的被调用方提供的接口的操作。7.根据权利要求1所述的方法,其中,预设消息队列为分布式发布订阅消息系统中的预设消息队列。8.一种服务的异步调用装置,包括:获取单元,被配置成从预设消息队列中获取待处理的消息,其中,所述消息与调用方需要以异步调用方式调用的被调用方提供的接口相关联;调用单元,被配置...

【专利技术属性】
技术研发人员:孙磊沈迦勒
申请(专利权)人:北京百度网讯科技有限公司
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1