generate ledger to main thread
This commit is contained in:
@@ -58,10 +58,6 @@ static rocketmq::RocketMQProducer* g_producer = nullptr; //生产者
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
//台账
|
||||
extern std::mutex ledgermtx;
|
||||
extern std::vector<terminal_dev> terminal_devlist;
|
||||
|
||||
//前置进程
|
||||
extern unsigned int g_node_id;
|
||||
extern int g_front_seg_index;
|
||||
@@ -1391,9 +1387,8 @@ bool shouldSkipTerminal(const std::string& terminal_id) {
|
||||
return false;
|
||||
}
|
||||
|
||||
void rocketmq_test_300(int mpnum, int front_index, int type,Front* front) {
|
||||
|
||||
if(!INITFLAG){
|
||||
void rocketmq_test_300(int mpnum, int front_index, int type, Front* front) {
|
||||
if (!INITFLAG) {
|
||||
std::cout << "前置未初始化完成\n";
|
||||
return;
|
||||
}
|
||||
@@ -1451,41 +1446,34 @@ void rocketmq_test_300(int mpnum, int front_index, int type,Front* front) {
|
||||
|
||||
data.mp_id = dev.line[j].monitor_id;
|
||||
data.monitor_no = static_cast<int>(i + j);
|
||||
std::string modified_time = std::to_string(current_time_ms);
|
||||
std::string modified_time = std::to_string(current_time_ms / 1000);
|
||||
|
||||
std::string modified_strText = base_strText;
|
||||
|
||||
// 替换 Monitor
|
||||
size_t monitor_pos = modified_strText.find("\"Monitor\"");
|
||||
if (monitor_pos != std::string::npos) {
|
||||
size_t colon_pos = modified_strText.find(":", monitor_pos);
|
||||
size_t quote_pos = modified_strText.find("\"", colon_pos);
|
||||
size_t end_quote_pos = modified_strText.find("\"", quote_pos + 1);
|
||||
if (colon_pos != std::string::npos && quote_pos != std::string::npos && end_quote_pos != std::string::npos) {
|
||||
modified_strText.replace(quote_pos + 1, end_quote_pos - quote_pos - 1, data.mp_id);
|
||||
}
|
||||
}
|
||||
|
||||
// 替换 TIME
|
||||
size_t time_pos = modified_strText.find("\"TIME\"");
|
||||
if (time_pos != std::string::npos) {
|
||||
size_t colon_pos = modified_strText.find(":", time_pos);
|
||||
size_t quote_pos = colon_pos;
|
||||
size_t end_quote_pos = modified_strText.find(",", quote_pos + 1);
|
||||
if (colon_pos != std::string::npos && quote_pos != std::string::npos && end_quote_pos != std::string::npos) {
|
||||
modified_strText.replace(quote_pos + 1, end_quote_pos - quote_pos - 1, modified_time);
|
||||
try {
|
||||
auto j = nlohmann::json::parse(modified_strText);
|
||||
j["Did"] = i;
|
||||
if (j.contains("Msg") && j["Msg"].is_object()) {
|
||||
j["Msg"]["Cldid"] = j;
|
||||
if (j["Msg"].contains("DataArray") && j["Msg"]["DataArray"].is_array()) {
|
||||
for (auto& item : j["Msg"]["DataArray"]) {
|
||||
if (item.is_object()) {
|
||||
item["DataTimeSec"] = std::stoll(modified_time);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
modified_strText = j.dump();
|
||||
} catch (...) {
|
||||
// 保持原始文本
|
||||
}
|
||||
|
||||
data.strText = modified_strText;
|
||||
//my_rocketmq_send(data,front->m_producer);
|
||||
std::lock_guard<std::mutex> lock(queue_data_list_mutex);
|
||||
queue_data_list.push_back(data);
|
||||
|
||||
std::cout << "Sent message " << (i + 1)
|
||||
<< " with Monitor " << data.monitor_no
|
||||
<< " and TIME " << modified_time << std::endl;
|
||||
|
||||
}
|
||||
}
|
||||
} else {
|
||||
@@ -1493,43 +1481,36 @@ void rocketmq_test_300(int mpnum, int front_index, int type,Front* front) {
|
||||
|
||||
for (int i = 0; (total_messages > 0 && g_front_seg_index == 1 && g_node_id == 100) && i < total_messages; ++i) {
|
||||
std::string monitor_id = "testmonitor" + std::to_string(i);
|
||||
|
||||
data.mp_id = monitor_id;
|
||||
data.monitor_no = i;
|
||||
std::string modified_time = std::to_string(current_time_ms);
|
||||
std::string modified_time = std::to_string(current_time_ms / 1000);
|
||||
std::string modified_strText = base_strText;
|
||||
|
||||
// 替换 Monitor
|
||||
size_t monitor_pos = modified_strText.find("\"Monitor\"");
|
||||
if (monitor_pos != std::string::npos) {
|
||||
size_t colon_pos = modified_strText.find(":", monitor_pos);
|
||||
size_t quote_pos = modified_strText.find("\"", colon_pos);
|
||||
size_t end_quote_pos = modified_strText.find("\"", quote_pos + 1);
|
||||
if (colon_pos != std::string::npos && quote_pos != std::string::npos && end_quote_pos != std::string::npos) {
|
||||
modified_strText.replace(quote_pos + 1, end_quote_pos - quote_pos - 1, data.mp_id);
|
||||
}
|
||||
}
|
||||
|
||||
// 替换 TIME
|
||||
size_t time_pos = modified_strText.find("\"TIME\"");
|
||||
if (time_pos != std::string::npos) {
|
||||
size_t colon_pos = modified_strText.find(":", time_pos);
|
||||
size_t quote_pos = colon_pos;
|
||||
size_t end_quote_pos = modified_strText.find(",", quote_pos + 1);
|
||||
if (colon_pos != std::string::npos && quote_pos != std::string::npos && end_quote_pos != std::string::npos) {
|
||||
modified_strText.replace(quote_pos + 1, end_quote_pos - quote_pos - 1, modified_time);
|
||||
try {
|
||||
auto j = nlohmann::json::parse(modified_strText);
|
||||
j["Did"] = 0;
|
||||
if (j.contains("Msg") && j["Msg"].is_object()) {
|
||||
j["Msg"]["Cldid"] = data.mp_id;
|
||||
if (j["Msg"].contains("DataArray") && j["Msg"]["DataArray"].is_array()) {
|
||||
for (auto& item : j["Msg"]["DataArray"]) {
|
||||
if (item.is_object()) {
|
||||
item["DataTimeSec"] = std::stoll(modified_time);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
modified_strText = j.dump();
|
||||
} catch (...) {
|
||||
// 保持原始文本
|
||||
}
|
||||
|
||||
data.strText = modified_strText;
|
||||
//my_rocketmq_send(data,front->m_producer);
|
||||
std::lock_guard<std::mutex> lock(queue_data_list_mutex);
|
||||
queue_data_list.push_back(data);
|
||||
|
||||
std::cout << "Sent message " << (i + 1)
|
||||
<< " with Monitor " << data.monitor_no
|
||||
<< " and TIME " << modified_time << std::endl;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user