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 |