Commit accd06327a09fa4865d91a17c6e2ea0d01c48006

Authored by Guilherme Andrade Del Cantoni
1 parent 2fc5620f

[Fixed #92] Ajuste para não interromper monitoramento de pendências em situações de falha

rn/PendenciasTramiteRN.php
... ... @@ -71,17 +71,22 @@ class PendenciasTramiteRN extends InfraRN {
71 71 $arrQuantidadeErrosTramite = array();
72 72  
73 73 while (true) {
74   - $this->gravarLogDebug('Recuperando lista de pendências do PEN', 1);
75   - $arrObjPendenciasDTO = $this->obterPendenciasTramite();
76   - foreach ($arrObjPendenciasDTO as $objPendenciaDTO) {
77   - $mensagemLog = sprintf(">>> Enviando pendência %d (status %s) para fila de processamento",
78   - $objPendenciaDTO->getNumIdentificacaoTramite(), $objPendenciaDTO->getStrStatus());
79   - $this->gravarLogDebug($mensagemLog, 3, true);
80   - $this->enviarPendenciaFilaProcessamento($objPendenciaDTO);
  74 + try {
  75 + $this->gravarLogDebug('Recuperando lista de pendências do PEN', 1);
  76 + $arrObjPendenciasDTO = $this->obterPendenciasTramite();
  77 + foreach ($arrObjPendenciasDTO as $objPendenciaDTO) {
  78 + $mensagemLog = sprintf(">>> Enviando pendência %d (status %s) para fila de processamento",
  79 + $objPendenciaDTO->getNumIdentificacaoTramite(), $objPendenciaDTO->getStrStatus());
  80 + $this->gravarLogDebug($mensagemLog, 3, true);
  81 + $this->enviarPendenciaFilaProcessamento($objPendenciaDTO);
  82 + }
  83 + } catch (Exception $e) {
  84 + //Apenas registra a falha no log do sistema e reinicia o ciclo de requisição
  85 + LogSEI::getInstance()->gravar(InfraException::inspecionar($e));
  86 + } finally {
  87 + $this->gravarLogDebug("Reiniciando monitoramento de pendências", 1);
  88 + sleep(5);
81 89 }
82   -
83   - $this->gravarLogDebug("Reiniciando monitoramento de pendências", 1);
84   - sleep(5);
85 90 }
86 91 }
87 92 catch(Exception $e) {
... ...
rn/ProcessarPendenciasRN.php
... ... @@ -33,9 +33,9 @@ class ProcessarPendenciasRN extends InfraAgendamentoTarefa
33 33 ini_set('max_execution_time','0');
34 34 ini_set('memory_limit','-1');
35 35  
36   - InfraDebug::getInstance()->setBolLigado(false);
  36 + InfraDebug::getInstance()->setBolLigado(true);
37 37 InfraDebug::getInstance()->setBolDebugInfra(false);
38   - InfraDebug::getInstance()->setBolEcho(false);
  38 + InfraDebug::getInstance()->setBolEcho(true);
39 39 InfraDebug::getInstance()->limpar();
40 40  
41 41 PENIntegracao::validarCompatibilidadeModulo();
... ...
rn/ReceberComponenteDigitalRN.php
... ... @@ -100,11 +100,14 @@ class ReceberComponenteDigitalRN extends InfraRN
100 100 $strHashDoArquivo = hash_file("sha256", $strCaminhoAnexo, true);
101 101  
102 102 if(strcmp($strHashInformado, $strHashDoArquivo) != 0) {
103   -
104   - $this->objProcessoEletronicoRN->recusarTramite($parNumIdentificacaoTramite, "Hash do componente digital não confere com o valor informado pelo remetente.", ProcessoEletronicoRN::MTV_RCSR_TRAM_CD_CORROMPIDO);
105   -
106   - // Adiciono nos detalhes o nome do método para poder manipular o cache
107   - throw new InfraException("Hash do componente digital não confere com o valor informado pelo remetente.", null, __METHOD__);
  103 + $strMensagem = "Hash do componente digital não confere com o valor informado pelo remetente.";
  104 + $this->objProcessoEletronicoRN->recusarTramite($parNumIdentificacaoTramite, $strMensagem, ProcessoEletronicoRN::MTV_RCSR_TRAM_CD_CORROMPIDO);
  105 +
  106 + $strHashInformadoBase64 = base64_encode($strHashInformado);
  107 + $strHashDoArquivoBase64 = base64_encode($strHashDoArquivo);
  108 + $strDetalhes = "Hash do componente digital informado pelo PEN: $strHashInformadoBase64 \n";
  109 + $strDetalhes .= "Hash do componente digital calculado pelo SEI: $strHashDoArquivoBase64 \n";
  110 + throw new InfraException($strMensagem, null, $strDetalhes);
108 111 }
109 112 }
110 113  
... ...
rn/ReceberProcedimentoRN.php
... ... @@ -217,7 +217,7 @@ class ReceberProcedimentoRN extends InfraRN
217 217 }
218 218 }
219 219 }
220   - //$this->fecharProcedimentoEmOutraUnidades($objProcedimentoDTO, $objMetadadosProcedimento);
  220 +
221 221 $this->gravarLogDebug("Enviando recibo de conclusão do trâmite $parNumIdentificacaoTramite", 6);
222 222 $objEnviarReciboTramiteRN = new EnviarReciboTramiteRN();
223 223 $objEnviarReciboTramiteRN->enviarReciboTramiteProcesso($parNumIdentificacaoTramite, $arrayHash);
... ...