我不懂你的那个RabbitMQ,但是线程中有处理生产消费问题的解决方法,你可以看看,只需要一个线程等待方法就可以解决。
还有,还有发布订阅方法,也可以解决
您的意思是,把处理结果放到另外一个队列里面。简称结果队列吧
相当于,把订单提交到队列后,代码继续异步去查询 结果队列。
这样理解没错吧?
@啊长: 不是,生产消费问题,是生产者消费者都操作一个队列,如果没有限制队列长度,生产者只管往里面塞数据,而消费者在每次取数据的时候就判断有没有数据存在,如果没有,就持续判断。
当然,更高级点,就是消费者如果发现没有数据的话,就等待。当生产者塞入数据的时候,就发出信息,表示已经有数据了, 那么等待的消费者就可以取数据了,这个就对应了你的问题了
通常这种设计就是不用通知生产者的。
我把该做的事情完成了,给了下一处理流程,我就不管了,不会等待返回结果的。
楼上正解
嗯 我现在才知道 这种思路本身就是错误的。
这个场景,我放弃使用队列!
其实也没有错啦。
在放进队列的时候
你可以告诉用户等待处理。
也可以阻止用户操作,然后执行查询最终结果并返回
可以参考支付跟银行支付的交互过程
主要还是看场景是不是合适
--途牛旅游网南京本部招java、前端、架构、研发经理感兴趣欢迎联系我或者邮件 wuhuanhong@tuniu.com。