Explorar o código

!10494 解决获取errMsg 线程多次尝试问题,改为最大尝试次数5次
Merge pull request !10494 from 80374463/ST2_fixBug_1022

陈良瑜80374463 hai 11 meses
pai
achega
4b52e03890
Modificáronse 1 ficheiros con 16 adicións e 3 borrados
  1. 16 3
      Module/mod_vtmloader/VtmLoaderFSM.cpp

+ 16 - 3
Module/mod_vtmloader/VtmLoaderFSM.cpp

@@ -94,6 +94,13 @@ DWORD tokenUpdate(void* param)
 DWORD errMsgListUpdate(void* param)
 {
 	CVtmLoaderFSM* t_entity = (CVtmLoaderFSM*)param;
+	static bool msgErrThreadExist = false;
+	if (msgErrThreadExist)
+		return true;
+	else
+	{
+		msgErrThreadExist = true;
+	}
 
 	/*
 	CSimpleString code, des;
@@ -104,11 +111,17 @@ DWORD errMsgListUpdate(void* param)
 
 	//update err list after setting centersetting urls
 	//try updating every 20s until success
-	while (Error_Succeed != t_entity->GetEntityBase()->GetFunction()->GetPrivilegeFunction()->TryUpdateVTMERRMSG())
+	int times = 0;
+	ErrorCodeEnum rc = Error_Succeed;
+	while (times < 5 && Error_Succeed != (rc = t_entity->GetEntityBase()->GetFunction()->GetPrivilegeFunction()->TryUpdateVTMERRMSG()))
+	{
 		LogWarn(SeverityLevelEnum::Severity_Low, Error_Unexpect, LOG_WARN_VtmLoader_GetVTMERRMSG_Failed, "Get errMsgListUpdate config failed.");
 		Sleep(20000);
-
-	LogEvent(Severity_High, Event_VtmLoader_GetVTMERRMSG_Suc, "Get errMsgListUpdate config succeed.");
+		times++;
+	}
+		
+	if(rc == Error_Succeed)
+		LogEvent(Severity_High, Event_VtmLoader_GetVTMERRMSG_Suc, "Get errMsgListUpdate config succeed.");
 	
 	/*
 	t_entity->GetEntityBase()->GetFunction()->GetVTMErrMsg(VtmLoader_DETECT_VERSION_ERR, code, des);