faio / rfb-cnpj

Projeto que faz a leitura dos dados abertos disponibilizado pela Receita Federal do Brasil mensalmente e os converte para um banco de dados compatível com SQLAchemy
37 stars 14 forks source link

Sugestão uso de Threads no banco SQLite #5

Closed danmat10 closed 2 years ago

danmat10 commented 3 years ago

Olá, primeiramente parabéns pelo projeto, consegui rodar o programa sem maiores problemas.

Gostaria de fazer uma sugestão quanto ao uso das Threads. A sua utilização nos downloads é excelente, pois economiza muito tempo, porém, quando efetuo a criação do banco de dados em SQLite, tenho que encerrar o programa e depois iniciar com Threads False e sem o download.

Para melhor funcionamento do programa, poderia ser alterado a variável Threads, logo após o término dos downloads para False, caso a opção de banco de dados seja a SQLite, assim rodaria o script sem interrupções.

Por exemplo: convert_database.create_tables() # Cria as tabelas

if 'sqlite' in database_url: # Muda Threads para false após o término dos downloads threads = False

faio commented 3 years ago

Obrigado pelo elogio!

Eu inicialmente pensei em fazer algo semelhante, mais a intenção é que futuramente faça funcionar corretamente com o SQlLite em threads, por isso não fiz isso.

Será necessário uma espécie de pool e ir controlando as inserções, mais me falta tempo para fazer as modificações necessárias, então estou a espera de uma boa alma para doar algum trabalho e resolver isso, outra coisa que pode ser feito é separar de forma opcional o uso do threads entre download e nas inserções, creio que o problema de thread que temos hoje com o SQLite, pode ocorrer em outros bancos também.

faio commented 2 years ago

Essa alteração foi aplicada no commit 839d17a