异步转同步方法、装置、设备及存储介质制造方法及图纸

技术编号:39318947 阅读:9 留言:0更新日期:2023-11-12 16:00
本发明专利技术涉及数据处理的领域,并公开了一种异步转同步方法、装置、设备及存储介质,该方法包括:发送调用受理接口请求报文,并创建空的结果对象存入实例全局的Map中;在调用受理接口成功后,通过调用wait方法使处理线程进入等待回调结果状态;路由并获取回调请求报文,并将回调请求报文的有效信息存储至实例全局的Map中对应的结果对象;通过调用结果对象对应的notify方法唤醒处理线程,并返回结果对象中的处理结果。相比于现有技术中采用定时轮询的方式,本发明专利技术使用Java内置锁的等待/通知机制,不用额外增加系统开销,还有效缩短响应时间,提高了系统吞吐量。提高了系统吞吐量。提高了系统吞吐量。

【技术实现步骤摘要】
异步转同步方法、装置、设备及存储介质


[0001]本专利技术涉及数据处理的领域,尤其涉及一种异步转同步方法、装置、设备及存储介质。

技术介绍

[0002]异步转同步指的是,上游系统发出请求后需同步获取处理结果,而下游系统是异步处理的(接收请求后只返回受理结果,而实际的处理结果则通过回调以及提供查询接口方式异步通知),因此处于中间的系统就需要将异步结果同步返回给上游系统。
[0003]目前,异步转同步方案多采用定时轮询的方式,即中间系统发出请求后不停地查询处理结果,在查询结果未知时,让当前线程睡眠一段时间。例如,上游终端(如ATM机具等)在发出交易请求并同步等待应答结果的情况下,而下游的外部机构又是通过异步方式处理业务,则存在处理时间较长且不稳定的现象。客户在终端操作后需同步等待交易应答结果,此时中间系统查询结果的频率直接影响了其使用体验。上述方案存在比较明显的问题,主要表现在:当线程处于休眠状态时,下游系统的处理结果只能在休眠结束后才能获取,如果休眠时间太久,就不能及时响应,随之吞吐量下降。这导致的结果是,响应及时与否完全依赖于查询频率的高低,难以保证系统得到及时有效的响应,若要提高效率,又会增加系统的开销,给下游查询服务增加压力。
[0004]因此,亟需一种异步转同步方法,能够有效解决现有技术中响应及时性和系统开销控制之间的矛盾难以调和的技术问题。

技术实现思路

