Skip to content

Aprimoramento do script para downloads paralelos com aumento de velocidade e monitoramento de progresso#33

Open
rafaelsantanna wants to merge 1 commit intorictom:mainfrom
rafaelsantanna:feat/concurrent-downloads
Open

Aprimoramento do script para downloads paralelos com aumento de velocidade e monitoramento de progresso#33
rafaelsantanna wants to merge 1 commit intorictom:mainfrom
rafaelsantanna:feat/concurrent-downloads

Conversation

@rafaelsantanna
Copy link
Copy Markdown

Este PR aprimora o script de download dos dados públicos da Receita Federal para:

  • Utilizar múltiplas threads com ThreadPoolExecutor para realizar downloads paralelos, aumentando a velocidade dos downloads em pelo menos 5 vezes, pois agora é possível baixar 5 arquivos simultaneamente.
  • Adicionar uma barra de progresso geral com a biblioteca tqdm para monitorar o progresso de todos os downloads simultaneamente.
  • Melhorar o uso da memória RAM. Antes, o uso total do meu PC estava em 80% durante os downloads, e agora está em 60%.

As alterações incluem:

  • Importação e uso de ThreadPoolExecutor para downloads paralelos.
  • Implementação de uma barra de progresso geral para acompanhar todos os downloads.
  • Manutenção da funcionalidade existente para listar e baixar os arquivos .zip.

Essas melhorias tornam o processo de download significativamente mais rápido, eficiente em termos de uso de memória, e fornecem um feedback visual do progresso geral.

Por favor, revise e aproveite as mudanças.

… progresso: utiliza `ThreadPoolExecutor` para aumentar a velocidade em 5x, adiciona barra de progresso com `tqdm`, e melhora o uso da memória RAM, reduzindo de 80% para 60%.
@rictom
Copy link
Copy Markdown
Owner

rictom commented Jul 3, 2024

Muito legal. Eu testei aqui, parece funcionar bem. Seria legal implementar um tdqm em paralelo para cada arquivo, como neste artigo: https://pub.aimind.so/download-large-file-in-python-with-beautiful-progress-bar-f4f86b394ad7
porque agora a última linha da informação de progresso fica bagunçada, os downloads estão se sobrepondo.

@rafaelsantanna
Copy link
Copy Markdown
Author

Obrigado pelo feedback @rictom irei me atentar na solução para mostrar o progresso de maneira correta.

@rictom
Copy link
Copy Markdown
Owner

rictom commented Jul 13, 2024

Alterei o script para utilizar a biblioteca parfive para baixar arquivos em paralelo e exibe a barra de progresso tdqm de forma correta, se rodar o script em um console do windows.

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.

2 participants