Commit f6d5ad6b4dfc39e4e2ae3284a8b2ac250e60e738

Authored by LightBase Consultoria em Software Publico
1 parent b3f29df0
Exists in master

Implementação da periodicidade dinamica

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