CN109558254B - 异步回调方法、系统、装置及计算机可读存储介质 - Google Patents
异步回调方法、系统、装置及计算机可读存储介质 Download PDFInfo
- Publication number
- CN109558254B CN109558254B CN201811387431.2A CN201811387431A CN109558254B CN 109558254 B CN109558254 B CN 109558254B CN 201811387431 A CN201811387431 A CN 201811387431A CN 109558254 B CN109558254 B CN 109558254B
- Authority
- CN
- China
- Prior art keywords
- callback
- service
- client side
- event
- asynchronous
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/547—Remote procedure calls [RPC]; Web services
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Telephonic Communication Services (AREA)
Abstract
本公开提供了一种异步回调方法、系统、装置及计算机可读存储介质,涉及计算机技术领域。其中的异步回调方法包括:客户方异步调用服务方的业务方法,以便服务方执行业务逻辑;回调事件中心启动计数器,计算服务方调用客户方的回调方法以回传执行结果的时延;在时延不超过预设时长的情况下,客户方执行回调成功处理;在时延超过预设时长的情况下,客户方执行回调失败处理。本公开能够减少远程过程调用服务的服务器资源浪费和网络开销,提高了远程过程调用服务的灵活性和执行效率。
Description
技术领域
本公开涉及计算机技术领域,特别涉及一种异步回调方法、系统、装置及计算机可读存储介质。
背景技术
分布式集群是指将一个业务逻辑拆分成多个子业务逻辑,以服务的方式部署在不同的服务器上,服务之间通过RPC(Remote Procedure Call,远程过程调用)来访问。同时,在一个集群中,同一个业务会部署在多个服务器上,提供相同的服务,避免单点故障。
RPC是指通过网络从远程计算机程序上请求服务。在计算机软件开发中,常用的方法调用是同步调用。图1示出了同步调用的流程示意图。如图1所示,同步调用是一种阻塞式调用。在同步调用中,客户方调用服务方,需要等待服务方执行完毕返回结果才执行下一步操作。因此,同步调用是一种单向调用。
与同步调用不同的是异步调用。图2示出了异步调用的流程示意图。如图2所示,在异步调用中,客户方请求调用服务方后,无需等待服务方返回结果即可执行其它操作。当服务方收到某种信息或者发生某种事件时,通过主动回调客户方的方式将执行结果返回给服务方。客户方监听到回调事件后,对返回结果进行处理。可见回调是指一种双向调用模式,被调用方在接口被调用时也会调用对方接口。
发明内容
本公开解决的一个技术问题是,如何减少远程过程调用服务的服务器资源浪费和网络开销,提高远程过程调用服务的灵活性和执行效率。
根据本公开实施例的一个方面,提供了一种异步回调方法,包括:客户方异步调用服务方的业务方法,以便服务方执行业务逻辑;回调事件中心启动计数器,计算服务方调用客户方的回调方法以回传执行结果的时延;在时延不超过预设时长的情况下,客户方执行回调成功处理;在时延超过预设时长的情况下,客户方执行回调失败处理。
在一些实施例中,回调事件中心启动计数器,计算服务方调用客户方的回调方法以回传执行结果的时延,并计算服务方调用客户方的回调方法的次数;在时延不超过预设时长、且服务方调用客户方的回调方法的次数等于预设次数的情况下,客户方执行回调成功处理;在时延超过预设时长、或服务方调用客户方的回调方法的次数不等于预设次数的情况下,客户方执行回调失败处理。
在一些实施例中,还包括:回调事件中心将历史数据中客户方同步调用服务方的业务方法时,服务方回传执行结果的最大时延,确定为预设时长。
在一些实施例中,还包括:回调事件中心根据客户方异步调用服务方的业务方法的时所发送的调用请求,确定调用的期望回调次数;回调事件中心将期望回调次数作为预设次数。
在一些实施例中,还包括:回调注册中心新建回调事件,并生成相应的回调事件令牌;客户方异步调用服务方的业务方法时,发送携带回调事件令牌的调用请求;服务方调用客户方的回调方法时,返回携带回调事件令牌的执行结果;回调注册中心查询回调事件令牌匹配的回调事件;在查询结果不为空的情况下,回调事件中心将执行结果更新至回调数据列表,以便客户方读取回调数据列表并执行回调成功处理;在查询结果为空的情况下,回调事件中心通知客户方执行回调失败处理。
在一些实施例中,还包括:在查询结果不为空的情况下,回调事件中心更新计数器中服务方调用客户方的回调方法的次数;回调事件中心在次数等于预设次数时,结束回调等待线程并注销回调事件;在查询结果为空的情况下,回调事件中心在回调事件日志中记录回调失败。
在一些实施例中,回调事件令牌为通用唯一识别码UUID。
在一些实施例中,客户方通过远程过程调用的方式,异步调用服务方的业务方法;服务方通过远程过程调用的方式,调用客户方的回调方法以回传执行结果。
根据本公开实施例的另一个方面,提供了一种异步回调系统,包括:客户方,被配置为异步调用服务方的业务方法,以便服务方执行业务逻辑;回调事件中心,被配置为启动计数器,计算服务方调用客户方的回调方法以回传执行结果的时延;客户方还被配置为:在时延不超过预设时长的情况下,执行回调成功处理;在时延超过预设时长的情况下,执行回调失败处理。
在一些实施例中,回调事件中心被配置为:启动计数器,计算服务方调用客户方的回调方法以回传执行结果的时延,并计算服务方调用客户方的回调方法的次数;客户方还被配置为:在时延不超过预设时长、且服务方调用客户方的回调方法的次数等于预设次数的情况下,执行回调成功处理;在时延超过预设时长、或服务方调用客户方的回调方法的次数不等于预设次数的情况下,执行回调失败处理。
在一些实施例中,回调事件中心还被配置为:将历史数据中客户方同步调用服务方的业务方法时,服务方回传执行结果的最大时延,确定为预设时长。
在一些实施例中,回调事件中心还被配置为:根据客户方异步调用服务方的业务方法的时所发送的调用请求,确定调用的期望回调次数;将期望回调次数作为预设次数。
在一些实施例中,还包括回调注册中心以及服务方;回调注册中心被配置为新建回调事件,并生成相应的回调事件令牌;客户方还被配置为:异步调用服务方的业务方法时,发送携带回调事件令牌的调用请求;服务方被配置为:调用客户方的回调方法时,返回携带回调事件令牌的执行结果;回调注册中心还被配置为:查询回调事件令牌匹配的回调事件;回调事件中心还被配置为:在查询结果不为空的情况下,将执行结果更新至回调数据列表,以便客户方读取回调数据列表并执行回调成功处理;在查询结果为空的情况下,通知客户方执行回调失败处理。
在一些实施例中,回调事件中心还被配置为:在查询结果不为空的情况下,更新计数器中服务方调用客户方的回调方法的次数;在次数等于预设次数时,结束回调等待线程并注销回调事件;在查询结果为空的情况下,在回调事件日志中记录回调失败。
在一些实施例中,回调事件令牌为通用唯一识别码UUID。
在一些实施例中,客户方被配置为:通过远程过程调用的方式,异步调用服务方的业务方法;服务方被配置为:通过远程过程调用的方式,调用客户方的回调方法。
根据本公开实施例的又一个方面,提供了一种异步回调装置,包括:存储器;以及耦接至存储器的处理器,处理器被配置为基于存储在存储器中的指令,执行前述的异步回调方法。
根据本公开实施例的再一个方面,提供了一种计算机可读存储介质,其中,计算机可读存储介质存储有计算机指令,指令被处理器执行时实现前述的异步回调方法。
本公开能够减少远程过程调用服务的服务器资源浪费和网络开销,提高了远程过程调用服务的灵活性和执行效率。
通过以下参照附图对本公开的示例性实施例的详细描述,本公开的其它特征及其优点将会变得清楚。
附图说明
为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1示出了同步调用的流程示意图。
图2示出了异步调用的流程示意图。
图3示出了本公开一些实施例的异步回调方法的流程示意图。
图4示出了本公开另一些实施例的异步回调方法的流程示意图。
图5示出了本公开又一些实施例的异步回调方法的流程示意图。
图6示出了本公开一些应用例的实现异步回调方法的模块架构示意图。
图7示出了本公开一些应用例的异步回调方法的流程示意图。
图8示出了本公开一些实施例的异步回调系统的结构示意图。
图9示出了本公开另一些实施例的异步回调装置的结构示意图。
具体实施方式
下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本公开及其应用或使用的任何限制。基于本公开中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本公开保护的范围。
发明人研究发现,在分布式集群架构中,对某个服务的请求可能包含对多个RPC服务的调用。采用同步调用模式顺序执行,对于事件的消耗无法控制。任意一个RPC服务执行失败或者网络故障,都有可能导致请求的超时甚至无限期等待,造成了系统资源浪费。如果循环操作中依赖同步调用,更会造成大量的网络开销。如果应用程序继续执行的必备条件是调用服务需要返回结果,且无法在应用程序中直接将同步调用调整为异步调用,那么就需要对异步回调机制中的异步回调方法进行改进。本发明提出了一种异步回调方法,来解决以上问题。
首先结合图3描述本公开异步回调方法的一些实施例。
图3示出了本公开一些实施例的异步回调方法的流程示意图。如图3所示,本实施例包括步骤S302~步骤S310。
在步骤S302中,客户方异步调用服务方的业务方法,以便服务方执行业务逻辑。
在步骤S304中,回调事件中心启动计数器,计算服务方调用客户方的回调方法以回传执行结果的时延。
计数器的一个功能是对服务方调用客户方的回调方法的时延进行计时。计数器的预设时长可以由用户进行设置,在用户未进行设置的情况下,计数器的预设时长为默认时长。
在一些实施例中,回调事件中心可以将历史数据中客户方同步调用服务方的业务方法时,服务方回传执行结果的最大时延,确定为计数器的预设时长。
在步骤S306中,回调事件中心判断时延是否超过预设时长。
在时延不超过预设时长的情况下,执行步骤S308。
在步骤S308中,客户方执行回调成功处理。
在时延超过预设时长的情况下,执行步骤S310。
在步骤S310中,客户方执行回调失败处理。
为了解决集群架构下调用RPC服务时可能出现的等待时间过长以及服务资源浪费问题,上述实施例提出了一种适配同步服务的异步回调机制。同步应用程序等待远程任务时,远程任务采用异步回调方式返回答案。同步应用程序设置一个最大的等待预设时长,当超过预设时长时,返回执行回调失败的结果;当等待过程中监听到回调响应时,继续下一步操作。因此,上述实施例能够避免调用RPC服务时等待时间过长,减少服务器资源浪费和网络开销,提高了远程过程调用服务的灵活性和执行效率。
下面结合图4描述本公开异步回调方法的另一些实施例。
图4示出了本公开另一些实施例的异步回调方法的流程示意图。如图4所示,本实施例包括步骤S402~步骤S410。
在步骤S402中,客户方异步调用服务方的业务方法,以便服务方执行业务逻辑。
该步骤的具体实现方式可以参照步骤S302。
在步骤S404中,回调事件中心启动计数器,计算服务方调用客户方的回调方法以回传执行结果的时延,并计算服务方调用客户方的回调方法的次数。
计数器的另一个功能是对服务方调用客户方的回调方法的次数进行统计。计数器的预设次数可以由用户进行设置,在用户未进行设置的情况下,计数器的预设次数为默认次数。
在一些实施例中,回调事件中心可以根据客户方异步调用服务方的业务方法的时所发送的调用请求,确定调用的期望回调次数,并将期望回调次数作为计数器的预设次数。
在步骤S406中,回调事件中心判断时延是否超过预设时长,并判断服务方调用客户方的回调方法的次数是否等于预设次数。
在时延不超过预设时长、且服务方调用客户方的回调方法的次数等于预设次数的情况下,执行步骤S408。
在步骤S408中,客户方执行回调成功处理。
在时延超过预设时长、或服务方调用客户方的回调方法的次数不等于预设次数的情况下,执行步骤S410。
在步骤S410中,客户方执行回调失败处理。
上述实施例在设定预设时长的基础之上,进一步设定了预设次数,以实现对服务方调用客户方的回调方法的次数做精确统计。仅在服务方回调客户方的时延和次数均满足预设条件时,客户方执行回调成功处理,其它情况下客户方执行回调失败处理。因此,上述实施例能够进一步减少服务器资源浪费和网络开销,进一步提高了远程过程调用服务的灵活性和执行效率。
下面结合图5描述本公开异步回调方法的另一些实施例。
图5示出了本公开又一些实施例的异步回调方法的流程示意图。如图5所示,本实施例包括步骤S501~步骤S508。
在步骤S501中,回调注册中心新建回调事件,并生成相应的回调事件令牌。
例如,回调事件令牌可以为UUID(Universally Unique Identifier,用唯一识别码)。
在步骤S502中,客户方异步调用服务方的业务方法,以便服务方执行业务逻辑。其中,客户方通过远程过程调用的方式,异步调用服务方的业务方法。客户方异步调用服务方的业务方法时,发送携带回调事件令牌的调用请求。
在步骤S503中,回调事件中心启动计数器,计算服务方调用客户方的回调方法以回传执行结果的时延,并计算服务方调用客户方的回调方法的次数。
在步骤S504中,服务方调用客户方的回调方法时,返回携带回调事件令牌的执行结果。
其中,服务方通过远程过程调用的方式,调用客户方的回调方法以回传执行结果。
在步骤S505中,回调注册中心查询回调事件令牌匹配的回调事件,并判断查询结果是否为空。
其中,回调注册中心存有回调事件令牌与回调事件之间的映射关系。
在查询结果不为空的情况下,执行步骤S506~步骤S508。
在步骤S506中,回调事件中心将执行结果更新至回调数据列表,以便客户方读取回调数据列表并执行回调成功处理。
在步骤S507中,回调事件中心更新计数器中服务方调用客户方的回调方法的次数。
在步骤S508中,回调事件中心在该次数等于预设次数时,结束回调等待线程并注销回调事件。
在查询结果为空的情况下,执行步骤S509~步骤S510。
在步骤S509中,回调事件中心通知客户方执行回调失败处理。
在步骤S510中,回调事件中心在回调事件日志中记录回调失败。
上述实施例实现了回调事件的新建、注销,并实现了回调事件令牌的相关功能。通过上述实施例,能够对服务方调用客户方的回调方法的次数和时延进行更加精准的监控,从而实现减少服务器资源浪费和网络开销,并提高远程过程调用服务的灵活性和执行效率。
下面结合图6和图7描述本公开异步回调方法的一些应用例。
图6示出了本公开一些应用例的实现异步回调方法的模块架构示意图。图7示出了本公开一些应用例的异步回调方法的流程示意图。如图7所示,本应用例实现异步回调方法的模块架构主要包括三部分:客户方、服务方、回调SDK(Software Development Kit,软件开发工具包)。
其中,客户方作为PRC服务,提供同步业务方法供外部服务调用,并提供回调方法供服务方调用。
回调SDK包含回调事件中心及回调注册中心两个模块。回调事件中心包含:
计数器,记录回调事件期待调用次数以及等待回调时长;
回调事件令牌,唯一对应一个回调事件;
异步数据列表,用于记录回调数据;
异步读取器,可以异步读取回调数据列表;
已回调次数变量,用于记录回调事件已调用次数。
回调事件注册中心包含的功能包括回调事件的注册、回调事件执行、回调事件注销。
服务方作为PRC服务,提供一个或多个异步业务方法供客户方调用。业务方法执行完毕后,调用客户方回调方法进行返回数据推送。
本应用例的主要流程如下:
1、外部服务调用服务A(客户方)的同步业务方法。
2、服务A(客户方)业务方法执行:
2.1前置业务逻辑执行;
2.2新建一个回调事件,并获取回调事件令牌;
2.3将步骤2.2中返回的回调令牌置于请求上下文中;
2.4调用服务B(服务方)中的异步业务方法;
2.5回调事件计数器启动监听,开始计时等待;
2.6获取回调事件的回调数据列表;
a)回调数据列表不为空,表示未超时且计数器为期望回调次数,此时调用成功,进行执行成功处理;
b)回调数据列表为空,表示回调超时,进行执行失败处理;
2.7返回同步方法执行结果;
3、回调事件初始化:
3.1利用期望回答次数、超时时间初始化回调事件中的计数器;
3.2采用UUID初始化回调事件令牌;
3.3在回调注册中心注册回调事件;
4、服务B(服务方)执行异步调用:
4.1服务方业务逻辑执行,生成执行结果;
4.2调用服务A(业务方)的回调方法,回传执行结果;
5、回调事件执行:
5.1根据请求上下文中回调令牌在回调注册中心查找匹配的回调事件;
5.2回调事件不为空时;
5.2.1使用异步执行结果更新回调数据列表;
5.2.2回调事件计数器countDown;
5.2.3当回调事件计数器的期望执行次数=已执行次数时,结束回调等待线程,在回调注册中心注销回调事件,调用异步读取器读取回调数据列表;
5.3回调事件为空时,做回调失败处理(记录日志或者其他操作)。
本领域技术人员应理解,上述应用例中的启动计数器可以通过回调等待线程来实现。当监听到回调结果时可以关闭回调线程,并返回回调数据。
下面结合图8描述本公开一些实施例的异步回调系统。
图8示出了本公开一些实施例的异步回调系统的结构示意图。如图8所示,本实施例中的异步回调系统80包括:
客户方802,被配置为异步调用服务方的业务方法,以便服务方执行业务逻辑;
回调事件中心804,被配置为启动计数器,计算服务方调用客户方的回调方法以回传执行结果的时延;
客户方802还被配置为:在时延不超过预设时长的情况下,执行回调成功处理;在时延超过预设时长的情况下,执行回调失败处理。
为了解决集群架构下调用RPC服务时可能出现的等待时间过长以及服务资源浪费问题,上述实施例提出了一种适配同步服务的异步回调机制。同步应用程序等待远程任务时,远程任务采用异步回调方式返回答案。同步应用程序设置一个最大的等待预设时长,当超过预设时长时,返回执行回调失败的结果;当等待过程中监听到回调响应时,继续下一步操作。因此,上述实施例能够避免调用RPC服务时等待时间过长,减少服务器资源浪费和网络开销,提高了远程过程调用服务的灵活性和执行效率。
在一些实施例中,回调事件中心804被配置为:启动计数器,计算服务方调用客户方的回调方法以回传执行结果的时延,并计算服务方调用客户方的回调方法的次数;客户方802还被配置为:在时延不超过预设时长、且服务方调用客户方的回调方法的次数等于预设次数的情况下,执行回调成功处理;在时延超过预设时长、或服务方调用客户方的回调方法的次数不等于预设次数的情况下,执行回调失败处理。
上述实施例在设定预设时长的基础之上,进一步设定了预设次数,以实现对服务方调用客户方的回调方法的次数做精确统计。仅在服务方回调客户方的时延和次数均满足预设条件时,客户方执行回调成功处理,其它情况下客户方执行回调失败处理。因此,上述实施例能够进一步减少服务器资源浪费和网络开销,进一步提高了远程过程调用服务的灵活性和执行效率。
在一些实施例中,回调事件中心804还被配置为:将历史数据中客户方同步调用服务方的业务方法时,服务方回传执行结果的最大时延,确定为预设时长。
在一些实施例中,回调事件中心804还被配置为:根据客户方异步调用服务方的业务方法的时所发送的调用请求,确定调用的期望回调次数;将期望回调次数作为预设次数。
在一些实施例中,还包括回调注册中心806以及服务方808;回调注册中心806被配置为新建回调事件,并生成相应的回调事件令牌;客户方802还被配置为:异步调用服务方的业务方法时,发送携带回调事件令牌的调用请求;服务方808被配置为:调用客户方的回调方法时,返回携带回调事件令牌的执行结果;回调注册中心806还被配置为:查询回调事件令牌匹配的回调事件;回调事件中心806还被配置为:在查询结果不为空的情况下,将执行结果更新至回调数据列表,以便客户方读取回调数据列表并执行回调成功处理;在查询结果为空的情况下,通知客户方执行回调失败处理。
在一些实施例中,回调事件中心804还被配置为:在查询结果不为空的情况下,更新计数器中服务方调用客户方的回调方法的次数;在次数等于预设次数时,结束回调等待线程并注销回调事件;在查询结果为空的情况下,在回调事件日志中记录回调失败。
在一些实施例中,回调事件令牌为通用唯一识别码UUID。
在一些实施例中,客户方被配置为:通过远程过程调用的方式,异步调用服务方的业务方法;服务方被配置为:通过远程过程调用的方式,调用客户方的回调方法。
上述实施例实现了回调事件的新建、注销,并实现了回调事件令牌的相关功能。通过上述实施例,能够对服务方调用客户方的回调方法的次数和时延进行更加精准的监控,从而实现减少服务器资源浪费和网络开销,并提高远程过程调用服务的灵活性和执行效率。
图9示出了本公开另一些实施例的异步回调装置的结构示意图。如图9所示,该实施例的异步回调装置90包括:存储器910以及耦接至该存储器910的处理器920,处理器920被配置为基于存储在存储器910中的指令,执行前述任意一些实施例中的异步回调方法。
其中,存储器910例如可以包括系统存储器、固定非易失性存储介质等。系统存储器例如存储有操作系统、应用程序、引导装载程序(Boot Loader)以及其他程序等。
异步回调装置90还可以包括输入输出接口930、网络接口940、存储接口950等。这些接口930、940、950以及存储器910和处理器920之间例如可以通过总线960连接。其中,输入输出接口930为显示器、鼠标、键盘、触摸屏等输入输出设备提供连接接口。网络接口940为各种联网设备提供连接接口。存储接口950为SD卡、U盘等外置存储设备提供连接接口。
本公开还包括一种计算机可读存储介质,其上存储有计算机指令,该指令被处理器执行时实现前述任意一些实施例中的异步回调方法。
本领域内的技术人员应明白,本公开的实施例可提供为方法、系统、或计算机程序产品。因此,本公开可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本公开可采用在一个或多个其中包含有计算机可用程序代码的计算机可用非瞬时性存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本公开是参照根据本公开实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述仅为本公开的较佳实施例,并不用以限制本公开,凡在本公开的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本公开的保护范围之内。
Claims (16)
1.一种异步回调方法,包括:
客户方异步调用服务方的业务方法,以便服务方执行业务逻辑;
回调事件中心启动计数器,计算从客户方异步调用服务方的业务方法到服务方调用客户方的回调方法以回传执行结果的时延,并计算服务方调用客户方的回调方法的次数;
在所述时延不超过预设时长、且服务方调用客户方的回调方法的次数等于预设次数的情况下,客户方执行回调成功处理;
在所述时延超过预设时长、或服务方调用客户方的回调方法的次数不等于预设次数的情况下,客户方执行回调失败处理。
2.如权利要求1所述的异步回调方法,还包括:
回调事件中心将历史数据中客户方同步调用服务方的业务方法时,服务方回传执行结果的最大时延,确定为所述预设时长。
3.如权利要求1所述的异步回调方法,还包括:
回调事件中心根据客户方异步调用服务方的业务方法的时所发送的调用请求,确定所述调用的期望回调次数;
回调事件中心将所述期望回调次数作为所述预设次数。
4.如权利要求1所述的异步回调方法,还包括:
回调注册中心新建回调事件,并生成相应的回调事件令牌;
客户方异步调用服务方的业务方法时,发送携带所述回调事件令牌的调用请求;
服务方调用客户方的回调方法时,返回携带所述回调事件令牌的执行结果;
回调注册中心查询所述回调事件令牌匹配的回调事件;
在查询结果不为空的情况下,回调事件中心将所述执行结果更新至回调数据列表,以便客户方读取回调数据列表并执行回调成功处理;
在查询结果为空的情况下,回调事件中心通知客户方执行回调失败处理。
5.如权利要求4所述的异步回调方法,还包括:
在查询结果不为空的情况下,回调事件中心更新计数器中服务方调用客户方的回调方法的次数;回调事件中心在所述次数等于预设次数时,结束回调等待线程并注销回调事件;
在查询结果为空的情况下,回调事件中心在回调事件日志中记录回调失败。
6.如权利要求4所述的异步回调方法,其中,所述回调事件令牌为通用唯一识别码UUID。
7.如权利要求4所述的异步回调方法,其中,
客户方通过远程过程调用的方式,异步调用服务方的业务方法;
服务方通过远程过程调用的方式,调用客户方的回调方法以回传执行结果。
8.一种异步回调系统,包括:
客户方,被配置为异步调用服务方的业务方法,以便服务方执行业务逻辑;
回调事件中心,被配置为启动计数器,计算从客户方异步调用服务方的业务方法到服务方调用客户方的回调方法以回传执行结果的时延,并计算服务方调用客户方的回调方法的次数;
客户方还被配置为:在所述时延不超过预设时长、且服务方调用客户方的回调方法的次数等于预设次数的情况下,执行回调成功处理;在所述时延超过预设时长、或服务方调用客户方的回调方法的次数不等于预设次数的情况下,执行回调失败处理。
9.如权利要求8所述的异步回调系统,其中,回调事件中心还被配置为:将历史数据中客户方同步调用服务方的业务方法时,服务方回传执行结果的最大时延,确定为所述预设时长。
10.如权利要求8所述的异步回调系统,其中,回调事件中心还被配置为:
根据客户方异步调用服务方的业务方法的时所发送的调用请求,确定所述调用的期望回调次数;将所述期望回调次数作为所述预设次数。
11.如权利要求8所述的异步回调系统,还包括回调注册中心以及服务方;
回调注册中心被配置为新建回调事件,并生成相应的回调事件令牌;
客户方还被配置为:异步调用服务方的业务方法时,发送携带所述回调事件令牌的调用请求;
服务方被配置为:调用客户方的回调方法时,返回携带所述回调事件令牌的执行结果;
回调注册中心还被配置为:查询所述回调事件令牌匹配的回调事件;
回调事件中心还被配置为:在查询结果不为空的情况下,将所述执行结果更新至回调数据列表,以便客户方读取回调数据列表并执行回调成功处理;在查询结果为空的情况下,通知客户方执行回调失败处理。
12.如权利要求11所述的异步回调系统,其中,回调事件中心还被配置为:
在查询结果不为空的情况下,更新计数器中服务方调用客户方的回调方法的次数;在所述次数等于预设次数时,结束回调等待线程并注销回调事件;在查询结果为空的情况下,在回调事件日志中记录回调失败。
13.如权利要求11所述的异步回调系统,其中,所述回调事件令牌为通用唯一识别码UUID。
14.如权利要求11所述的异步回调系统,其中,
客户方被配置为:通过远程过程调用的方式,异步调用服务方的业务方法;
服务方被配置为:通过远程过程调用的方式,调用客户方的回调方法。
15.一种异步回调装置,包括:
存储器;以及
耦接至所述存储器的处理器,所述处理器被配置为基于存储在所述存储器中的指令,执行如权利要求1至7中任一项所述的异步回调方法。
16.一种计算机可读存储介质,其中,所述计算机可读存储介质存储有计算机指令,所述指令被处理器执行时实现如权利要求1至7中任一项所述的异步回调方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811387431.2A CN109558254B (zh) | 2018-11-21 | 2018-11-21 | 异步回调方法、系统、装置及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811387431.2A CN109558254B (zh) | 2018-11-21 | 2018-11-21 | 异步回调方法、系统、装置及计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109558254A CN109558254A (zh) | 2019-04-02 |
CN109558254B true CN109558254B (zh) | 2021-04-30 |
Family
ID=65866893
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811387431.2A Active CN109558254B (zh) | 2018-11-21 | 2018-11-21 | 异步回调方法、系统、装置及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109558254B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112565286A (zh) * | 2020-12-17 | 2021-03-26 | 金蝶软件(中国)有限公司 | 一种基于rpc访问的任务响应方法、装置、设备和存储介质 |
CN114721845A (zh) * | 2022-04-14 | 2022-07-08 | 广州有信科技有限公司 | 一种多租户RestfulAPI接口管理方法及装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102567111A (zh) * | 2011-12-23 | 2012-07-11 | 深圳市融创天下科技股份有限公司 | 一种异步过程调用的方法、系统和终端设备 |
CN107368359A (zh) * | 2017-05-31 | 2017-11-21 | 杭州大搜车汽车服务有限公司 | 一种异步任务执行方法及其存储介质、装置 |
CN108334545A (zh) * | 2017-12-27 | 2018-07-27 | 微梦创科网络科技(中国)有限公司 | 一种实现异步服务的方法及装置 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105930191B (zh) * | 2016-04-28 | 2019-01-04 | 网宿科技股份有限公司 | 系统服务的重载方法及装置 |
CN106293971A (zh) * | 2016-08-15 | 2017-01-04 | 张家林 | 一种分布式任务调度的方法和装置 |
-
2018
- 2018-11-21 CN CN201811387431.2A patent/CN109558254B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102567111A (zh) * | 2011-12-23 | 2012-07-11 | 深圳市融创天下科技股份有限公司 | 一种异步过程调用的方法、系统和终端设备 |
CN107368359A (zh) * | 2017-05-31 | 2017-11-21 | 杭州大搜车汽车服务有限公司 | 一种异步任务执行方法及其存储介质、装置 |
CN108334545A (zh) * | 2017-12-27 | 2018-07-27 | 微梦创科网络科技(中国)有限公司 | 一种实现异步服务的方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN109558254A (zh) | 2019-04-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9684502B2 (en) | Apparatus, systems, and methods for distributed application orchestration and deployment | |
CA3000422C (en) | Workflow service using state transfer | |
CN107729139B (zh) | 一种并发获取资源的方法和装置 | |
US9300759B1 (en) | API calls with dependencies | |
WO2016183553A1 (en) | Query dispatch and execution architecture | |
US9766927B1 (en) | Data flow management in processing workflows | |
US9231995B2 (en) | System and method for providing asynchrony in web services | |
US11503109B2 (en) | Processing an operation with a plurality of processing steps | |
WO2017063521A1 (zh) | 协程监控方法及装置 | |
CN108733496B (zh) | 事件处理方法和装置 | |
US11848872B2 (en) | Providing on-demand production of graph-based relationships in a cloud computing environment | |
US8881182B1 (en) | Deferred API calls | |
US20140129611A1 (en) | System and Method for Accessing Mainframe System Automation from a Process Automation Application | |
CN109558254B (zh) | 异步回调方法、系统、装置及计算机可读存储介质 | |
CN111294377B (zh) | 一种依赖关系的网络请求发送方法、终端装置及存储介质 | |
CN107463390B (zh) | 一种软件升级方法及升级服务器 | |
CN107621975B (zh) | 基于java timer高可用性的定时器逻辑实现方法 | |
CN112783613B (zh) | 一种单元调度的方法和装置 | |
US9304841B2 (en) | Dispatcher framework to provide inter-application communication | |
JP6957396B2 (ja) | 管理装置、サーバ装置、ログ管理方法、管理プログラムおよびサーバプログラム | |
CN112099973A (zh) | 服务调用方法和装置 | |
EP4404059A1 (en) | Unified resource management architecture for workload schedulers | |
CN106886449B (zh) | 系统运行的监控方法及装置 | |
CN115373894A (zh) | 数据恢复方法、装置、电子设备和计算机可读介质 | |
CN113986477A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |