1 导入依赖
<!--支持RabbitMQ-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-amqp</artifactId>
</dependency>
2 创建生产者发送消息
@Resource
private RabbitTemplate rabbitTemplate;
/**
* iot_passage发送端
* @param userId
*/
public void insertApplicationSend(Long userId){
// 设置自动转换json格式
rabbitTemplate.setMessageConverter(new Jackson2JsonMessageConverter());
// 发送到消息队列
rabbitTemplate.convertAndSend("IOTPASSAGE_insert_application",userId);
}
3 创建rabbitmq配置 implements RabbitListenerConfigurer
@Bean
public Queue iotPassageInsertQueue(){
return new Queue("IOTPASSAGE_insert_application");
}
@Override
public void configureRabbitListeners(RabbitListenerEndpointRegistrar rabbitListenerEndpointRegistrar) {
rabbitListenerEndpointRegistrar.setMessageHandlerMethodFactory(messageHandlerMethodFactory());
}
@Bean
MessageHandlerMethodFactory messageHandlerMethodFactory() {
DefaultMessageHandlerMethodFactory messageHandlerMethodFactory = new DefaultMessageHandlerMethodFactory();
messageHandlerMethodFactory.setMessageConverter(mappingJackson2MessageConverter());
return messageHandlerMethodFactory;
}
@Bean
public MappingJackson2MessageConverter mappingJackson2MessageConverter() {
return new MappingJackson2MessageConverter();
}
4 创建消费者消费消息
@RabbitHandler
@RabbitListener(queues = "IOTPASSAGE_insert_application")
public void insertApplicationReceive(Long userId){
try {
// 人商机单新增刷脸时间
yxOwnerMatchingApplicationMapper.updateByOwnerIdOwnerMatchingApplication(userId,new Date());
YxOwnerMatchingApplication yxOwnerMatchingApplication = yxOwnerMatchingApplicationMapper.selectByOwnerId(userId);
if (yxOwnerMatchingApplication != null){
// 户商机单取最新刷脸时间
yxHouseMatchingApplicationMapper.updateByOwnerIdHouseMatchingApplication(yxOwnerMatchingApplication.getRoomId(),new Date());
}
}catch (Exception e){
log.error("iot_passage插入商机单接收端代码报错如下:");
e.printStackTrace();
}
}
5 nacos配置注册rabbitmq服务