Przeglądaj źródła

1、新增测试配置项:szSomkingTime,记录冒烟任务开始时间;
2、新增GLOBAL::Init函数,优化GetIniInfo函数。
3、修复自动获取SATService.ini配置的失败的BUG。

scbc 5 lat temu
rodzic
commit
d598869bfe

+ 9 - 2
SATService/SATService/Global.cpp

@@ -167,9 +167,8 @@ namespace GLOBAL
 		return TRUE;
 	}
 
-	int GetIniInfo(IN const TCHAR *szPath , const TCHAR *szIniName )
+	void Init()
 	{
-		Python27Dir();
 		TCHAR szDrive[_MAX_DRIVE] = { 0 };
 		TCHAR szDir[_MAX_DIR] = { 0 };
 		TCHAR szFna[_MAX_FNAME] = { 0 };
@@ -180,6 +179,11 @@ namespace GLOBAL
 		StringCchCat(g_szCurModuleDir, MAX_PATH, szDrive);
 		StringCchCat(g_szCurModuleDir, MAX_PATH, szDir);
 
+		Python27Dir();
+	}
+
+	int GetIniInfo(IN const TCHAR *szPath , const TCHAR *szIniName )
+	{
 		TCHAR szIniPath[MAX_PATH] = {0};
 		if (szPath != NULL && szIniName != NULL)
 			StringCchPrintf(szIniPath, MAX_PATH, _T("%s%s"), szPath, szIniName);
@@ -200,6 +204,9 @@ namespace GLOBAL
 			return -1;
 		}
 
+#ifdef _DEBUG
+		GetPrivateProfileString(_T("SATService"), _T("SomkingTime"), _T(""), g_stSATConfig.szSomkingTime, MAX_PATH, szIniPath);
+#endif
 		// »ñÈ¡·þÎñÆ÷¶ËÐÅÏ¢;
 		GetPrivateProfileString(_T("SATService"), _T("ScriptDir"), _T(""), g_stSATConfig.szScriptDir, MAX_PATH, szIniPath);
 		if ( g_stSATConfig.szScriptDir[_tcslen(g_stSATConfig.szScriptDir)-1] != '\\')

+ 5 - 0
SATService/SATService/Global.h

@@ -82,6 +82,9 @@ namespace GLOBAL
 		TCHAR szAdbRouteAddress[MAX_PATH];
 		// 异步connect超时值;
 		ULONG ulAsynConnectTimeout;
