这里会显示出您选择的修订版和当前版本之间的差别。
分享:技术:jms:spring整合activemq [2015/09/24 17:24] gxx 创建 |
分享:技术:jms:spring整合activemq [2015/09/25 13:09] (当前版本) gxx |
||
---|---|---|---|
行 350: | 行 350: | ||
2015-09-24 16:32:17,922 [jmsContainer_2-1] INFO [com.gxx.record.jms.ConsumerMessageListener:40] - 消息监听器接收内容:hello baby~~~ | 2015-09-24 16:32:17,922 [jmsContainer_2-1] INFO [com.gxx.record.jms.ConsumerMessageListener:40] - 消息监听器接收内容:hello baby~~~ | ||
2015-09-24 16:32:17,922 [jmsContainer-1] INFO [com.gxx.record.jms.ConsumerMessageListener:40] - 消息监听器接收内容:hello baby~~~ | 2015-09-24 16:32:17,922 [jmsContainer-1] INFO [com.gxx.record.jms.ConsumerMessageListener:40] - 消息监听器接收内容:hello baby~~~ | ||
+ | </code> | ||
+ | ===== 顺序读取消息 ===== | ||
+ | 修改代码,使得处理一条消息需要睡眠3秒钟,观察日志,显示每条消息依次被处理,不会一时间涌入,造成系统压力。 | ||
+ | <code java ConsumerMessageListener.java> | ||
+ | package com.gxx.record.jms; | ||
+ | |||
+ | import javax.jms.JMSException; | ||
+ | import javax.jms.Message; | ||
+ | import javax.jms.MessageListener; | ||
+ | import javax.jms.TextMessage; | ||
+ | |||
+ | import org.apache.log4j.Logger; | ||
+ | |||
+ | /** | ||
+ | * | ||
+ | * <dl> | ||
+ | * <dt><b>Title:</b></dt> | ||
+ | * <dd> | ||
+ | * 消息监听器 | ||
+ | * </dd> | ||
+ | * <dt><b>Description:</b></dt> | ||
+ | * <dd> | ||
+ | * <p>none | ||
+ | * </dd> | ||
+ | * </dl> | ||
+ | * | ||
+ | * @author Administrator | ||
+ | * @version 1.0, 2015年9月24日 | ||
+ | * @since record | ||
+ | * | ||
+ | */ | ||
+ | public class ConsumerMessageListener implements MessageListener { | ||
+ | |||
+ | /** | ||
+ | * 日志处理器 | ||
+ | */ | ||
+ | Logger logger = Logger.getLogger(ConsumerMessageListener.class); | ||
+ | |||
+ | @Override | ||
+ | public void onMessage(Message message) { | ||
+ | //这里我们知道生产者发送的就是一个纯文本消息,所以这里可以直接进行强制转换 | ||
+ | TextMessage textMsg = (TextMessage) message; | ||
+ | try { | ||
+ | logger.info("消息监听器接收内容开始===:" + textMsg.getText()); | ||
+ | Thread.currentThread(); | ||
+ | Thread.sleep(3000); | ||
+ | logger.info("消息监听器接收内容结束===:" + textMsg.getText()); | ||
+ | } catch (JMSException e) { | ||
+ | logger.error("消息监听器接收内容异常发生!", e); | ||
+ | } catch (Exception e) { | ||
+ | logger.error("睡眠3秒,异常发生!"); | ||
+ | } | ||
+ | } | ||
+ | |||
+ | } | ||
+ | </code> | ||
+ | <code> | ||
+ | 2015-09-25 12:56:19,675 [jmsContainer-1] INFO [com.gxx.record.jms.ConsumerMessageListener:40] - 消息监听器接收内容开始===:发送消息~~~ | ||
+ | 2015-09-25 12:56:22,676 [jmsContainer-1] INFO [com.gxx.record.jms.ConsumerMessageListener:43] - 消息监听器接收内容结束===:发送消息~~~ | ||
+ | 2015-09-25 12:56:22,676 [jmsContainer-1] INFO [com.gxx.record.jms.ConsumerMessageListener:40] - 消息监听器接收内容开始===:发送消息~~~ | ||
+ | 2015-09-25 12:56:25,676 [jmsContainer-1] INFO [com.gxx.record.jms.ConsumerMessageListener:43] - 消息监听器接收内容结束===:发送消息~~~ | ||
+ | 2015-09-25 12:56:25,676 [jmsContainer-1] INFO [com.gxx.record.jms.ConsumerMessageListener:40] - 消息监听器接收内容开始===:发送消息~~~ | ||
+ | 2015-09-25 12:56:28,677 [jmsContainer-1] INFO [com.gxx.record.jms.ConsumerMessageListener:43] - 消息监听器接收内容结束===:发送消息~~~ | ||
</code> | </code> |