Commit 572912a30ee440a84b3fad2627e1348f5a07f59a

Authored by Guilherme Andrade Del Cantoni
1 parent 15823b63
Exists in desenv

Registro de tempo em logs de debug

rn/ProcessarPendenciasRN.php
... ... @@ -101,7 +101,9 @@ class ProcessarPendenciasRN extends InfraAgendamentoTarefa
101 101 //Processamento de pendências de recebimento dos metadados do processo
102 102 $this->objGearmanWorker->addFunction("receberProcedimento", function ($job) {
103 103 try{
104   - $this->gravarLogDebug("Processando recebimento de processo [receberProcedimento] com IDT " . $job->workload(), 0, true);
  104 + $this->gravarLogDebug("Processando recebimento de protocolo [receberProcedimento] com IDT " . $job->workload(), 0, true);
  105 + $numTempoInicialRecebimento = microtime(true);
  106 +
105 107 $numIdentificacaoTramite = intval($job->workload());
106 108 $objPenTramiteProcessadoRN = new PenTramiteProcessadoRN(PenTramiteProcessadoRN::STR_TIPO_PROCESSO);
107 109  
... ... @@ -109,6 +111,10 @@ class ProcessarPendenciasRN extends InfraAgendamentoTarefa
109 111 $objReceberProcedimentoRN = new ReceberProcedimentoRN();
110 112 $objReceberProcedimentoRN->receberProcedimento($numIdentificacaoTramite);
111 113 }
  114 +
  115 + $numTempoTotalRecebimento = round(microtime(true) - $numTempoInicialRecebimento, 2);
  116 + $this->gravarLogDebug("Finalizado o recebimento de protocolo com IDT " . $job->workload() . "(Tempo total: {$numTempoTotalRecebimento}s)", 0, true);
  117 +
112 118 }
113 119 catch(Exception $e){
114 120 $this->gravarLogDebug(InfraException::inspecionar($e), 0, true);
... ...
rn/ReceberProcedimentoRN.php
... ... @@ -18,6 +18,8 @@ class ReceberProcedimentoRN extends InfraRN
18 18 $this->objProcessoEletronicoRN = new ProcessoEletronicoRN();
19 19 $this->objProcedimentoAndamentoRN = new ProcedimentoAndamentoRN();
20 20 $this->objReceberComponenteDigitalRN = new ReceberComponenteDigitalRN();
  21 +
  22 + $this->numTempoUltimoLog = null;
21 23 }
22 24  
23 25 protected function inicializarObjInfraIBanco()
... ... @@ -110,21 +112,34 @@ class ReceberProcedimentoRN extends InfraRN
110 112  
111 113 $numOrdemComponente = $key + 1;
112 114 if(!is_null($componentePendente)){
113   - //TODO: Necessário otimizar trecho abaixo para evitar download desnecessário de documentos
114   - //TODO: Download do componente digital é realizado, mesmo já existindo na base de dados, devido a comportamento obrigatório do Barramento para mudança de status
  115 + //Download do componente digital é realizado, mesmo já existindo na base de dados, devido a comportamento obrigatório do Barramento para mudança de status
115 116 //Ajuste deverá ser feito em versões futuas
116 117 $arrayHash[] = $componentePendente;
117 118  
118 119 //Obter os dados do componente digital
119 120 $this->gravarLogDebug("Baixando componente digital $numOrdemComponente", 6);
  121 + $numTempoInicialDownload = microtime(true);
120 122 $objComponenteDigital = $this->objProcessoEletronicoRN->receberComponenteDigital($parNumIdentificacaoTramite, $componentePendente, $objTramite->protocolo);
  123 + $numTempoTotalDownload = round(microtime(true) - $numTempoInicialDownload, 2);
  124 + $numTamanhoArquivoKB = round(strlen($objComponenteDigital->conteudoDoComponenteDigital) / 1024, 2);
  125 + $numVelocidade = round($numTamanhoArquivoKB / $numTempoTotalDownload, 2);
  126 + $this->gravarLogDebug("Tempo total de download de $numTamanhoArquivoKB kb: {$numTempoTotalDownload}s ({$numVelocidade} kb/s)", 7);
  127 +
  128 + $numTempoInicialArmazenamento = microtime(true);
121 129 $arrAnexosComponentes[$key][$componentePendente] = $this->objReceberComponenteDigitalRN->copiarComponenteDigitalPastaTemporaria($objComponenteDigital);
122 130 $arrAnexosComponentes[$key]['recebido'] = false;
  131 + $numTempoTotalArmazenamento = round(microtime(true) - $numTempoInicialArmazenamento, 2);
  132 + $numVelocidade = round($numTamanhoArquivoKB / $numTempoTotalArmazenamento, 2);
  133 + $this->gravarLogDebug("Tempo total de armazenamento em disco: {$numTempoTotalArmazenamento}s ({$numVelocidade} kb/s)", 7);
123 134  
124 135 //Valida a integridade do hash
125   - $this->gravarLogDebug("Validando integridade de componente digital $numOrdemComponente", 6);
  136 + $this->gravarLogDebug("Validando integridade de componente digital $numOrdemComponente", 7);
  137 + $numTempoInicialValidacao = microtime(true);
126 138 $this->objReceberComponenteDigitalRN->validarIntegridadeDoComponenteDigital($arrAnexosComponentes[$key][$componentePendente],
127 139 $componentePendente, $parNumIdentificacaoTramite, $numOrdemComponente);
  140 + $numTempoTotalValidacao = round(microtime(true) - $numTempoInicialValidacao, 2);
  141 + $numVelocidade = round($numTamanhoArquivoKB / $numTempoTotalValidacao, 2);
  142 + $this->gravarLogDebug("Tempo total de validação de integridade: {$numTempoTotalValidacao}s ({$numVelocidade} kb/s)", 7);
128 143 }
129 144 }
130 145  
... ... @@ -212,7 +227,7 @@ class ReceberProcedimentoRN extends InfraRN
212 227 {
213 228 if(count($parArrHashComponentes) > 0){
214 229 //Obter dados dos componetes digitais
215   - $this->gravarLogDebug("Iniciando o recebimento dos componentes digitais pendentes", 4);
  230 + $this->gravarLogDebug("Iniciando o armazenamento dos componentes digitais pendentes", 4);
216 231 $objComponenteDigitalDTO = new ComponenteDigitalDTO();
217 232 $objComponenteDigitalDTO->setStrNumeroRegistro($parStrNumeroRegistro);
218 233 $objComponenteDigitalDTO->setNumIdTramite($parNumIdentificacaoTramite);
... ... @@ -246,7 +261,7 @@ class ReceberProcedimentoRN extends InfraRN
246 261 if($this->documentosPendenteRegistro($dblIdProcedimento, $dblIdDocumento, $strHash)){
247 262 $strNomeDocumento = array_key_exists($strHash, $arrStrNomeDocumento) ? $arrStrNomeDocumento[$strHash]['especieNome'] : '[Desconhecido]';
248 263 $this->objReceberComponenteDigitalRN->receberComponenteDigital($objComponenteDigitalDTOEnviado);
249   - $strMensagemRecebimento = sprintf('Recebendo %s %s', $strNomeDocumento, $objComponenteDigitalDTOEnviado->getStrProtocoloDocumentoFormatado());
  264 + $strMensagemRecebimento = sprintf('Armazenando componente do documento %s %s', $strNomeDocumento, $objComponenteDigitalDTOEnviado->getStrProtocoloDocumentoFormatado());
250 265 $this->objProcedimentoAndamentoRN->cadastrar(ProcedimentoAndamentoDTO::criarAndamento($strMensagemRecebimento, 'S'));
251 266 $this->gravarLogDebug($strMensagemRecebimento, 6);
252 267 }
... ... @@ -1846,14 +1861,6 @@ class ReceberProcedimentoRN extends InfraRN
1846 1861 return $objProcedimentoAndamentoDTO;
1847 1862 }
1848 1863  
1849   - private function gravarLogDebug($strMensagem, $numIdentacao=0)
1850   - {
1851   - $strDataLog = date("d/m/Y H:i:s");
1852   - $strLog = sprintf("[%s] [PROCESSAMENTO] %s %s", $strDataLog, str_repeat(" ", $numIdentacao * 4), $strMensagem);
1853   - InfraDebug::getInstance()->gravar($strLog);
1854   - }
1855   -
1856   -
1857 1864 /**
1858 1865 * Verifica se existe documentos com pendência de download de seus componentes digitais
1859 1866 * @param [type] $parNumIdProcedimento Identificador do processo
... ... @@ -1928,4 +1935,25 @@ class ReceberProcedimentoRN extends InfraRN
1928 1935 throw new InfraException($strMensagemPadrao . $strMensagemErro);
1929 1936 }
1930 1937 }
  1938 +
  1939 + private function gravarLogDebug($strMensagem, $numIdentacao=0, $bolLogTempoProcessamento=true)
  1940 + {
  1941 + $strDataLog = date("d/m/Y H:i:s");
  1942 + $strLog = sprintf("[%s] [PROCESSAMENTO] %s %s", $strDataLog, str_repeat(" ", $numIdentacao * 4), $strMensagem);
  1943 +
  1944 + //Registro de tempo de processamento desde último log
  1945 + if($bolLogTempoProcessamento){
  1946 + $numTempoFinal = microtime(true);
  1947 + if(is_null($this->numTempoUltimoLog)){
  1948 + //Inicializa contador de tempo de processamento
  1949 + $this->numTempoUltimoLog = $numTempoFinal;
  1950 + } else {
  1951 + $numTempoProcessamento = round($numTempoFinal - $this->numTempoUltimoLog, 2);
  1952 + $strLog .= " [tempo: +{$numTempoProcessamento}s]";
  1953 + $this->numTempoUltimoLog = $numTempoFinal;
  1954 + }
  1955 + }
  1956 +
  1957 + InfraDebug::getInstance()->gravar($strLog);
  1958 + }
1931 1959 }
... ...