+#ifdef _DEBUG
+		TCHAR szSomkingTime[MAX_PATH];
+#endif
 		// 这个可以忽略不要;
 		typedef struct  __ST_LD__
 		{
@@ -162,6 +165,8 @@ namespace GLOBAL
 
 	//////////////////////////////////////////////////////////////////////////
 	// 全局函数;
+	// 只调用1次;(不要重复调用)
+	extern void Init();
 	// 判断公历是否有效;
 	extern BOOL IsValidDate(IN LPCTSTR lpDate);
 	// 判断农历是否有效;

+ 4 - 42
SATService/SATService/SATExecutor.cpp

@@ -1217,7 +1217,7 @@ bool CSATExecutor::SmokeTaskPretreated(SATHTTP::STTask &task)
 	task.taskInfo.stSomkingCycle.nType = 1;
 	task.taskInfo.stSomkingCycle.nWeek = 0;
 	task.taskInfo.stSomkingCycle.nDay = 0;
-	task.taskInfo.stSomkingCycle.strTime = "16:20";
+	task.taskInfo.stSomkingCycle.strTime = GLOBAL::g_stSATConfig.szSomkingTime;
 
 	bool bTimeIsUp = false;
 	// 获取当前日历时间(1900-01-01开始的Unix时间戳);
@@ -1251,6 +1251,7 @@ bool CSATExecutor::SmokeTaskPretreated(SATHTTP::STTask &task)
 	if ( bTimeIsUp ) {
 		// 下载任务,并添加到队列中;
 		DownloadTask(task);
+		Sleep(60000);
 	}
 
 	return bTimeIsUp;
@@ -1414,7 +1415,7 @@ DWORD CSATExecutor::HearbeatThread(LPVOID lpVoid)
 	
 	do {
 		// 如果未启用电视监听,启用实时读取配置文件;
-		if ( that->m_bStopWathTV ) {
+		if ( !GLOBAL::g_stSATConfig.bWatchTVPort ) {
 			GLOBAL::GetIniInfo();
 		}
 
@@ -1437,46 +1438,7 @@ DWORD CSATExecutor::HearbeatThread(LPVOID lpVoid)
 			std::vector<SATHTTP::STTask>::iterator it = stHeartbeatResp.vtTask.begin();
 			for ( ; it != stHeartbeatResp.vtTask.end(); it++ ) {
 				if (!that->IsTaskExist(*it)) {
-#if 0
-					// 将任务压入队列中;
-					AutoThreadSection ats(&that->m_csTask);
-					// 同时下载任务;
-					GLOBAL::WriteTextLog(GLOBAL::SAT_EXE, _T("【任务脚本下载】:%s"), it->Job.strUniqueId.c_str());
-					std::string host = GLOBAL::g_stSATConfig.szCaseServer;
-					std::string url = host + "/ajaxInteractiveManage!getCaseFileListUrl.action";
-					std::vector<SATHTTP::STCase>::iterator _case = it->vtCases.begin();
-					for ( int i = 1; _case != it->vtCases.end(); _case++) {
-						// 下载脚本;
-						_case->_nCaseStep = i++;
-						SATHTTP::STScriptUrlResp stScriptUrlResp;
-						// 脚本保存路径;
-						strScriptSaveDir = GLOBAL::g_stSATConfig.szScriptDir;
-						strScriptSaveDir.append(it->Job.strProjectName+"\\");
-						strScriptSaveDir.append(it->Job.strUniqueId+"\\");
-						// 把冒号改成下划线;
-						strScriptSaveDir.append(GLOBAL::Replace(it->Job.strDeviceId, "_", ":")+"\\");
-						if ( DownloadScript(url, _case->strId, strScriptSaveDir, stScriptUrlResp) ) {
-							_case->_strFileDir = stScriptUrlResp._strFileDir;
-							_case->_strFileName = stScriptUrlResp._strFileName;
-							_case->_strScriptPath = stScriptUrlResp._strScripFile;
-						} else {
-							// 脚本下载失败时,需要标记脚本为已运行且异常;
-							_case->_nExecutionState = SATHTTP::EXECUTED;
-							_case->_nExecutionResult = SATHTTP::ABNORMAL;
-							GLOBAL::WriteTextLog(GLOBAL::SAT_EXE, _T("【下载脚本失败】:%s"), _case->strCaseName.c_str());
-						}
-					}
-
-					that->TaskRoundSetting(&*it);
-					that->m_vtTask.push_back(*it);
-					// 通知SAT服务器,脚本开始执行;
-					// 待开发:同时将任务存储到数据库中;
-					/*
-					db process
-					*/
-#else
 					that->DownloadTask(*it);
-#endif
 				}
 			}
 		}
@@ -1619,7 +1581,7 @@ DWORD CSATExecutor::WathTVPortThread(PVOID lpVoid)
 	std::vector<std::string> vtNotifyShutdown;
 	DWORD dwTickCount = GetTickCount();
 
-	while( !that->m_bStopWathTV ) {
+	while( true ) {
 		// 实时读取配置文件;
 		GLOBAL::GetIniInfo();
 		if ( !GLOBAL::g_stSATConfig.bWatchTVPort ) {

+ 1 - 0
SATService/SATService/SATService.cpp

@@ -71,6 +71,7 @@ int _tmain(int argc, TCHAR* argv[], TCHAR* envp[])
 	}
 	else
 	{
+		GLOBAL::Init();
 		// TODO: 在此处为应用程序的行为编写代码。
 #if defined RTEST || defined _DEBUG
 		WorkStart();