Ver Fonte

Z991239-5712 #comment feat: 增加查询任务时间间隔控制

Signed-Off-By: commit-hook
刘文涛80174520 há 11 meses atrás
pai
commit
08c63eff49

+ 26 - 9
Module/mod_UpgradeMgr/UpgradeTaskFSM.cpp

@@ -3954,6 +3954,23 @@ ErrorCodeEnum CUpgradeTaskFSM::loadCenterCfgInfo()
 			LogWarn(Severity_Middle, rc, ERR_TASK_READ_INI_FAIL,  "get CenterSetting.ini StartFlag error");
 			return rc;
 		} 
+		int queryNewTaskInterval = 0;
+		rc = spConfig->ReadConfigValueInt("UpgradeManager", "queryNewTaskInterval", queryNewTaskInterval);
+		if (rc == Error_Succeed) {
+			if (queryNewTaskInterval != 0) {
+				if (queryNewTaskInterval < 10) {
+					m_queryNewTaskInterval = 10;
+				}
+				else {
+					m_queryNewTaskInterval = queryNewTaskInterval;
+				}
+			}
+			DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM).setAPI("loadCenterCfgInfo")("init read CenterSetting.ini queryNewTaskInterval=%d", m_queryNewTaskInterval);
+		}
+		else {
+			LogWarn(Severity_Middle, rc, ERR_TASK_READ_INI_FAIL, "get CenterSetting.ini StartFlag error");
+			return rc;
+		}
 
 		//加载扫描hash配置文件列表
 		rc = spConfig->ReadConfigValue("UpgradeManager", "relativeDir", str);
@@ -6412,7 +6429,7 @@ void CUpgradeTaskFSM::s3_on_entry()
 	ErrorCodeEnum rc = m_pEntity->GetFunction()->PostThreadPoolTask(qTask);
 	if(rc!=Error_Succeed){
 		DbgWithLink(LOG_LEVEL_INFO,LOG_TYPE_SYSTEM)("s3 create QueryNewPreTask fail,wait 4 min retry ,err=%d",(int)rc);
-		ScheduleTimer(1, 4*60*1000);//等待4分钟后再次查询是否有新任务
+		ScheduleTimer(1, m_queryNewTaskInterval*1000);//等待4分钟后再次查询是否有新任务
 	}
 
 }
@@ -6439,8 +6456,8 @@ unsigned int CUpgradeTaskFSM::s3_on_event(FSMEvent* event)
 			Task::QueryNewPreTask* nTask = new Task::QueryNewPreTask(this);
 			ErrorCodeEnum rc = m_pEntity->GetFunction()->PostThreadPoolTask(nTask);
 			if(rc!=Error_Succeed){
-				DbgWithLink(LOG_LEVEL_INFO,LOG_TYPE_SYSTEM)("s3 create QueryNewPreTask fail,wait 4 min retry ,err=%d",(int)rc);
-				ScheduleTimer(1, 4*60*1000);//等待4分钟后再次查询是否有新任务
+				DbgWithLink(LOG_LEVEL_INFO,LOG_TYPE_SYSTEM)("s3 create QueryNewPreTask fail,wait [%d]s retry ,err=%d", m_queryNewTaskInterval, (int)rc);
+				ScheduleTimer(1, m_queryNewTaskInterval *1000);//等待4分钟后再次查询是否有新任务
 			}
 		}else if(event->param1 == 2){
 			//上传hash
@@ -6456,7 +6473,7 @@ unsigned int CUpgradeTaskFSM::s3_on_event(FSMEvent* event)
 			ErrorCodeEnum rc = m_pEntity->GetFunction()->PostThreadPoolTask(nTask);
 			if(rc!=Error_Succeed){
 				DbgWithLink(LOG_LEVEL_INFO,LOG_TYPE_SYSTEM)("s3 create QueryNewContinueTask fail,err=%d",(int)rc);
-				ScheduleTimer(3, 4*60*1000);//等待4分钟过后再次发送
+				ScheduleTimer(3, m_queryNewTaskInterval *1000);//等待4分钟过后再次发送
 			}
 		}
 	}
