Skip to content

Conversation

@pitangainnovare
Copy link
Contributor

O que esse PR faz?

Este Pull Request foca em aprimorar a resiliência e o registro de logs do processamento de arquivos de log. Ele aborda o problema de falhas no processamento de linhas individuais devido a deadlocks de banco de dados ou outros erros de concorrência, que antes poderiam interromper todo o processo de parsing de um arquivo de log.

As principais mudanças incluem:

  • Implementação de retentativas (retries) para operações de banco de dados de criação ou obtenção de objetos (Item, UserAgent, UserSession, ItemAccess) para mitigar deadlocks.
  • Marcação de linhas descartadas devido a erros de banco de dados, registrando-as para análise posterior e evitando a interrupção do processamento do arquivo.
  • Atualização do status do arquivo de log para PROCESSADO apenas após o processamento bem-sucedido de todas as linhas e a exportação das métricas para o Elasticsearch. Isso garante que arquivos com falhas parciais não sejam incorretamente marcados como totalmente processados.
  • Otimização do cache de métricas durante o processamento de logs, removendo UserSession e ItemAccess do cache inicial para evitar sobrecarga de memória e melhorar o desempenho, já que esses objetos são criados/atualizados por linha.
  • Atualização da versão do projeto de 1.11.0 para 1.11.1.

Por onde a revisão poderia começar?

A revisão pode começar pelos seguintes arquivos:

  • metrics/tasks.py: Este arquivo contém a lógica principal de processamento de logs, incluindo as funções modificadas para retentativas e registro de erros.

Como este poderia ser testado manualmente?

N/A

Algum cenário de contexto que queira dar?

N/A

Screenshots

N/A

Quais são tickets relevantes?

N/A

Referências

N/A

@pitangainnovare pitangainnovare merged commit 7acfcaa into scieloorg:main Jun 14, 2025
2 checks passed
@pitangainnovare pitangainnovare deleted the impl/optimize-db-usage-2 branch June 14, 2025 17:24
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant