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 | } | ... | ... |