Commit 572912a30ee440a84b3fad2627e1348f5a07f59a
1 parent
15823b63
Exists in
desenv
Registro de tempo em logs de debug
Showing
2 changed files
with
48 additions
and
14 deletions
Show diff stats
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 | } | ... | ... |