Prezados vim pedir uma orientação aos senhores
Preciso fazer o Upload de um arquivo, abrir e processar os seus dados ( cadastrando os produtos )
-Upload ok, logo apos o Upload aproveito o objeto do tipo MultipartFile[] files e envio para o Serviço assim não preciso abrir o arquivo
-Processar os dados - aqui esta fazendo também mais o motivo de vir aqui e perguntar é que são aproximadamente 14.000 registros ou seja a tela de Upload fica lá parada e isto demora uns 18 minutos… , se bem que o usuário pode a qualquer momento clicar no menu e partir para outra view
Entendo que o Upload é uma coisa e abrir o arquivo percorrer e fazer as atualizações é outra eu estou fazendo tudo na mesma view aproveito o arquivo e já passo ao processamento mais vejo que isto num ta ok
Sobre a demora realmente 18 minutos é muito tempo, estava usando Scanner para percorrer as linhas do arquivo e mudei para o código abaixo mais em termos de perfornance e banco de dados não mudou muito
Stream<String> lines = Files.lines(printUsageFile);
lines.forEach(line -> { .... }
Segue o trecho de código que uso para obter o arquivo e enviar para processamento
@RestController
@RequestMapping("/uploadFile")
class FileController {
@Autowired
private FileStorageService service;
@Autowired
private ImportarService importarService;
@PostMapping
public UploadFile upload(@RequestParam("files[]") MultipartFile[] files) {
service.storeFile(files[0]);
importarService.processar(files[0]);