MQ整合
This commit is contained in:
parent
d68d9e76c5
commit
979f85f055
@ -50,6 +50,10 @@
|
|||||||
<version>0.0.1-SNAPSHOT</version>
|
<version>0.0.1-SNAPSHOT</version>
|
||||||
<scope>compile</scope>
|
<scope>compile</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.springframework.amqp</groupId>
|
||||||
|
<artifactId>spring-rabbit</artifactId>
|
||||||
|
</dependency>
|
||||||
</dependencies>
|
</dependencies>
|
||||||
<build>
|
<build>
|
||||||
<finalName>${project.artifactId}</finalName>
|
<finalName>${project.artifactId}</finalName>
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
package com.qiuguo.iot.third.service;
|
package com.qiuguo.iot.data.service.mq;
|
||||||
|
|
||||||
import org.springframework.amqp.rabbit.core.RabbitTemplate;
|
import org.springframework.amqp.rabbit.core.RabbitTemplate;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
@ -2,15 +2,15 @@ package com.qiuguo.iot.user.api.controller.mq;
|
|||||||
|
|
||||||
import com.qiuguo.iot.data.constants.YunxiRabbitConst;
|
import com.qiuguo.iot.data.constants.YunxiRabbitConst;
|
||||||
import com.qiuguo.iot.data.entity.user.UserHomeEntity;
|
import com.qiuguo.iot.data.entity.user.UserHomeEntity;
|
||||||
import com.qiuguo.iot.third.service.MqService;
|
import com.qiuguo.iot.data.service.mq.MqService;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.amqp.rabbit.core.RabbitTemplate;
|
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
|
||||||
import org.springframework.web.bind.annotation.GetMapping;
|
import org.springframework.web.bind.annotation.GetMapping;
|
||||||
import org.springframework.web.bind.annotation.RequestMapping;
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
import org.springframework.web.bind.annotation.RestController;
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
import reactor.core.publisher.Mono;
|
import reactor.core.publisher.Mono;
|
||||||
|
|
||||||
|
import javax.annotation.Resource;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author simon
|
* @author simon
|
||||||
* @date 2023/9/25
|
* @date 2023/9/25
|
||||||
@ -20,16 +20,23 @@ import reactor.core.publisher.Mono;
|
|||||||
@Slf4j
|
@Slf4j
|
||||||
@RequestMapping("/mq")
|
@RequestMapping("/mq")
|
||||||
public class MqController {
|
public class MqController {
|
||||||
@Autowired
|
@Resource
|
||||||
private MqService mqService;
|
private MqService mqService;
|
||||||
|
|
||||||
@GetMapping("/sendMsg")
|
@GetMapping("/sendMsg")
|
||||||
public Mono<Boolean> sendMsg() {
|
public Mono sendMsg() {
|
||||||
UserHomeEntity userHomeEntity = new UserHomeEntity();
|
UserHomeEntity userHomeEntity = new UserHomeEntity();
|
||||||
userHomeEntity.setUserId(1L);
|
userHomeEntity.setUserId(1L);
|
||||||
userHomeEntity.setHomeName("小米的家");
|
userHomeEntity.setHomeName("小米的家");
|
||||||
userHomeEntity.setUserId(System.currentTimeMillis());
|
userHomeEntity.setUserId(System.currentTimeMillis());
|
||||||
|
|
||||||
return mqService.sendMessageWithConfirmation(YunxiRabbitConst.EXCHANGE_YUNXI_EVENT, YunxiRabbitConst.ROUTE_KEY_YUNXI, userHomeEntity);
|
Mono<Boolean> booleanMono = mqService.sendMessageWithConfirmation(YunxiRabbitConst.EXCHANGE_YUNXI_EVENT, YunxiRabbitConst.ROUTE_KEY_YUNXI, userHomeEntity);
|
||||||
|
return booleanMono.flatMap(res -> {
|
||||||
|
if (!res) {
|
||||||
|
return Mono.error(new RuntimeException("消息发送失败"));
|
||||||
|
} else {
|
||||||
|
return Mono.just(true);
|
||||||
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -22,8 +22,9 @@ public class YunxiListener {
|
|||||||
public void processYunxiQueue(Channel channel, Message message) throws IOException {
|
public void processYunxiQueue(Channel channel, Message message) throws IOException {
|
||||||
String messageContent = new String(message.getBody(), "UTF-8");
|
String messageContent = new String(message.getBody(), "UTF-8");
|
||||||
System.out.println("YunxiListener msg " + messageContent);
|
System.out.println("YunxiListener msg " + messageContent);
|
||||||
|
//TODO 消费者处理程序
|
||||||
|
|
||||||
//手动消息确认 配置需开启 acknowledge-mode: manual
|
//处理完毕 手动消息确认 配置需开启 acknowledge-mode: manual
|
||||||
channel.basicAck(message.getMessageProperties().getDeliveryTag(), false);
|
channel.basicAck(message.getMessageProperties().getDeliveryTag(), false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user