最近,在进行项目的过程中,有一个付款场景。前端需要根据付款结果跳到不同的页面。我们的付款通知已退回异步通知,因此在发出付款请求后我们无法立即获得付款结果。目前,我们需要轮换交易的结果来确定付款是否成功。
有很多方法可以将付款结果实现到前端以实现后端通知。
经过考虑,最终决定实施它。Spring是一个异步请求,可用于实现长轮训练。该异步异步已实施。在春季,延迟结果将分别处理,并且不会占用容器(tomcat)的线程,因此它也可以增加程序的吞吐量。
前端请求查询交易方法(),后端将阻止请求。如果在3s之内,付款通知回调()过来,则先前的查询事务方法将立即返回付款结果,否则退货超时。
页面请求方法是,没有设置结果并返回超时的情况,没有延迟的#setResult#setResult。
页面请求方法之后,立即请求该方法获得正确的结果。
你可以解决的。
可以通过OR。注意拦截器方法的评论。如果您调用它,将不会执行某些方法。
配置:
https://gitee.pom/huan1993/spring-cloud-parent/tree/tree/master/springboot/spring-deferred-result-result
https://docs.spring.io/spring-framework/docs/current/referent/web.html#mvc-annc-annc-deferredresult
