01. DADOS GERAIS
| Produto: | |
|---|
| Linha de Produto: | PDV Sync |
|---|
| Segmento: | |
|---|
| Módulo: | PDVSync.Client.Up |
|---|
| Função: | Envio de venda |
|---|
| País: | Brasil |
|---|
| Pull Request |
|
|---|
| Requisito/Story/Issue (informe o requisito relacionado) : | DVARINT1-7317 |
|---|
02. SITUAÇÃO/REQUISITO
Objetivo
Criar uma segurança para evitar bombardeios por parte dos clients do PDVSync.
Descrição
Devemos adicionar os campos de DataUltimoEnvio e QuatidadeTentativano banco do PDV Omnishop para desenvolver um método que bloqueie a subida da venda caso chegue no número de tentativas acordado.
Descrição dos campos
| Campo | Nome no banco | Tipo | Obs |
|---|
| DataUltimoEnvio | data_ultimo_envio | timestamp |
|
| QuantidadeTentativa | quantidade_tentativa | int | Default 0 |
Descrição do método
- Quando o PDVSync.client.up fizer a pesquisa da venda para subir, deverá ocorrer a verificação de quanto foi o ultimo envio e de acordo com o numero de tentativa o tempo para reenviar a venda aumenta gradativamente.
- Exemplo
- Tentativa = 1 reenvio em = 2 seg
- Tentativa = 2 reenvio em = 4 seg
- Tentativa = 3 reenvio em = 8 seg
- Tentativa = 10 reenvio em 1024 seg
- O número máximo de tentativas será 10
- Quando atingir o número máximo de tentativas
- Devera ser setado o campo sincronizado_venda como 99
- Deverá ser enviado um log de erro claro para um endpoint que será definido
Critérios de aceite
- Fazer o envio de um venda onde ocorra algum problema nessa subida, o número máximo de tentativas não deve ser ultrapassado.
- Verificar se as novas tentativas de envio ocorre.
- Verificar se após algumas tentativas o envio foi feito corretamente seguindo o fluxo normal da venda
03. SOLUÇÃO
- Foi adicionado uma trava para evitar o envio contínuo de vendas aos servers do PdVSync.
- De acordo com o número de tentativa e a data do ultimo envio é verificado se essa venda está apta a subir.
- Quando a venda atinge a quantidade máxima de tentativas é gerado um status de 99 para sinalizar que essa venda está com algum problema.