[0005]本专利技术的主要目的在于提供了一种异步转同步方法、装置、设备及存储介质,旨在解决现有技术中响应及时性和系统开销控制之间的矛盾难以调和的技术问题。
[0006]为实现上述目的,本专利技术提供了一种异步转同步方法,所述方法包括以下步骤:
[0007]发送调用受理接口请求报文,并创建空的结果对象存入实例全局的Map中;
[0008]在调用受理接口成功后,通过调用wait方法使处理线程进入等待回调结果状态;
[0009]路由并获取回调请求报文,并将所述回调请求报文的有效信息存储至所述实例全局的Map中对应的所述结果对象;
[0010]通过调用所述结果对象对应的notify方法唤醒所述处理线程,并返回所述结果对象中的处理结果。
[0011]可选地,所述在调用受理接口成功后,通过调用wait方法使处理线程进入等待回调结果状态的步骤之后,还包括:
[0012]在等待时间大于预设时间阈值时,将所述实例全局的Map中对应的所述结果对象删除;
[0013]调用查询接口,通过轮询的方式查询处理结果。
[0014]可选地,所述在调用受理接口成功后,通过调用wait方法使处理线程进入等待回
调结果状态的步骤,包括:
[0015]在调用受理接口成功后,通过使用synchronized关键字获取所述结果对象的结果对象锁;
[0016]通过调用wait方法释放所述结果对象锁使处理线程进入等待回调结果状态。
[0017]可选地,所述发送调用受理接口请求报文,并创建空的结果对象存入实例全局的Map中的步骤,包括:
[0018]发送调用受理接口请求报文,并创建空的结果对象;
[0019]采用ConcurrentHashMap将调用流水号和所述结果对象存入实例全局的Map中,所述调用流水号为所述结果对象的唯一标识。
[0020]可选地,所述路由并获取回调请求报文,并将所述回调请求报文的有效信息存储至所述实例全局的Map中对应的所述结果对象的步骤,包括:
[0021]路由并获取回调请求报文,并根据所述调用流水号从所述实例全局的Map中获取对应的所述结果对象;
[0022]将所述回调请求报文的有效信息填充至所述结果对象中,获得新的结果对象。
[0023]可选地,所述路由并获取回调请求报文,并将所述回调请求报文的有效信息存储至所述实例全局的Map中对应的所述结果对象的步骤之后,还包括:
[0024]判断所述实例全局的Map中对应的所述结果对象是否为空;
[0025]若所述结果对象为空,则将所述实例全局的Map中对应的所述结果对象删除;
[0026]调用查询接口,通过轮询的方式查询处理结果。
[0027]可选地,所述通过调用所述结果对象的notify方法唤醒所述处理线程,并返回所述结果对象中的处理结果的步骤,包括:
[0028]通过调用所述结果对象对应的notify方法唤醒所述处理线程;
[0029]将所述结果对象从所述实例全局的Map中取出并移除,并返回所述结果对象中的处理结果。
[0030]此外,为实现上述目的,本专利技术还提出一种异步转同步装置,所述装置包括:
[0031]报文发送模块,用于发送调用受理接口请求报文,并创建空的结果对象存入实例全局的Map中;
[0032]等待结果模块,用于在调用受理接口成功后,通过调用wait方法使处理线程进入等待回调结果状态;
[0033]信息存储模块,用于路由并获取回调请求报文,并将所述回调请求报文的有效信息存储至所述实例全局的Map中对应的所述结果对象;
[0034]线程唤醒模块,用于通过调用所述结果对象对应的notify方法唤醒所述处理线程,并返回所述结果对象中的处理结果。
[0035]此外,为实现上述目的,本专利技术还提出一种异步转同步设备,所述设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的异步转同步程序,所述异步转同步程序配置为实现如上文所述的异步转同步方法的步骤。
[0036]此外,为实现上述目的,本专利技术还提出一种存储介质,所述存储介质上存储有异步转同步程序,所述异步转同步程序被处理器执行时实现如上文所述的异步转同步方法的步骤。
[0037]本专利技术通过发送调用受理接口请求报文,并创建空的结果对象存入实例全局的Map中;在调用受理接口成功后,通过调用wait方法使处理线程进入等待回调结果状态;路由并获取回调请求报文,并将所述回调请求报文的有效信息存储至所述实例全局的Map中对应的所述结果对象;通过调用所述结果对象对应的notify方法唤醒所述处理线程,并返回所述结果对象中的处理结果。由于本专利技术是在调用受理接口成功后,通过调用wait方法使处理线程进入等待回调结果状态,通过调用结果对象对应的notify方法唤醒处理线程,并返回结果对象中的处理结果,相比于现有技术采用定时轮询的方式,本专利技术使用Java内置锁的等待/通知机制,不用额外增加系统开销,还有效缩短响应时间,提高了系统吞吐量。
附图说明
[0038]图1是本专利技术实施例方案涉及的硬件运行环境的异步转同步设备的结构示意图;
[0039]图2为本专利技术异步转同步方法第一实施例的流程示意图;
[0040]图3为本专利技术异步转同步方法第二实施例的流程示意图;
[0041]图4为本专利技术异步转同步方法第三实施例的流程示意图;
[0042]图5为本专利技术异步转同步方法总体方案示意图;
[004本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种异步转同步方法,其特征在于,所述异步转同步方法包括以下步骤:发送调用受理接口请求报文,并创建空的结果对象存入实例全局的Map中;在调用受理接口成功后,通过调用wait方法使处理线程进入等待回调结果状态;路由并获取回调请求报文,并将所述回调请求报文的有效信息存储至所述实例全局的Map中对应的所述结果对象;通过调用所述结果对象对应的notify方法唤醒所述处理线程,并返回所述结果对象中的处理结果。2.如权利要求1所述的异步转同步方法,其特征在于,所述在调用受理接口成功后,通过调用wait方法使处理线程进入等待回调结果状态的步骤之后,还包括:在等待时间大于预设时间阈值时,将所述实例全局的Map中对应的所述结果对象删除;调用查询接口,通过轮询的方式查询处理结果。3.如权利要求2所述的异步转同步方法,其特征在于,所述在调用受理接口成功后,通过调用wait方法使处理线程进入等待回调结果状态的步骤,包括:在调用受理接口成功后,通过使用synchronized关键字获取所述结果对象的结果对象锁;通过调用wait方法释放所述结果对象锁使处理线程进入等待回调结果状态。4.如权利要求1所述的异步转同步方法,其特征在于,所述发送调用受理接口请求报文,并创建空的结果对象存入实例全局的Map中的步骤,包括:发送调用受理接口请求报文,并创建空的结果对象;采用ConcurrentHashMap将调用流水号和所述结果对象存入实例全局的Map中,所述调用流水号为所述结果对象的唯一标识。5.如权利要求4所述的异步转同步方法,其特征在于,所述路由并获取回调请求报文,并将所述回调请求报文的有效信息存储至所述实例全局的Map中对应的所述结果对象的步骤,包括:路由并获取回调请求报文,并根据所述调用流水号从所述实例全局的Map中获取对应的所述结果对象;将所述回调请求报文的有效信息...

【专利技术属性】
技术研发人员:唐圆倪文才
申请(专利权)人:招商银行股份有限公司
类型:发明
国别省市:

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

1