ActiveMQ添加商品接收消息

傷城~ 2022-05-17 08:51 297阅读 0赞

Destination

配置信息

  1. <!-- 配置消息的Destination对象 -->
  2. <bean id="test-queue" class="org.apache.activemq.command.ActiveMQQueue">
  3. <constructor-arg name="name" value="test-queue"></constructor-arg>
  4. </bean>
  5. <bean id="itemAddTopic" class="org.apache.activemq.command.ActiveMQTopic">
  6. <constructor-arg name="name" value="item-add-topic"></constructor-arg>
  7. </bean>

添加监听器

ItemAddMessageListener
监听添加商品事件

  1. public class ItemAddMessageListener implements MessageListener {
  2. @Autowired
  3. private SearchItemMapper searchItemMapper;
  4. @Autowired
  5. private SolrServer solrServer;
  6. @Override
  7. public void onMessage(Message message) {
  8. try {
  9. // 从消息中取商品id
  10. TextMessage textMessage = (TextMessage) message;
  11. String text = textMessage.getText();
  12. long itemId = Long.parseLong(text);
  13. // 根据商品id查询数据,取商品信息
  14. // 等待事务提交
  15. Thread.sleep(1000);
  16. SearchItem searchItem = searchItemMapper.getItemById(itemId);
  17. // 创建文档对象
  18. SolrInputDocument document = new SolrInputDocument();
  19. // 向文档对象中添加域
  20. document.addField("id", searchItem.getId());
  21. document.addField("item_title", searchItem.getTitle());
  22. document.addField("item_sell_point", searchItem.getSell_point());
  23. document.addField("item_price", searchItem.getPrice());
  24. document.addField("item_image", searchItem.getImage());
  25. document.addField("item_category_name", searchItem.getCategory_name());
  26. document.addField("item_desc", searchItem.getItem_desc());
  27. // 把文档对象写入索引库
  28. solrServer.add(document);
  29. // 提交
  30. solrServer.commit();
  31. } catch (Exception e) {
  32. e.printStackTrace();
  33. }
  34. }
  35. }

配置监听器

ItemAddMessageListener

  1. <!-- 配置消息的接收者 -->
  2. <!-- 配置监听器 -->
  3. <bean id="myMessageListener" class="com.taotao.search.listener.MyMessageListener"/>
  4. <!-- 消息监听容器 -->
  5. <bean class="org.springframework.jms.listener.DefaultMessageListenerContainer">
  6. <property name="connectionFactory" ref="connectionFactory" />
  7. <property name="destination" ref="test-queue" />
  8. <property name="messageListener" ref="myMessageListener" />
  9. </bean>
  10. <bean id="itemAddMessageListener" class="com.taotao.search.listener.ItemAddMessageListener"/>
  11. <bean class="org.springframework.jms.listener.DefaultMessageListenerContainer">
  12. <property name="connectionFactory" ref="connectionFactory" />
  13. <property name="destination" ref="itemAddTopic" />
  14. <property name="messageListener" ref="itemAddMessageListener" />
  15. </bean>

发表评论

表情:
评论列表 (有 0 条评论,297人围观)

还没有评论,来说两句吧...

相关阅读