Commit f6d5ad6b4dfc39e4e2ae3284a8b2ac250e60e738
1 parent
b3f29df0
Exists in
master
Implementação da periodicidade dinamica
Showing
3 changed files
with
47 additions
and
6 deletions
Show diff stats
cacic-daemon/cacicD/cacicd.cpp
@@ -34,7 +34,8 @@ void cacicD::start() { | @@ -34,7 +34,8 @@ void cacicD::start() { | ||
34 | QLogger::QLog_Info("Cacic Daemon", QString("Servico iniciado em ").append(application()->applicationDirPath()).append(".")); | 34 | QLogger::QLog_Info("Cacic Daemon", QString("Servico iniciado em ").append(application()->applicationDirPath()).append(".")); |
35 | QJsonObject result = ccacic->getJsonFromFile(application()->applicationDirPath().append("/getConfig.json")); | 35 | QJsonObject result = ccacic->getJsonFromFile(application()->applicationDirPath().append("/getConfig.json")); |
36 | if(!result.contains("error") && !result.isEmpty()){ | 36 | if(!result.contains("error") && !result.isEmpty()){ |
37 | - Ocacictimer->iniciarTimer(result["codestatus"].toInt()); | 37 | + Ocacictimer->setPeriodicidadeExecucao(result["codestatus"].toInt()); |
38 | + Ocacictimer->iniciarTimer(); | ||
38 | }else{ | 39 | }else{ |
39 | QLogger::QLog_Error("Cacic Daemon", QString("getConfig.json não encontrado.")); | 40 | QLogger::QLog_Error("Cacic Daemon", QString("getConfig.json não encontrado.")); |
40 | } | 41 | } |
@@ -66,6 +67,7 @@ void cacicD::stop() | @@ -66,6 +67,7 @@ void cacicD::stop() | ||
66 | { | 67 | { |
67 | try{ | 68 | try{ |
68 | QLogger::QLog_Info("Cacic Daemon", QString("Serviço parado.")); | 69 | QLogger::QLog_Info("Cacic Daemon", QString("Serviço parado.")); |
70 | + this->application()->quit(); | ||
69 | } catch (...){ | 71 | } catch (...){ |
70 | QLogger::QLog_Error("Cacic Daemon", QString("Erro desconhecido ao parar o serviço.")); | 72 | QLogger::QLog_Error("Cacic Daemon", QString("Erro desconhecido ao parar o serviço.")); |
71 | } | 73 | } |
cacic-daemon/cacicD/cacictimer.cpp
@@ -16,12 +16,24 @@ CacicTimer::~CacicTimer() | @@ -16,12 +16,24 @@ CacicTimer::~CacicTimer() | ||
16 | delete OCacicComm; | 16 | delete OCacicComm; |
17 | } | 17 | } |
18 | 18 | ||
19 | -void CacicTimer::iniciarTimer(int x) | 19 | +void CacicTimer::reiniciarTimer(){ |
20 | + timer->stop(); | ||
21 | + timer->start(getPeriodicidadeExecucao()); | ||
22 | +} | ||
23 | + | ||
24 | + | ||
25 | +void CacicTimer::iniciarTimer() | ||
20 | { | 26 | { |
21 | - timer->start(x); | 27 | + timer->start(getPeriodicidadeExecucao()); |
22 | } | 28 | } |
23 | 29 | ||
24 | void CacicTimer::mslot(){ | 30 | void CacicTimer::mslot(){ |
31 | + try{ | ||
32 | + verificarPeriodicidadeJson(); | ||
33 | + }catch (...){ | ||
34 | + QLogger::QLog_Info("Cacic Daemon (Timer)", QString("Não foi possivel verificar a periodicidade no getConfig.json")); | ||
35 | + | ||
36 | + } | ||
25 | cMutex->lock(); | 37 | cMutex->lock(); |
26 | QLogger::QLog_Info("Cacic Daemon (Timer)", QString("Semáforo fechado.")); | 38 | QLogger::QLog_Info("Cacic Daemon (Timer)", QString("Semáforo fechado.")); |
27 | if(getTest()){ | 39 | if(getTest()){ |
@@ -190,6 +202,20 @@ void CacicTimer::iniciarInstancias(){ | @@ -190,6 +202,20 @@ void CacicTimer::iniciarInstancias(){ | ||
190 | OCacicComm->setPassword("cacic123"); | 202 | OCacicComm->setPassword("cacic123"); |
191 | } | 203 | } |
192 | 204 | ||
205 | +void CacicTimer::verificarPeriodicidadeJson() | ||
206 | +{ | ||
207 | + QJsonObject result = ccacic->getJsonFromFile(this->applicationDirPath + "/getConfig.json"); | ||
208 | + if(!result.contains("error") && !result.isEmpty()){ | ||
209 | + if(getPeriodicidadeExecucao() != result["codestatus"].toInt()){ | ||
210 | + setPeriodicidadeExecucao(result["codestatus"].toInt()); | ||
211 | + reiniciarTimer(); | ||
212 | + } | ||
213 | + }else{ | ||
214 | + QLogger::QLog_Error("Cacic Daemon (Timer)", QString("getConfig.json com erro ou vazio")); | ||
215 | + } | ||
216 | +} | ||
217 | + | ||
218 | + | ||
193 | void CacicTimer::definirDirGercols(QString appDirPath){ | 219 | void CacicTimer::definirDirGercols(QString appDirPath){ |
194 | #if defined (Q_OS_WIN) | 220 | #if defined (Q_OS_WIN) |
195 | setDirProgram(appDirPath + "\cacic-gercols.exe"); | 221 | setDirProgram(appDirPath + "\cacic-gercols.exe"); |
@@ -197,6 +223,16 @@ void CacicTimer::definirDirGercols(QString appDirPath){ | @@ -197,6 +223,16 @@ void CacicTimer::definirDirGercols(QString appDirPath){ | ||
197 | setDirProgram(appDirPath + "/cacic-gercols"); | 223 | setDirProgram(appDirPath + "/cacic-gercols"); |
198 | #endif | 224 | #endif |
199 | } | 225 | } |
226 | +int CacicTimer::getPeriodicidadeExecucao() const | ||
227 | +{ | ||
228 | + return periodicidadeExecucao; | ||
229 | +} | ||
230 | + | ||
231 | +void CacicTimer::setPeriodicidadeExecucao(int value) | ||
232 | +{ | ||
233 | + periodicidadeExecucao = value; | ||
234 | +} | ||
235 | + | ||
200 | 236 | ||
201 | void CacicTimer::verificarModulos(){ | 237 | void CacicTimer::verificarModulos(){ |
202 | // Compara o novo arquivo de configuração com um antigo e se forem diferentes | 238 | // Compara o novo arquivo de configuração com um antigo e se forem diferentes |
cacic-daemon/cacicD/cacictimer.h
@@ -24,29 +24,32 @@ public: | @@ -24,29 +24,32 @@ public: | ||
24 | CACIC_Computer OCacic_Computer; | 24 | CACIC_Computer OCacic_Computer; |
25 | CCacic *ccacic; | 25 | CCacic *ccacic; |
26 | QMutex *cMutex; | 26 | QMutex *cMutex; |
27 | - | ||
28 | - void iniciarTimer(int x); | 27 | + void iniciarTimer(); |
29 | bool getTest(); | 28 | bool getTest(); |
30 | bool getConfig(); | 29 | bool getConfig(); |
31 | bool Md5IsEqual(QVariant document01,QVariant document02); | 30 | bool Md5IsEqual(QVariant document01,QVariant document02); |
32 | void setApplicationDirPath(const QString &value); | 31 | void setApplicationDirPath(const QString &value); |
33 | QString getApplicationDirPath(); | 32 | QString getApplicationDirPath(); |
34 | void setDirProgram(const QString &value); | 33 | void setDirProgram(const QString &value); |
34 | + void setPeriodicidadeExecucao(int value); | ||
35 | 35 | ||
36 | private: | 36 | private: |
37 | void registraFimColeta(QString msg); | 37 | void registraFimColeta(QString msg); |
38 | void registraInicioColeta(); | 38 | void registraInicioColeta(); |
39 | void verificarModulos(); | 39 | void verificarModulos(); |
40 | + void reiniciarTimer(); | ||
40 | QLogger::QLoggerManager *logManager; | 41 | QLogger::QLoggerManager *logManager; |
41 | QString dirProgram; | 42 | QString dirProgram; |
42 | QString applicationDirPath; | 43 | QString applicationDirPath; |
43 | QString getDirProgram() const; | 44 | QString getDirProgram() const; |
44 | void iniciarGercols(); | 45 | void iniciarGercols(); |
45 | void iniciarInstancias(); | 46 | void iniciarInstancias(); |
47 | + void verificarPeriodicidadeJson(); | ||
46 | void lerArquivoConfig( const QJsonObject &jsonConfig); | 48 | void lerArquivoConfig( const QJsonObject &jsonConfig); |
47 | void definirDirGercols(QString appDirPath); | 49 | void definirDirGercols(QString appDirPath); |
48 | QJsonObject jsonConfig; | 50 | QJsonObject jsonConfig; |
49 | - | 51 | + int periodicidadeExecucao; |
52 | + int getPeriodicidadeExecucao() const; | ||
50 | QList<QMap<QString,QString> > metodosDownload; | 53 | QList<QMap<QString,QString> > metodosDownload; |
51 | QMap<QString, QString> moduleMap; // key = hash md5, value = nome do modulo | 54 | QMap<QString, QString> moduleMap; // key = hash md5, value = nome do modulo |
52 | 55 |