Commit 07706691d6448faf5894a40fc6f2698db8aaaf29
1 parent
a8c7a0f6
Exists in
master
Modificações para o serviço executar mais de um módulo de acordo com o que está no getConfig().
Showing
1 changed file
with
35 additions
and
6 deletions
Show diff stats
cacic-daemon/cacicD/cacictimer.cpp
| @@ -2,7 +2,6 @@ | @@ -2,7 +2,6 @@ | ||
| 2 | 2 | ||
| 3 | CacicTimer::CacicTimer(QString dirpath) | 3 | CacicTimer::CacicTimer(QString dirpath) |
| 4 | { | 4 | { |
| 5 | - definirDirGercols(dirpath); | ||
| 6 | setApplicationDirPath(dirpath); | 5 | setApplicationDirPath(dirpath); |
| 7 | iniciarInstancias(); | 6 | iniciarInstancias(); |
| 8 | connect(timer,SIGNAL(timeout()),this,SLOT(mslot())); | 7 | connect(timer,SIGNAL(timeout()),this,SLOT(mslot())); |
| @@ -40,8 +39,21 @@ void CacicTimer::mslot(){ | @@ -40,8 +39,21 @@ void CacicTimer::mslot(){ | ||
| 40 | QLogger::QLog_Info("Cacic Daemon (Timer)", QString("getTeste() success.")); | 39 | QLogger::QLog_Info("Cacic Daemon (Timer)", QString("getTeste() success.")); |
| 41 | if(getConfig()){ | 40 | if(getConfig()){ |
| 42 | QLogger::QLog_Info("Cacic Daemon (Timer)", QString("getConfig() success.")); | 41 | QLogger::QLog_Info("Cacic Daemon (Timer)", QString("getConfig() success.")); |
| 43 | - verificarModulos(); | ||
| 44 | - iniciarGercols(); | 42 | + QStringList nomesModulos = verificarModulos(); |
| 43 | + | ||
| 44 | + if ( !nomesModulos.empty() ) { | ||
| 45 | + | ||
| 46 | + foreach( QString nome, nomesModulos ) { | ||
| 47 | + if( nome == "gercols" ) { | ||
| 48 | + definirDirGercols(getApplicationDirPath()); | ||
| 49 | + iniciarModulo(); | ||
| 50 | + } else if( nome == "mapas" ) { | ||
| 51 | + definirDirMapas(getApplicationDirPath()); | ||
| 52 | + iniciarModulo(); | ||
| 53 | + } | ||
| 54 | + } | ||
| 55 | + } | ||
| 56 | + | ||
| 45 | }else{ | 57 | }else{ |
| 46 | qDebug() << "getConfig() failed. - " + QDateTime::currentDateTime().toLocalTime().toString(); | 58 | qDebug() << "getConfig() failed. - " + QDateTime::currentDateTime().toLocalTime().toString(); |
| 47 | QLogger::QLog_Error("Cacic Daemon (Timer)", "Falha na obtenção do arquivo de configuração."); | 59 | QLogger::QLog_Error("Cacic Daemon (Timer)", "Falha na obtenção do arquivo de configuração."); |
| @@ -148,7 +160,7 @@ void CacicTimer::setDirProgram(const QString &value) | @@ -148,7 +160,7 @@ void CacicTimer::setDirProgram(const QString &value) | ||
| 148 | } | 160 | } |
| 149 | 161 | ||
| 150 | 162 | ||
| 151 | -void CacicTimer::iniciarGercols() | 163 | +void CacicTimer::iniciarModulo() |
| 152 | { | 164 | { |
| 153 | registraInicioColeta(); | 165 | registraInicioColeta(); |
| 154 | QDir::setCurrent(this->applicationDirPath); | 166 | QDir::setCurrent(this->applicationDirPath); |
| @@ -223,6 +235,15 @@ void CacicTimer::definirDirGercols(QString appDirPath){ | @@ -223,6 +235,15 @@ void CacicTimer::definirDirGercols(QString appDirPath){ | ||
| 223 | setDirProgram(appDirPath + "/cacic-gercols"); | 235 | setDirProgram(appDirPath + "/cacic-gercols"); |
| 224 | #endif | 236 | #endif |
| 225 | } | 237 | } |
| 238 | + | ||
| 239 | +void CacicTimer::definirDirMapas(QString appDirPath){ | ||
| 240 | +#if defined (Q_OS_WIN) | ||
| 241 | + setDirProgram(appDirPath + "\cacic-mapas.exe"); | ||
| 242 | +#elif defined (Q_OS_LINUX) | ||
| 243 | + setDirProgram(appDirPath + "/cacic-mapas"); | ||
| 244 | +#endif | ||
| 245 | +} | ||
| 246 | + | ||
| 226 | int CacicTimer::getPeriodicidadeExecucao() const | 247 | int CacicTimer::getPeriodicidadeExecucao() const |
| 227 | { | 248 | { |
| 228 | return periodicidadeExecucao; | 249 | return periodicidadeExecucao; |
| @@ -234,7 +255,7 @@ void CacicTimer::setPeriodicidadeExecucao(int value) | @@ -234,7 +255,7 @@ void CacicTimer::setPeriodicidadeExecucao(int value) | ||
| 234 | } | 255 | } |
| 235 | 256 | ||
| 236 | 257 | ||
| 237 | -void CacicTimer::verificarModulos(){ | 258 | +QStringList CacicTimer::verificarModulos(){ |
| 238 | // Compara o novo arquivo de configuração com um antigo e se forem diferentes | 259 | // Compara o novo arquivo de configuração com um antigo e se forem diferentes |
| 239 | // mantem o mais recente; caso iguais simplesmente apaga o novo. | 260 | // mantem o mais recente; caso iguais simplesmente apaga o novo. |
| 240 | QFile *fileOld; | 261 | QFile *fileOld; |
| @@ -258,6 +279,9 @@ void CacicTimer::verificarModulos(){ | @@ -258,6 +279,9 @@ void CacicTimer::verificarModulos(){ | ||
| 258 | delete fileOld; | 279 | delete fileOld; |
| 259 | delete fileNew; | 280 | delete fileNew; |
| 260 | lerArquivoConfig(jsonConfig["agentcomputer"].toObject()); | 281 | lerArquivoConfig(jsonConfig["agentcomputer"].toObject()); |
| 282 | + | ||
| 283 | + QStringList nomesModulos; | ||
| 284 | + | ||
| 261 | int countExecNotFound = 0; | 285 | int countExecNotFound = 0; |
| 262 | QMap<QString, QString>::const_iterator mapIterator = moduleMap.constBegin(); | 286 | QMap<QString, QString>::const_iterator mapIterator = moduleMap.constBegin(); |
| 263 | while (mapIterator != moduleMap.constEnd()) { | 287 | while (mapIterator != moduleMap.constEnd()) { |
| @@ -274,7 +298,7 @@ void CacicTimer::verificarModulos(){ | @@ -274,7 +298,7 @@ void CacicTimer::verificarModulos(){ | ||
| 274 | countExecNotFound++; | 298 | countExecNotFound++; |
| 275 | if( countExecNotFound == moduleMap.size() ) { | 299 | if( countExecNotFound == moduleMap.size() ) { |
| 276 | QLogger::QLog_Error("Cacic Daemon (Timer)", "Não foi possível encontrar nenhum módulo executável!"); | 300 | QLogger::QLog_Error("Cacic Daemon (Timer)", "Não foi possível encontrar nenhum módulo executável!"); |
| 277 | - return; | 301 | + return QStringList(); |
| 278 | } | 302 | } |
| 279 | continue; | 303 | continue; |
| 280 | } | 304 | } |
| @@ -298,6 +322,11 @@ void CacicTimer::verificarModulos(){ | @@ -298,6 +322,11 @@ void CacicTimer::verificarModulos(){ | ||
| 298 | fileOld->remove(); | 322 | fileOld->remove(); |
| 299 | delete fileOld; | 323 | delete fileOld; |
| 300 | } | 324 | } |
| 325 | + | ||
| 326 | + nomesModulos.append(nomeModulo); | ||
| 327 | + | ||
| 301 | mapIterator++; | 328 | mapIterator++; |
| 302 | } | 329 | } |
| 330 | + | ||
| 331 | + return nomesModulos; | ||
| 303 | } | 332 | } |