实现思路:多个用户的微信发表 放在同一队列下,实现异步存储,
所以可以再服务层创建一个静态Destination,将信息推送给队列,再有消费功能实现 信息存储数据库。
上一章有创建 微信说说业务相关的逻辑实现,此时需要给队列生产类增加 AyMood信息收集,再给队列消费类增加 AyMood信息存储。
AyMoodProducer
public void sendMessage(Destination destination, final AyMood ayMood){
jmsMessagingTemplate.convertAndSend(destination,ayMood);
}
AyMoodConsumer
@JmsListener(destination = "ayqueue.asynsave")
public void recieveQueue(AyMood ayMood){
ayMoodService.save(ayMood);
}
此时给服务层增加传递信息类的 方法
@Override
public String aysncSave(AyMood ayMood) {
ayMoodProducer.sendMessage(destination,ayMood);
return "success";
}
单元测试
@Test
public void testActiveMQ2(){
//模拟用户发表微信说说
AyMood ayMood=new AyMood();
ayMood.setId("2");
ayMood.setUserId("2");
ayMood.setPraiseNum(0);
ayMood.setContent("第二条微信说说");
ayMood.setPublishTime(new Date());
String status= ayMoodService.aysncSave(ayMood);
System.out.println("队列发送:"+status);
}