activeMQ消费者处理完消息后,如何实现页面转跳

御风林海 发布于 2016/01/13 17:28
阅读 1K+
收藏 1

MySQL连接为什么挂死了?别踩坑!>>>

@z_jordon 你好,想跟你请教个问题:

我在controller层把请求数据压入队列,然后在消费者类把请求拿出来,再去发起请求,以此控制并发问题。问题来了,消息经过队列,被消费者类拿出来后,发起请求后,并没有转跳到指定页面,如何实现这个功能,项目架构spring+activeMQ4


 activeMQ消费者处理完消息后,如何通知发送者,实现页面转跳

加载中
0
maradona
maradona
页面轮询处理状态,或许通过websocket之类的
1
清靜無虞
清靜無虞

说一下我的理解,按照你的描述你好像是要实现这样的功能:

请求进入controller的某个方法后,把请求数据放入mq,消费者接收这个消息并处理完后,需要controller中的原方法根据mq处理结果实现页面跳转。

MQ不是这样用的,你的需求只不过是想把业务处理给异步化而已。要么你还是这样用,但是在controller中把数据提交给MQ后,controller就跳页面,也就是说把数据放进mq后,就认为成功了,http响应成功,至于mq消息的处理,那是另外一个过程,不过一般都不会这样用。

一般为了提高性能,实现读写分离后,读尽量加缓存,写只要能异步化的尽量异步化,不能异步化的就还是同步处理。看你在用spring,spring组织本身就有一个叫reactor(https://github.com/reactor/reactor-spring)的东西,支持异步化,另外像google的guava中也有eventbus能实现异步化,java本身也有Callable、Future机制等。你在controller中就使用activeMQ这种跨进程跨网络的组件肯定是不合适的,并且你还想在同一个http请求中得到mq的执行结果,也不现实。

0
嘻哈开发者
嘻哈开发者
如果要等待结果,那还不如直接同步处理你的任务,处理完就跳转。
0
御风林海
御风林海
@清靜無虞 请教一下,MQ正确使用方法,能说说吗?
返回顶部
顶部