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 34 QLogger::QLog_Info("Cacic Daemon", QString("Servico iniciado em ").append(application()->applicationDirPath()).append("."));
35 35 QJsonObject result = ccacic->getJsonFromFile(application()->applicationDirPath().append("/getConfig.json"));
36 36 if(!result.contains("error") && !result.isEmpty()){
37   - Ocacictimer->iniciarTimer(result["codestatus"].toInt());
  37 + Ocacictimer->setPeriodicidadeExecucao(result["codestatus"].toInt());
  38 + Ocacictimer->iniciarTimer();
38 39 }else{
39 40 QLogger::QLog_Error("Cacic Daemon", QString("getConfig.json não encontrado."));
40 41 }
... ... @@ -66,6 +67,7 @@ void cacicD::stop()
66 67 {
67 68 try{
68 69 QLogger::QLog_Info("Cacic Daemon", QString("Serviço parado."));
  70 + this->application()->quit();
69 71 } catch (...){
70 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 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 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 37 cMutex->lock();
26 38 QLogger::QLog_Info("Cacic Daemon (Timer)", QString("Semáforo fechado."));
27 39 if(getTest()){
... ... @@ -190,6 +202,20 @@ void CacicTimer::iniciarInstancias(){
190 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 219 void CacicTimer::definirDirGercols(QString appDirPath){
194 220 #if defined (Q_OS_WIN)
195 221 setDirProgram(appDirPath + "\cacic-gercols.exe");
... ... @@ -197,6 +223,16 @@ void CacicTimer::definirDirGercols(QString appDirPath){
197 223 setDirProgram(appDirPath + "/cacic-gercols");
198 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 237 void CacicTimer::verificarModulos(){
202 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 24 CACIC_Computer OCacic_Computer;
25 25 CCacic *ccacic;
26 26 QMutex *cMutex;
27   -
28   - void iniciarTimer(int x);
  27 + void iniciarTimer();
29 28 bool getTest();
30 29 bool getConfig();
31 30 bool Md5IsEqual(QVariant document01,QVariant document02);
32 31 void setApplicationDirPath(const QString &value);
33 32 QString getApplicationDirPath();
34 33 void setDirProgram(const QString &value);
  34 + void setPeriodicidadeExecucao(int value);
35 35  
36 36 private:
37 37 void registraFimColeta(QString msg);
38 38 void registraInicioColeta();
39 39 void verificarModulos();
  40 + void reiniciarTimer();
40 41 QLogger::QLoggerManager *logManager;
41 42 QString dirProgram;
42 43 QString applicationDirPath;
43 44 QString getDirProgram() const;
44 45 void iniciarGercols();
45 46 void iniciarInstancias();
  47 + void verificarPeriodicidadeJson();
46 48 void lerArquivoConfig( const QJsonObject &jsonConfig);
47 49 void definirDirGercols(QString appDirPath);
48 50 QJsonObject jsonConfig;
49   -
  51 + int periodicidadeExecucao;
  52 + int getPeriodicidadeExecucao() const;
50 53 QList<QMap<QString,QString> > metodosDownload;
51 54 QMap<QString, QString> moduleMap; // key = hash md5, value = nome do modulo
52 55  
... ...