Árvore de páginas

01. DADOS GERAIS

Produto:

TOTVS Varejo Franquias e Redes

Linha de Produto:

PDV Sync

Segmento:

Varejo

Módulo:Workflow
Função:
País:Brasil
Ticket:
Requisito/Story/Issue (informe o requisito relacionado) :

DVARINT1-14506


02. SITUAÇÃO/REQUISITO

Revisar e corrigir o comportamento das DLTs dentro do fluxo do CH, garantindo que os registros enviados para a DLT sejam devidamente reprocessados, evitando gargalos e permitindo que o job volte a funcionar com estabilidade.

03. SOLUÇÃO

  • Reativação dos Jobs que processam as mensagens de dead-letter;
  • Melhoria no job ReprocessamentoDeadLetterAsync para alterar o status de 2(Enviada p/ reprocessamento) para 1 (Salva) após 10min, evitando assim que mensagens não processadas fiquem perdidas;
    • Essas mensagens serão reprocessadas até que obtenham sucesso ou atinjam o limite de reprocessamentos automático.
  • Inclusão da ordenação descendente (mais recentes p/ mais antigas) por Id no método que retorna a lista de mensagens para o frontend, melhorando assim a visualização das mensangens.

A lógica existente de dead-letter não foi alterado, uma vez que ao realizar os testes de inclusão de mensagem na DL e reprocessamento da mesma, ocorreram com sucesso. Chegou-se a conclusão que o problema levantando na tarefa, ocorreu devido
a baixa performance dos Workers no processamento das mensagens, não tendo a funcionalidade de dead-letter nenhum impacto nos fluxo dos Workers. 

As melhorias nos Workers foram realizados na tarefa: DVARINT1-14447 - Obtendo detalhes do item... STATUS e estas melhorias foram excenciais para o bom funcionamento dos serviços.

Como teste de carga da dead-letter, foi realizado o seguinte teste:

  • Enviou-se 50 mensagens que gerariam erro;
  • Essas mensagens foram inseridas na DL corretamente;
  • Após os jobs de DL rodarem, as mensagens foram corretamente exibidas na tela com status 1;
  • O job de reprocessamento rodou e as mensagens foram novamente reinseridas na DL e os dados das mesmas atualizados no banco;
  • Houve então uma atualização da informação que gerava o erro de processamento e via tela, solicitou-se o reprocessamento das mensagens;
  • As mensagens então foram reprocessadas com sucesso e seu status foi atualizado no banco, encerrando assim o ciclo de tratamento das mensagens.


Nota: Recomenda-se acionar a equipe de Banco de dados para criar uma rotina de expurgo dos dados da tabela MensagemDeadLetter, evitando assim o acumulo desnecessário de mensagens muito antigas.