Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

rafaelsantanna
Copy link

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
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
Author

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

@rictom
Copy link
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