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.一种服务的异步调用方法,包括:从预设消息队列中获取待处理的消息,其中,所述消息与调用方需要以异步调用方式调用的被调用方提供的接口相关联;响应于确定待处理的消息为需处理的消息,基于待处理的消息,以异步调用方式调用被调用方提供的接口,得到调用结果;执行与调用结果相关联的操作,与调用结果相关联的操作包括将待处理的消息设置为需要延迟处理的消息。2.根据权利要求1所述的方法,其中,在所述响应于确定待处理的消息为需处理的消息,基于待处理的消息,以异步调用方式调用被调用方提供的接口,得到调用结果之前,所述方法还包括:确定所述待处理的消息是否满足预设条件,所述预设条件包括:所述待处理的消息不与预设时长的判断时间段内从消息队列中获取的任意一个消息为同一个消息,所述判断时间段的结束时刻在确定消息队列中的消息是否满足处理条件的时刻之前;当所述待处理的消息满足预设条件时,将所述待处理的消息确定为需处理的消息。3.根据权利要求2所述的方法,其中,所述方法还包括:生成所述待处理的消息对应的键值对,所述键值对包括:表示消息的标识的键、表示消息的属性信息的键值;以及所述确定所述待处理的消息是否满足预设条件,包括:查询预设键值对列表中是否存在所述待处理的消息对应的键;若不存在,则确定所述待处理消息满足预设条件;将所述待处理的消息对应的键值对添加至所述预设键值对列表;其中,所述预设键值对列表中存储所述预设时长的判断时间段内从消息队列中获取的多个消息各自对应的键值对。4.根据权利要求2所述的方法,其中,在所述响应于确定待处理的消息为需处理的消息,基于待处理的消息,以异步调用方式调用被调用方提供的接口,得到调用结果之前,所述方法还包括:当确定所述待处理的消息为需处理的消息时,将所述待处理的消息以及所述待处理的消息对应的执行时间信息添加入预设有序集合中;以及所述响应于确定待处理的消息为需处理的消息,基于待处理的消息,以异步调用方式调用被调用方提供的接口,得到调用结果,包括:在所述执行时间信息所指示的时刻,以异步调用方式调用与所述待处理的消息所关联的所述被调用方提供的接口,得到调用结果。5.根据权利要求4所述的方法,其中,在所述执行与调用结果相关联的操作之前,所述方法还包括:确定所述调用结果是否为预设调用返回结果;以及所述执行与调用结果相关联的操作,包括:若确定所述调用结果为预设调用返回结果,则执行从所述预设有序集合中删除所述待处理的消息及所述待处理的消息对应的执行时间信息的操作。6.根据权利要求4所述的方法,其中,所述方法还包括:每隔预设时间间隔,对所述预设有序集合进行检查,以检查预设有序集合是否存在已过执行时间的需处理的消息;若存在,则以同步调用方式执行调用该需处理的消息对应的被调用方提供的接口的操作。7.根据权利要求1所述的方法,其中,预设消息队列为分布式发布订阅消息系统中的预设消息队列。8.一种服务的异步调用装置,包括:获取单元,被配置成从预设消息队列中获取待处理的消息,其中,所述消息与调用方需要以异步调用方式调用的被调用方提供的接口相关联;调用单元,被配置...
【专利技术属性】
技术研发人员:孙磊,沈迦勒,
申请(专利权)人:北京百度网讯科技有限公司,
类型:发明
国别省市:北京,11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。