fix recall fail crash
This commit is contained in:
@@ -2347,7 +2347,7 @@ void process_recall_config(recall_xml_t* recall_xml)
|
||||
LD_info->autorecall[j]->need_voltage = recall[j].need_voltage;
|
||||
|
||||
}
|
||||
LD_info->autorecallflag = 0;
|
||||
LD_info->autorecallflag = 0;//这个监测点刚读取到补招文件,重置正在补招标志
|
||||
|
||||
|
||||
}
|
||||
@@ -6121,7 +6121,7 @@ void rocketmq_test_300(int mpnum,int front_index,int type) {
|
||||
// 循环发送 300 条消息
|
||||
if(type == 0){
|
||||
std::cout << " use ledger send msg " << std::endl;
|
||||
for (int i = 0; (total_messages > 0 && g_front_seg_index == 1 && g_node_id == 100) && i < g_node->n_clients; ++i) {
|
||||
for (int i = 0; (total_messages > 0 && g_node_id == 100) && i < g_node->n_clients; ++i) {//台账模拟不限制进程号
|
||||
|
||||
ied = (ied_t*)g_node->clients[i];
|
||||
if(ied != NULL){
|
||||
|
||||
@@ -481,12 +481,13 @@ void ChannelCheckIECLogs(chnl_usr_t *chnl_usr)
|
||||
|
||||
Check_Recall_Config(LD_info->mp_id);//尝试获取xml结构
|
||||
|
||||
//补招数量不为0且不是正在补招
|
||||
if (LD_info->autorecallcount != 0 && LD_info->autorecallflag != 1) {
|
||||
int i;
|
||||
int failed_count = 0;
|
||||
for (i = 0; i < LD_info->autorecallcount; i++) {
|
||||
|
||||
LD_info->autorecallflag = 1;
|
||||
LD_info->autorecallflag = 1;//正在补招
|
||||
|
||||
//当前不区分稳态和暂态lnk20241030,如果做区分修改:Check_Recall_Config从xml文件获取数据后,赋值给了LD_info
|
||||
loginfo->need_steady = LD_info->autorecall[i]->need_steady; loginfo->need_voltage = LD_info->autorecall[i]->need_voltage;
|
||||
@@ -505,7 +506,7 @@ void ChannelCheckIECLogs(chnl_usr_t *chnl_usr)
|
||||
LD_info->ied->id, LD_info->cpuno, LD_info->LD_name, loginfo->logName, chnl_usr->ip_str, chnl_usr->chnl_id);
|
||||
|
||||
//mq日志
|
||||
DIY_WARNLOG(full_key_m_c,"【WARN】监测点:%s - id:%s开始补招数据", LD_info->name,LD_info->mp_id);
|
||||
//DIY_WARNLOG(full_key_m_c,"【WARN】监测点:%s - id:%s开始补招数据", LD_info->name,LD_info->mp_id);
|
||||
|
||||
ret = mms_jread(loginfo, chnl_usr->net_info, loginfo->LD_info->LD_name, loginfo->logName,
|
||||
loginfo->start_time, loginfo->end_time, g_pt61850app->mmsOpTimeout, chnl_usr->ip_str);
|
||||
@@ -514,7 +515,7 @@ void ChannelCheckIECLogs(chnl_usr_t *chnl_usr)
|
||||
LD_info->ied->id, LD_info->cpuno, LD_info->LD_name, loginfo->logName, chnl_usr->ip_str, chnl_usr->chnl_id);
|
||||
|
||||
//mq日志
|
||||
DIY_ERRORLOG(full_key_m_c,"【ERROR】监测点:%s - id:%s补招数据失败", LD_info->name,LD_info->mp_id);
|
||||
DIY_ERRORLOG(full_key_m_c,"【ERROR】监测点:%s - id:%s补招数据失败 - 失败时间点:%lld 至 %lld", LD_info->name,LD_info->mp_id,loginfo->start_time,loginfo->end_time);
|
||||
|
||||
failed_count++;
|
||||
}
|
||||
@@ -534,9 +535,10 @@ void ChannelCheckIECLogs(chnl_usr_t *chnl_usr)
|
||||
printf("end mms_jread................................\n");
|
||||
}
|
||||
|
||||
if (failed_count==0) {//成功
|
||||
//不管是否成功,这个补招文件必须删除,可能出现一直失败,循环读取文件和循环补招导致程序崩溃202050724lnk
|
||||
//if (failed_count==0) {//成功
|
||||
Delete_recall_Xml(LD_info->mp_id);
|
||||
}
|
||||
//}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1371,7 +1373,7 @@ void Check_Recall_Config(char *id) //检查补招配置文件Recall.xml
|
||||
|
||||
recall_xml_t recall_xml;
|
||||
memset((char*)&recall_xml, 0, sizeof(recall_xml_t));
|
||||
parse_recall_xml(&recall_xml,id); //解析补招文件
|
||||
parse_recall_xml(&recall_xml,id); //解析补招文件,目录下所有属于这个监测点的文件都读取
|
||||
process_recall_config(&recall_xml); //解析的补招数据赋值到全局变量
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user