01. DADOS GERAIS

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) :

DVARINT1-12738

Versão:

V3


02. SITUAÇÃO/REQUISITO

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

03. SOLUÇÃO

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.