Executando verificação de segurança...
2

[Ajuda] Melhor forma de desenvolver uma rotina de importação em lote

Olá pessoal,

Tenho hoje uma aplicação web, onde os colaboradores utilizam uma função de importação em lote, onde um CSV é carregado e enviado diretamente para uma api, que faz todo o resto (ler o arquivo, regras de negócio, inserção dos dados na base...). Hoje, se um CSV com mais de 1000 registros é carregado geralmente o timeout é certo.

Gostaria de opiniões e boas práticas para uma maior performance nesta função, pois preciso possibilitar a carga de arquivos grandes sem problemas.

Imagino que um caminho seria fazer esse processo de forma assíncrona, alguém com experiência nesse tipo de rotina poderia me dar uma luz?

Desde já, agradeço :)

Carregando publicação patrocinada...
1

você precisa dar mais detalhes.
o que são esses mil registros? o que a análise faz? consulta dados externos durante a análise? qual o tamanho desse arquivo de mil registros? o timeout acontece no upload ou na análise? qual linguagem?
mil registros não são tanta coisa a ponto de gerar timeout. devem existir outros erros no seu código.

1

Como você mesmo mencionou, uma possível solução é fazer o processamento de forma assíncrona. Você pode criar um job que processa apenas uma linha do csv, e jogar esses jobs numa fila para serem executados um a um, em vez de tentar processar o csv inteiro na mesma requisição por exemplo.

Eu tive um problema parecido um tempo atrás mas era com exportação, fiz um post aqui sobre a solução que apliquei, acho que pode te dar um norte.

Link do post: https://www.tabnews.com.br/tiagopaes/melhorando-a-eficiencia-com-processamento-assincrono-em-filas