add tag and key

This commit is contained in:
lnk
2025-09-22 13:26:52 +08:00
parent 825315440d
commit 169aa9b34a
7 changed files with 71 additions and 14 deletions

View File

@@ -266,14 +266,16 @@ void ShutdownAndDestroyProducer()
// 使用 C++ 接口封装的 RocketMQProducer 类
void rocketmq_producer_send(rocketmq::RocketMQProducer* producer,
const std::string& body,
const std::string& topic) {
const std::string& topic,
const std::string& tags,
const std::string& keys) {
if (!producer) {
std::cerr << "[rocketmq_producer_send] producer 不可用,未初始化\n";
return;
}
const std::string& tags = G_ROCKETMQ_TAG;
const std::string& keys = G_ROCKETMQ_KEY;
//const std::string& tags = G_ROCKETMQ_TAG;
//const std::string& keys = G_ROCKETMQ_KEY;
try {
producer->sendMessage(body, topic, tags, keys);
@@ -306,7 +308,9 @@ void my_rocketmq_send(queue_data_t& data,rocketmq::RocketMQProducer* producer)
init = true;
}
std::string key = data.mp_id;
std::string key = data.key;
std::string tag = data.tag;
std::string senddata = data.strText;
if (data.strTopic == "HISDATA")
{
@@ -334,7 +338,7 @@ void my_rocketmq_send(queue_data_t& data,rocketmq::RocketMQProducer* producer)
}
rocketmq_producer_send(producer,senddata,topic);
rocketmq_producer_send(producer,senddata,topic,tag,key);
}
/////////////////////////////////////////////////////////////////////////////////////////////////查找台账下标
@@ -1247,7 +1251,7 @@ std::string prepare_update(const std::string& code_str, const terminal_dev& json
////////////////////////////////////////////////////////////////////////////////////////////////////////////////终端连接消息
void connect_status_to_queue(const std::string& id, const std::string& datetime, int status)
void connect_status_to_queue(const std::string& id, const std::string& datetime, int status)//这个不使用,使用新的带有时间封装的
{
try {
// 构造 JSON
@@ -1260,6 +1264,8 @@ void connect_status_to_queue(const std::string& id, const std::string& datetime,
queue_data_t data;
data.strTopic = G_CONNECT_TOPIC;
data.strText = jsonObject.dump(); // 转换为字符串
data.tag = G_CONNECT_TAG;
data.key = G_CONNECT_KEY;
//if (g_node_id == STAT_DATA_BASE_NODE_ID) {
std::lock_guard<std::mutex> lock(queue_data_list_mutex);
@@ -1288,6 +1294,8 @@ void send_reply_to_queue(const std::string& guid, const std::string& step, const
queue_data_t connect_info;
connect_info.strTopic = Topic_Reply_Topic;
connect_info.strText = obj.dump(); // 序列化为 JSON 字符串
connect_info.tag = Topic_Reply_Tag;
connect_info.key = Topic_Reply_Key;
// 加入发送队列(线程安全)
std::lock_guard<std::mutex> lock(queue_data_list_mutex);
@@ -1311,6 +1319,8 @@ void send_heartbeat_to_queue(const std::string& status) {
queue_data_t connect_info;
connect_info.strTopic = Heart_Beat_Topic;
connect_info.strText = obj.dump(); // 紧凑格式 JSON
connect_info.tag = Heart_Beat_Tag;
connect_info.key = Heart_Beat_Key;
std::lock_guard<std::mutex> lock(queue_data_list_mutex);
queue_data_list.push_back(connect_info);
@@ -1412,6 +1422,8 @@ void rocketmq_test_300(int mpnum, int front_index, int type, Front* front) {
}
data.strText = modified_strText;
data.tag = G_ROCKETMQ_TAG_TEST;
data.key = G_ROCKETMQ_KEY_TEST;
std::lock_guard<std::mutex> lock(queue_data_list_mutex);
queue_data_list.push_back(data);
@@ -1449,6 +1461,8 @@ void rocketmq_test_300(int mpnum, int front_index, int type, Front* front) {
}
data.strText = modified_strText;
data.tag = G_ROCKETMQ_TAG_TEST;
data.key = G_ROCKETMQ_KEY_TEST;
std::lock_guard<std::mutex> lock(queue_data_list_mutex);
queue_data_list.push_back(data);
@@ -1482,7 +1496,8 @@ void rocketmq_test_rt(Front* front)//用来测试实时数据
data.strText = std::string(buffer.str());
data.mp_id = "123123";
//my_rocketmq_send(data,front->m_producer);
data.tag = G_ROCKETMQ_TAG_TEST;
data.key = G_ROCKETMQ_KEY_TEST;
std::lock_guard<std::mutex> lock(queue_data_list_mutex);
queue_data_list.push_back(data);
}
@@ -1505,7 +1520,8 @@ void rocketmq_test_ud(Front* front)//用来测试台账更新
data.strText = std::string(buffer.str());
data.mp_id = "123123";
//my_rocketmq_send(data,front->m_producer);
data.tag = G_ROCKETMQ_TAG_TEST;
data.key = G_ROCKETMQ_KEY_TEST;
std::lock_guard<std::mutex> lock(queue_data_list_mutex);
queue_data_list.push_back(data);
}
@@ -1528,7 +1544,8 @@ void rocketmq_test_set(Front* front)//用来测试进程控制脚本
data.strText = std::string(buffer.str());
data.mp_id = "123123";
//my_rocketmq_send(data,front->m_producer);
data.tag = G_ROCKETMQ_TAG_TEST;
data.key = G_ROCKETMQ_KEY_TEST;
std::lock_guard<std::mutex> lock(queue_data_list_mutex);
queue_data_list.push_back(data);
}
@@ -1551,7 +1568,8 @@ void rocketmq_test_rc(Front* front)//用来测试补招
data.strText = std::string(buffer.str());
data.mp_id = "123123";
//my_rocketmq_send(data,front->m_producer);
data.tag = G_ROCKETMQ_TAG_TEST;
data.key = G_ROCKETMQ_KEY_TEST;
std::lock_guard<std::mutex> lock(queue_data_list_mutex);
queue_data_list.push_back(data);
}
@@ -1890,6 +1908,8 @@ void send_reply_to_cloud(int reply_code, const std::string& dev_id, int type) {
queue_data_t connect_info;
connect_info.strTopic = Topic_Reply_Topic;
connect_info.strText = obj.dump(); // 序列化为字符串
connect_info.tag = Topic_Reply_Tag;
connect_info.key = Topic_Reply_Key;
{
std::lock_guard<std::mutex> lock(queue_data_list_mutex);
@@ -1981,6 +2001,8 @@ void rocketmq_test_getdir(Front* front)//用来测试目录获取
data.strText = std::string(buffer.str());
data.mp_id = "123123";
data.tag = G_ROCKETMQ_TAG_TEST;
data.key = G_ROCKETMQ_KEY_TEST;
std::lock_guard<std::mutex> lock(queue_data_list_mutex);
queue_data_list.push_back(data);
}
@@ -2008,6 +2030,8 @@ void connect_status_update(const std::string& id, int status)
queue_data_t connect_info;
connect_info.strTopic = G_CONNECT_TOPIC;
connect_info.strText = j.dump(); // 转成字符串
connect_info.tag = G_CONNECT_TAG;
connect_info.key = G_CONNECT_KEY;
{
std::lock_guard<std::mutex> lock(queue_data_list_mutex);