[发明专利]一种异步请求伪装同步请求方法有效
申请号: | 202010615668.2 | 申请日: | 2020-06-27 |
公开(公告)号: | CN111752720B | 公开(公告)日: | 2023-07-07 |
发明(设计)人: | 吴修国;李耀;彭磊;杨志文 | 申请(专利权)人: | 武汉众邦银行股份有限公司 |
主分类号: | G06F9/52 | 分类号: | G06F9/52;G06F9/54 |
代理公司: | 成都正煜知识产权代理事务所(普通合伙) 51312 | 代理人: | 李龙 |
地址: | 432200 湖北省武汉市黄陂区盘龙城经济开发区汉*** | 国省代码: | 湖北;42 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 异步 请求 伪装 同步 方法 | ||
本发明涉及异步请求调用领域,提供了一种异步请求伪装同步请求方法。主旨在于使后端还是异步请求,但是伪装成同步请求给前端,前端保持了业务的连贯性。主要方案包括,前端页面请求后端接口;自定义异步执行器类,在此类自定义异步注解@Async;定义一个异步处理结果的类,此类中支持泛型T,泛型T来接收返回结果类;在异步处理结果类中定义一个isDone方法,通过isDone方法,判断异步方法是否执行完成;新建调用实例,在实例中通过判断isDone方法是否执行完成,来获对应的取返回处理结果;前端获取处理结果,如果是正常结果,则按需求展示,如果结果为不正常,则请求一个单独的查询结果请求方法,返回执行结果,同时页面出现友好提示,提示业务耐心等待。
技术领域
本发明涉及异步请求调用领域,提供了一种异步请求伪装同步请求方法。
背景技术
在越来越追求高效,高速相应的同时,也有一些应用去拥抱AI或流程化机器人,这些智能化的东西更多是计算、模型训练以及拟人操作,这就意味着他背后会有大量的运算,也就意味着耗时长,这样他们提供的一些api接口就是异步调用的,但是很多业务场景上又要求业务连贯性,需要同步等待结果,基于这种场景就产生了一种异步请求伪装成同步请求处理的方法;
发明内容
本发明涉及异步请求调用领域,提供了一种异步请求伪装同步请求方法,其主旨在于解决业务上流程自上而下必须保持连贯性,但是后端服务为异步调用方式,此情况需要等待异步返回结果,才能保证业务上的连贯性的问题,解决此问题的方法为:后端还是异步请求,但是伪装成同步请求给前端,前端保持了业务的连贯性,同时满足后端必须是异步请求。
一种异步请求伪装同步请求方法,包括如下步骤:
S1、前端页面请求后端接口;
S2、自定义异步执行器类,在此类自定义异步注解@Async,在对应业务处理类上使用@Async注解即可达到单独线程执行即异步请求的效果;
S3、定义一个异步处理结果的类,此类中支持泛型T,泛型T来接收返回结果类;
S4、在异步处理结果类中定义一个isDone方法,通过isDone方法,判断异步方法是否执行完成;
S5、新建调用实例,在实例中通过判断isDone方法是否执行完成,来获对应的取返回处理结果;
S6、前端获取处理结果,如果是正常结果,则按需求展示,如果结果为不正常,则请求一个单独的查询结果请求方法,此方法为补偿机制,防止未异步执行完成,就返回执行结果,同时页面出现友好提示,提示业务耐心等待;
S7、设置前后端保持长连接,避免前后端请求超时中断。
上述技术方案中:所述步骤S1包括以下步骤:
步骤1:新建API类,在API类中定义后端远程接口URL;
步骤2:通过远程RPC方式,调用远程后端的接口;
上述技术方案中:所述步骤S2包括以下步骤:
步骤1:新建类,得到自定义异步执行器E类;
步骤2:在E类中申明一个Async注解,该注解利用项目启动时,自动注入到sping容器中,容器初始化的时候利用spring的AOP原理在被注解的方法上增加一个环绕行切面,生成一个动态代理E类,以达到单独起一个线程,单独执行;
步骤3:新建业务逻辑处理类A,并在业务逻辑类A的B方法上使用@Async来注解,这样B方法在执行时会以一个单独线程来执行,以达到异步处理的效果,B方法为要求异步调用的第三方API接口;
上述技术方案中:所述步骤S3包括以下步骤:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于武汉众邦银行股份有限公司,未经武汉众邦银行股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010615668.2/2.html,转载请声明来源钻瓜专利网。