【代码评审】IoT:rocketmq 数据桥接的接入

This commit is contained in:
YunaiV 2025-02-19 22:42:19 +08:00
parent 41c41bc6c3
commit 8e7bbfe0da
2 changed files with 26 additions and 31 deletions

View File

@ -146,32 +146,28 @@ public class IotDataBridgeDO extends BaseDO {
* RocketMQ 名称服务器地址
*/
private String nameServer;
/**
* 生产者/消费者组
*/
private String group;
/**
* 主题
*/
private String topic;
/**
* 标签
*/
private String tags;
/**
* 访问密钥
*/
private String accessKey;
/**
* 秘密钥匙
*/
private String secretKey;
/**
* 生产者组
*/
private String group;
/**
* 主题
*/
private String topic;
/**
* 标签
*/
private String tags;
}
}

View File

@ -143,39 +143,38 @@ public class IotRuleSceneDataBridgeAction implements IotRuleSceneAction {
}
private void executeRocketMQ(IotDeviceMessage message, IotDataBridgeDO.RocketMQConfig config) {
// 1. 创建生产者实例指定生产者组名
// 1.1 创建生产者实例指定生产者组名
DefaultMQProducer producer = new DefaultMQProducer(config.getGroup());
// TODO @puhui999可以考虑基于 guava cache使用 config 作为 key然后假个 listener 超时销毁 producer
try {
// 2. 设置 NameServer 地址
// 1.2 设置 NameServer 地址
producer.setNamesrvAddr(config.getNameServer());
// 3. 启动生产者
// 1.3 启动生产者
producer.start();
// 4. 创建消息对象指定TopicTag和消息体
// 2.1 创建消息对象指定TopicTag和消息体
Message msg = new Message(
config.getTopic(),
config.getTags(),
message.toString().getBytes(RemotingHelper.DEFAULT_CHARSET)
);
// 5. 发送同步消息并处理结果
// 2.2 发送同步消息并处理结果
SendResult sendResult = producer.send(msg);
// 6. 处理发送结果
// 2.3 处理发送结果
if (SendStatus.SEND_OK.equals(sendResult.getSendStatus())) {
log.info("[executeRocketMQ][message({}) config({}) 发送成功,结果({})]",
message, config, sendResult);
log.info("[executeRocketMQ][message({}) config({}) 发送成功,结果({})]", message, config, sendResult);
} else {
log.error("[executeRocketMQ][message({}) config({}) 发送失败,结果({})]",
message, config, sendResult);
log.error("[executeRocketMQ][message({}) config({}) 发送失败,结果({})]", message, config, sendResult);
}
} catch (Exception e) {
log.error("[executeRocketMQ][message({}) config({}) 发送异常]",
message, config, e);
log.error("[executeRocketMQ][message({}) config({}) 发送异常]", message, config, e);
} finally {
// 7. 关闭生产者
// 3. 关闭生产者
producer.shutdown();
}
}
// TODO @芋艿测试代码后续清理
public static void main(String[] args) {
// 1. 创建 IotRuleSceneDataBridgeAction 实例
IotRuleSceneDataBridgeAction action = new IotRuleSceneDataBridgeAction();