| Produto: | |
|---|---|
| Linha de Produto: | PDV Sync |
| Segmento: | |
| Módulo: | PDVSync Server Produto |
| Função: | Todas |
| País: | Brasil |
| Ticket: | |
| Requisito/Story/Issue (informe o requisito relacionado) : | |
| Versão: | V3 |
Refatorar o processo de inserção de dados no PDVSync.Server para suportar grandes volumes (até 5 milhões de registros) de forma eficiente, usando BULK INSERT, eliminando gargalos de performance ao receber dados comprimidos com GZIP em lote único..
Na lib do Sync foi criado um mecanismo para que já faça o bulkcopy no banco do PostgresSQL. Esse método está na PostgreHelper.BulkInsertAsync e documentado na sua interface. Para o uso verifique imagem abaixo.

Outro ponto de ajuste foi a lógica para validar o Tennant e se os lotes enviados estão válidos.
No método ProcessarDadosAsync da classe DadoDinamicoAppService foi alterada essa lógica:


No método ValidarDadosDinamicosAsync foi criado um algoritmo para agrupar os Inquilinos e os Lotes para realizar a validação somente uma vez para cada. Além disso foi criado um mecanismo para paralelizar essas verificações.
Essas alterações elevaram aproximadamente em dez vezes a performance do método.