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,7 +101,9 @@ class ProcessarPendenciasRN extends InfraAgendamentoTarefa
101 //Processamento de pendências de recebimento dos metadados do processo 101 //Processamento de pendências de recebimento dos metadados do processo
102 $this->objGearmanWorker->addFunction("receberProcedimento", function ($job) { 102 $this->objGearmanWorker->addFunction("receberProcedimento", function ($job) {
103 try{ 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 $numIdentificacaoTramite = intval($job->workload()); 107 $numIdentificacaoTramite = intval($job->workload());
106 $objPenTramiteProcessadoRN = new PenTramiteProcessadoRN(PenTramiteProcessadoRN::STR_TIPO_PROCESSO); 108 $objPenTramiteProcessadoRN = new PenTramiteProcessadoRN(PenTramiteProcessadoRN::STR_TIPO_PROCESSO);
107 109
@@ -109,6 +111,10 @@ class ProcessarPendenciasRN extends InfraAgendamentoTarefa @@ -109,6 +111,10 @@ class ProcessarPendenciasRN extends InfraAgendamentoTarefa
109 $objReceberProcedimentoRN = new ReceberProcedimentoRN(); 111 $objReceberProcedimentoRN = new ReceberProcedimentoRN();
110 $objReceberProcedimentoRN->receberProcedimento($numIdentificacaoTramite); 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 catch(Exception $e){ 119 catch(Exception $e){
114 $this->gravarLogDebug(InfraException::inspecionar($e), 0, true); 120 $this->gravarLogDebug(InfraException::inspecionar($e), 0, true);
rn/ReceberProcedimentoRN.php
@@ -18,6 +18,8 @@ class ReceberProcedimentoRN extends InfraRN @@ -18,6 +18,8 @@ class ReceberProcedimentoRN extends InfraRN
18 $this->objProcessoEletronicoRN = new ProcessoEletronicoRN(); 18 $this->objProcessoEletronicoRN = new ProcessoEletronicoRN();
19 $this->objProcedimentoAndamentoRN = new ProcedimentoAndamentoRN(); 19 $this->objProcedimentoAndamentoRN = new ProcedimentoAndamentoRN();
20 $this->objReceberComponenteDigitalRN = new ReceberComponenteDigitalRN(); 20 $this->objReceberComponenteDigitalRN = new ReceberComponenteDigitalRN();
  21 +
  22 + $this->numTempoUltimoLog = null;
21 } 23 }
22 24
23 protected function inicializarObjInfraIBanco() 25 protected function inicializarObjInfraIBanco()
@@ -110,21 +112,34 @@ class ReceberProcedimentoRN extends InfraRN @@ -110,21 +112,34 @@ class ReceberProcedimentoRN extends InfraRN
110 112
111 $numOrdemComponente = $key + 1; 113 $numOrdemComponente = $key + 1;
112 if(!is_null($componentePendente)){ 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 //Ajuste deverá ser feito em versões futuas 116 //Ajuste deverá ser feito em versões futuas
116 $arrayHash[] = $componentePendente; 117 $arrayHash[] = $componentePendente;
117 118
118 //Obter os dados do componente digital 119 //Obter os dados do componente digital
119 $this->gravarLogDebug("Baixando componente digital $numOrdemComponente", 6); 120 $this->gravarLogDebug("Baixando componente digital $numOrdemComponente", 6);
  121 + $numTempoInicialDownload = microtime(true);
120 $objComponenteDigital = $this->objProcessoEletronicoRN->receberComponenteDigital($parNumIdentificacaoTramite, $componentePendente, $objTramite->protocolo); 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 $arrAnexosComponentes[$key][$componentePendente] = $this->objReceberComponenteDigitalRN->copiarComponenteDigitalPastaTemporaria($objComponenteDigital); 129 $arrAnexosComponentes[$key][$componentePendente] = $this->objReceberComponenteDigitalRN->copiarComponenteDigitalPastaTemporaria($objComponenteDigital);
122 $arrAnexosComponentes[$key]['recebido'] = false; 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 //Valida a integridade do hash 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 $this->objReceberComponenteDigitalRN->validarIntegridadeDoComponenteDigital($arrAnexosComponentes[$key][$componentePendente], 138 $this->objReceberComponenteDigitalRN->validarIntegridadeDoComponenteDigital($arrAnexosComponentes[$key][$componentePendente],
127 $componentePendente, $parNumIdentificacaoTramite, $numOrdemComponente); 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,7 +227,7 @@ class ReceberProcedimentoRN extends InfraRN
212 { 227 {
213 if(count($parArrHashComponentes) > 0){ 228 if(count($parArrHashComponentes) > 0){
214 //Obter dados dos componetes digitais 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 $objComponenteDigitalDTO = new ComponenteDigitalDTO(); 231 $objComponenteDigitalDTO = new ComponenteDigitalDTO();
217 $objComponenteDigitalDTO->setStrNumeroRegistro($parStrNumeroRegistro); 232 $objComponenteDigitalDTO->setStrNumeroRegistro($parStrNumeroRegistro);
218 $objComponenteDigitalDTO->setNumIdTramite($parNumIdentificacaoTramite); 233 $objComponenteDigitalDTO->setNumIdTramite($parNumIdentificacaoTramite);
@@ -246,7 +261,7 @@ class ReceberProcedimentoRN extends InfraRN @@ -246,7 +261,7 @@ class ReceberProcedimentoRN extends InfraRN
246 if($this->documentosPendenteRegistro($dblIdProcedimento, $dblIdDocumento, $strHash)){ 261 if($this->documentosPendenteRegistro($dblIdProcedimento, $dblIdDocumento, $strHash)){
247 $strNomeDocumento = array_key_exists($strHash, $arrStrNomeDocumento) ? $arrStrNomeDocumento[$strHash]['especieNome'] : '[Desconhecido]'; 262 $strNomeDocumento = array_key_exists($strHash, $arrStrNomeDocumento) ? $arrStrNomeDocumento[$strHash]['especieNome'] : '[Desconhecido]';
248 $this->objReceberComponenteDigitalRN->receberComponenteDigital($objComponenteDigitalDTOEnviado); 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 $this->objProcedimentoAndamentoRN->cadastrar(ProcedimentoAndamentoDTO::criarAndamento($strMensagemRecebimento, 'S')); 265 $this->objProcedimentoAndamentoRN->cadastrar(ProcedimentoAndamentoDTO::criarAndamento($strMensagemRecebimento, 'S'));
251 $this->gravarLogDebug($strMensagemRecebimento, 6); 266 $this->gravarLogDebug($strMensagemRecebimento, 6);
252 } 267 }
@@ -1846,14 +1861,6 @@ class ReceberProcedimentoRN extends InfraRN @@ -1846,14 +1861,6 @@ class ReceberProcedimentoRN extends InfraRN
1846 return $objProcedimentoAndamentoDTO; 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 * Verifica se existe documentos com pendência de download de seus componentes digitais 1865 * Verifica se existe documentos com pendência de download de seus componentes digitais
1859 * @param [type] $parNumIdProcedimento Identificador do processo 1866 * @param [type] $parNumIdProcedimento Identificador do processo
@@ -1928,4 +1935,25 @@ class ReceberProcedimentoRN extends InfraRN @@ -1928,4 +1935,25 @@ class ReceberProcedimentoRN extends InfraRN
1928 throw new InfraException($strMensagemPadrao . $strMensagemErro); 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 }