@@ -6470,7 +6487,7 @@ unsigned int CUpgradeTaskFSM::s3_on_event(FSMEvent* event)
 					m_queryNewTaskCount=0;
 				}
 				if (isAuthSucc()) {
-					ScheduleTimer(1, 4 * 60 * 1000);//等待4分钟后再次查询是否有新任务
+					ScheduleTimer(1, m_queryNewTaskInterval * 1000);//等待4分钟后再次查询是否有新任务
 				}
 				else {
 					ScheduleTimer(1, 30 * 1000);//等待30s后再次查询是否有新任务
@@ -6510,7 +6527,7 @@ unsigned int CUpgradeTaskFSM::s3_on_event(FSMEvent* event)
 			//预查询失败
 			DbgWithLink(LOG_LEVEL_INFO,LOG_TYPE_SYSTEM)("QueryNewPreTask fail,wait 4 min retry");
 			if (isAuthSucc()) {
-				ScheduleTimer(1, 4 * 60 * 1000);//等待4分钟后再次预查询是否有新任务
+				ScheduleTimer(1, m_queryNewTaskInterval * 1000);//等待4分钟后再次预查询是否有新任务
 			}
 			else {
 				ScheduleTimer(1, 30 * 1000);//等待30s后再次查询是否有新任务
@@ -6532,9 +6549,9 @@ unsigned int CUpgradeTaskFSM::s3_on_event(FSMEvent* event)
 		QueryNewContinueTaskEvent* pEvent = (QueryNewContinueTaskEvent*)event;
 		if(pEvent->retParam == 0){
 			//查询失败,继续查询
-			DbgWithLink(LOG_LEVEL_INFO,LOG_TYPE_SYSTEM)("QueryNewContinueTask fail,wait 4 min retry");
+			DbgWithLink(LOG_LEVEL_INFO,LOG_TYPE_SYSTEM)("QueryNewContinueTask fail,wait [%d]s retry",m_queryNewTaskInterval);
 			if (isAuthSucc()) {
-				ScheduleTimer(3, 4 * 60 * 1000);//等待4分钟后再次查询继续新任务
+				ScheduleTimer(3, m_queryNewTaskInterval * 1000);//等待4分钟后再次查询继续新任务
 			}
 			else {
 				ScheduleTimer(3, 30 * 1000);//等待30s后再次查询继续新任务
@@ -6614,7 +6631,7 @@ unsigned int CUpgradeTaskFSM::s3_on_event(FSMEvent* event)
 			//跳出,重新预检查任务
 			DbgWithLink(LOG_LEVEL_INFO,LOG_TYPE_SYSTEM)("QueryNewContinueTask fail,jump to PreTask");
 			if (isAuthSucc()) {
-				ScheduleTimer(1, 4 * 60 * 1000);//等待4分钟后再次预查询是否有新任务
+				ScheduleTimer(1, m_queryNewTaskInterval * 1000);//等待4分钟后再次预查询是否有新任务
 			}
 			else {
 				ScheduleTimer(1, 30 * 1000);//等待30s后再次预查询是否有新任务

+ 2 - 0
Module/mod_UpgradeMgr/UpgradeTaskFSM.h

@@ -346,6 +346,7 @@ public:
 		m_bSwitchFlag = false;
 		m_bRollbackTask = false;
 		m_TempDepUpgradeFlag = false;//默认非适配器升级
+		m_queryNewTaskInterval = 240;//默认查询任务时间间隔
 	}
 	~CUpgradeTaskFSM(){}
 	//具体实现方法
@@ -556,5 +557,6 @@ public:
 	bool m_bRollbackTask;//是否已经处于回退流程。
 
 	bool m_TempDepUpgradeFlag;//临时适配器升级安装的判定标志 true 适配器 false 非适配器
+	int m_queryNewTaskInterval;//查询任务时间间隔,默认是240s
 };
 #endif //RVC_MOD_UPGRADETASK_FSM_H_