Skip to content

Conversation

@pitangainnovare
Copy link
Contributor

O que esse PR faz?

Este PR foca em aprimorar a flexibilidade e clareza das tarefas relacionadas ao processamento de logs e relatórios. Ele introduz o parâmetro days_to_go_back em três tarefas assíncronas principais:

  • task_parse_logs: responsável por processar os arquivos de log.
  • task_check_missing_logs_for_date_range: verifica logs ausentes em um determinado período.
  • task_log_files_count_status_report: gera relatórios de contagem de arquivos de log.

Com a inclusão desse parâmetro, agora é possível definir o período de tempo para essas tarefas especificando um número de dias a partir da data atual, simplificando a configuração. Além disso, a descrição do método que obtém os intervalos de datas (get_date_range_str) foi melhorada para maior clareza.

Por fim, a tarefa task_compute_metrics foi renomeada para task_index_documents para refletir melhor sua função de indexação de métricas, e a versão da aplicação foi atualizada para 1.10.0.

Por onde a revisão poderia começar?

A revisão pode começar pelo arquivo core/utils/date_utils.py para verificar a descrição aprimorada do método get_date_range_str. Em seguida, os arquivos log_manager/tasks.py e metrics/tasks.py devem ser analisados para observar a inclusão e o uso do novo parâmetro days_to_go_back nas respectivas tarefas, bem como a mudança de nome da tarefa task_compute_metrics para task_index_documents em metrics/tasks.py. O arquivo VERSION também pode ser verificado para confirmar a atualização da versão.

Como este poderia ser testado manualmente?

Para testar manualmente as alterações, siga os passos abaixo:

  1. Acesse o shell do Django no seu ambiente de desenvolvimento:

    docker compose -f local.yml exec django bash
    python manage.py shell
  2. Execute as tarefas assíncronas com o novo parâmetro days_to_go_back:

    • Para verificar logs ausentes:
      from log_manager.tasks import task_check_missing_logs_for_date_range
      task_check_missing_logs_for_date_range.delay(collections=['scl',], days_to_go_back=7)
    • Para gerar relatório de contagem de arquivos de log:
      from log_manager.tasks import task_log_files_count_status_report
      task_log_files_count_status_report.delay(collections=['scl',], days_to_go_back=7)
    • Para processar logs (indexar métricas):
      from metrics.tasks import task_parse_logs
      task_parse_logs.delay(collections=['scl',], days_to_go_back=7)
    • Para indexar métricas (nome da tarefa atualizado):
      from metrics.tasks import task_index_documents
      task_index_documents.delay(collections=['scl',], days_to_go_back=7)
  3. Verifique os logs dos containers Celery:
    Monitore os logs do celery_worker (docker compose logs celery_worker) para confirmar que as tarefas foram enfileiradas e executadas com sucesso, utilizando o parâmetro days_to_go_back conforme esperado.

Algum cenário de contexto que queira dar?

Anteriormente, ao executar tarefas relacionadas a logs e métricas, era necessário sempre fornecer as datas de início (from_date) e fim (until_date) de forma explícita. Isso tornava a execução menos flexível para cenários onde se desejava simplesmente processar dados dos últimos N dias. A inclusão do parâmetro days_to_go_back oferece uma maneira mais intuitiva e rápida de definir esses períodos, especialmente para automação ou execuções rotineiras que sempre olham para um histórico recente.

A renomeação da tarefa task_compute_metrics para task_index_documents visa alinhar o nome da função com sua operação real, que é a indexação de documentos no Elasticsearch, e não apenas o cálculo de métricas.

Screenshots

Não aplicável, pois as alterações são puramente de backend e não afetam a interface gráfica.

Quais são tickets relevantes?

Nenhum ticket específico está associado a este PR.

Referências

N/A

@pitangainnovare pitangainnovare merged commit ab483c2 into scieloorg:main Jun 12, 2025
2 checks passed
@pitangainnovare pitangainnovare deleted the impl/include-params-days-to-go-back branch June 12, 2025 14:38
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.

Flexibilizar tasks que processam, verificam e reportam situação de logs

2 participants