add function,1.limit log freq 2.realtime log control

This commit is contained in:
lnk
2026-01-08 15:55:46 +08:00
parent 02127869c0
commit df9760c1a7
5 changed files with 156 additions and 52 deletions

View File

@@ -520,7 +520,7 @@ bool parseJsonMessageSET(const std::string& json_str) {
std::cout << "msg index: " << index_value << " self index: " << g_front_seg_index << std::endl;
DIY_INFOLOG("process", "收到主题:%s - tag:%s的进程控制消息",
DIY_INFOLOG_CODE("process",0,LOG_CODE_PROCESS_CONTROL, "收到主题:%s - tag:%s的进程控制消息",
G_MQCONSUMER_TOPIC_SET.c_str(),FRONT_INST.c_str());
if (code_str == "set_process") {
@@ -629,8 +629,9 @@ bool parseJsonMessageLOG(const std::string& json_str) {
}
// 提取字段
std::string guid, code_str, id, level, grade, logtype, frontType;
std::string guid, code_str, id, level, grade, frontType;
int processNo = 0;
int logtype = 0;
try {
guid = messageBody["guid"].get<std::string>();
@@ -639,7 +640,7 @@ bool parseJsonMessageLOG(const std::string& json_str) {
id = messageBody["id"].get<std::string>();
level = messageBody["level"].get<std::string>();
grade = messageBody["grade"].get<std::string>();
logtype = messageBody["logtype"].get<std::string>();
logtype = messageBody["logtype"].get<int>();
frontType = messageBody["frontType"].get<std::string>();
} catch (const std::exception& e) {
std::cerr << "Error extracting fields: " << e.what() << std::endl;
@@ -658,7 +659,7 @@ bool parseJsonMessageLOG(const std::string& json_str) {
return true;
}*/
DIY_INFOLOG("process", "收到主题:%s - tag:%s的日志控制消息",
DIY_INFOLOG_CODE("process",0,LOG_CODE_LOG_REQUEST,"收到主题:%s - tag:%s的日志控制消息",
G_MQCONSUMER_TOPIC_LOG.c_str(),FRONT_INST.c_str());
std::cout << "msg index: " << processNo << " self index: " << g_front_seg_index << std::endl;
@@ -670,16 +671,16 @@ bool parseJsonMessageLOG(const std::string& json_str) {
if (code_str == "set_log") {
// 校验数据合法性
bool valid =
(level == "terminal" || level == "measurepoint") &&
(level == "terminal" || level == "measurepoint" || level == "process") && //all是通配
(grade == "NORMAL" || grade == "DEBUG") &&
(logtype == "com" || logtype == "data") &&
(logtype > 0 && logtype < 1000) &&//999是通配
(!id.empty() && !is_blank(id));
if (valid) {
process_log_command(id, level, grade, logtype);
} else {
std::cout << "type doesn't match" << std::endl;
DIY_WARNLOG_CODE("process",0,LOG_CODE_JSON, "日志控制指令失败");
DIY_ERRORLOG_CODE("process",0,LOG_CODE_JSON, "日志控制指令失败");
}
std::cout << "this msg should only execute once" << std::endl;
@@ -733,7 +734,7 @@ bool parseJsonMessageUD(const std::string& json_str, const std::string& output_d
std::cout << "msg index: " << process_No << " self index: " << g_front_seg_index << std::endl;
DIY_INFOLOG("process", "收到主题:%s - tag:%s的台账更新消息",
DIY_INFOLOG_CODE("process",0,LOG_CODE_LEDGER_UPDATE,"收到主题:%s - tag:%s的台账更新消息",
G_MQCONSUMER_TOPIC_UD.c_str(), FRONT_INST.c_str());
//send_reply_to_queue(guid, static_cast<int>(ResponseCode::ACCEPTED), "收到台账更新指令");
@@ -1025,7 +1026,7 @@ rocketmq::ConsumeStatus myMessageCallbackrtdata(const rocketmq::MQMessageExt& ms
}
// 日志记录
DIY_INFOLOG("process", "收到主题:%s - tag:%s的实时触发消息",G_MQCONSUMER_TOPIC_RT.c_str(),FRONT_INST.c_str());
DIY_INFOLOG_CODE("process",0,LOG_CODE_RT_DATA,"收到主题:%s - tag:%s的实时触发消息",G_MQCONSUMER_TOPIC_RT.c_str(),FRONT_INST.c_str());
std::cout << "rtdata Callback received message: " << body << std::endl;
if (!key.empty()) {
@@ -1235,6 +1236,8 @@ rocketmq::ConsumeStatus myMessageCallbackrecall(const rocketmq::MQMessageExt& ms
// 调试输出
std::cout << "myMessageCallbackrecall" << std::endl;
std::string body = msg.getBody();
std::string key = msg.getKeys();
@@ -1251,6 +1254,9 @@ rocketmq::ConsumeStatus myMessageCallbackrecall(const rocketmq::MQMessageExt& ms
std::cout << "Message Key: N/A" << std::endl;
}
DIY_INFOLOG_CODE("process",0,LOG_CODE_RECALL,"收到主题:%s - tag:%s的补招消息",
G_MQCONSUMER_TOPIC_RC.c_str(), FRONT_INST.c_str());
// 解析 JSON 字符串
recall_json_handle_from_mq(body);//不再使用文件补招方式
@@ -2264,7 +2270,7 @@ rocketmq::ConsumeStatus cloudMessageCallback(const rocketmq::MQMessageExt& msg)
}
// 日志记录
DIY_INFOLOG("process", "收到主题:%s - tag:%s的云前置控制消息",G_MQCONSUMER_TOPIC_CLOUD.c_str(),FRONT_INST.c_str());
DIY_INFOLOG_CODE("process",0,LOG_CODE_CLOUD, "收到主题:%s - tag:%s的云前置控制消息",G_MQCONSUMER_TOPIC_CLOUD.c_str(),FRONT_INST.c_str());
std::cout << "cloud Callback received message: " << body << std::endl;
if (!key.empty()) {