背景
用户调用某一个微服务,然后微服务登记消息给消费程序处理,此时我们的微服务接口只能够返回调用微服务成功,但是具体业务逻辑有没有执行成功又是还未确定的,此时怎么操作呢?
思路
这种需要等消费程序处理完才知道结果的业务逻辑,我们可以约定好,调用微服务的时候传入一个唯一的流水号参数,然后消费程序在消费完后就以该流水号为key将处理结果放入redis中(没有reids的话,可以放入一个表中),设置过期时间五分钟,然后一个通用的“微服务调用接口结果查询接口”就根据该流水号查处理结果返回,逻辑就是简单的通过该流水号去redis中查结果返回,若没有值则表明是处理中。前端就默认循环执行10次结果查询,若10次都没有查询回来则表明处理超时!
这样子就可以解决这种异步解耦的问题啦,若是谁有更好的想法麻烦分享出来一起学习学习