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 | 2 | |
| 3 | 3 | CacicTimer::CacicTimer(QString dirpath) |
| 4 | 4 | { |
| 5 | - definirDirGercols(dirpath); | |
| 6 | 5 | setApplicationDirPath(dirpath); |
| 7 | 6 | iniciarInstancias(); |
| 8 | 7 | connect(timer,SIGNAL(timeout()),this,SLOT(mslot())); |
| ... | ... | @@ -40,8 +39,21 @@ void CacicTimer::mslot(){ |
| 40 | 39 | QLogger::QLog_Info("Cacic Daemon (Timer)", QString("getTeste() success.")); |
| 41 | 40 | if(getConfig()){ |
| 42 | 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 | 57 | }else{ |
| 46 | 58 | qDebug() << "getConfig() failed. - " + QDateTime::currentDateTime().toLocalTime().toString(); |
| 47 | 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 | 160 | } |
| 149 | 161 | |
| 150 | 162 | |
| 151 | -void CacicTimer::iniciarGercols() | |
| 163 | +void CacicTimer::iniciarModulo() | |
| 152 | 164 | { |
| 153 | 165 | registraInicioColeta(); |
| 154 | 166 | QDir::setCurrent(this->applicationDirPath); |
| ... | ... | @@ -223,6 +235,15 @@ void CacicTimer::definirDirGercols(QString appDirPath){ |
| 223 | 235 | setDirProgram(appDirPath + "/cacic-gercols"); |
| 224 | 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 | 247 | int CacicTimer::getPeriodicidadeExecucao() const |
| 227 | 248 | { |
| 228 | 249 | return periodicidadeExecucao; |
| ... | ... | @@ -234,7 +255,7 @@ void CacicTimer::setPeriodicidadeExecucao(int value) |
| 234 | 255 | } |
| 235 | 256 | |
| 236 | 257 | |
| 237 | -void CacicTimer::verificarModulos(){ | |
| 258 | +QStringList CacicTimer::verificarModulos(){ | |
| 238 | 259 | // Compara o novo arquivo de configuração com um antigo e se forem diferentes |
| 239 | 260 | // mantem o mais recente; caso iguais simplesmente apaga o novo. |
| 240 | 261 | QFile *fileOld; |
| ... | ... | @@ -258,6 +279,9 @@ void CacicTimer::verificarModulos(){ |
| 258 | 279 | delete fileOld; |
| 259 | 280 | delete fileNew; |
| 260 | 281 | lerArquivoConfig(jsonConfig["agentcomputer"].toObject()); |
| 282 | + | |
| 283 | + QStringList nomesModulos; | |
| 284 | + | |
| 261 | 285 | int countExecNotFound = 0; |
| 262 | 286 | QMap<QString, QString>::const_iterator mapIterator = moduleMap.constBegin(); |
| 263 | 287 | while (mapIterator != moduleMap.constEnd()) { |
| ... | ... | @@ -274,7 +298,7 @@ void CacicTimer::verificarModulos(){ |
| 274 | 298 | countExecNotFound++; |
| 275 | 299 | if( countExecNotFound == moduleMap.size() ) { |
| 276 | 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 | 303 | continue; |
| 280 | 304 | } |
| ... | ... | @@ -298,6 +322,11 @@ void CacicTimer::verificarModulos(){ |
| 298 | 322 | fileOld->remove(); |
| 299 | 323 | delete fileOld; |
| 300 | 324 | } |
| 325 | + | |
| 326 | + nomesModulos.append(nomeModulo); | |
| 327 | + | |
| 301 | 328 | mapIterator++; |
| 302 | 329 | } |
| 330 | + | |
| 331 | + return nomesModulos; | |
| 303 | 332 | } | ... | ... |