Guia

Sistema envia mensagens ou cobranças duplicadas: como resolver?

Mensagens e cobranças duplicadas acontecem quando a mesma tarefa roda mais de uma vez: uma tarefa da fila que é reexecutada porque demorou demais, uma rotina agendada rodando em dois servidores, um webhook processado duas vezes ou um clique duplo. Como afetam clientes diretamente, a primeira ação é conter o problema; depois, tornar cada envio impossível de repetir.

Publicado em · 1 min de leitura

Contenha primeiro

  • Pause a rotina ou fila responsável, se possível
  • Levante quem recebeu em dobro e, em cobranças, estorne ou cancele as duplicadas
  • Comunique os clientes afetados

Causas comuns

CausaComo acontece
Fila com tempo mal configuradoA tarefa demora mais que o tempo de liberação e outro worker a executa de novo
Nova tentativa após falha parcialA mensagem foi enviada, mas a tarefa falhou depois e foi repetida
Agendador em vários servidoresA mesma rotina roda em cada máquina
Webhook repetidoO mesmo evento processado duas vezes (detalhes)
Clique duploBotão de enviar ou cobrar acionado duas vezes

Como prevenir

  • Registrar cada envio e cobrança com uma chave única (cliente + referência + período) e verificar antes de executar
  • Usar chaves de idempotência nos gateways que oferecem esse recurso
  • Configurar o tempo de liberação da fila maior que a duração das tarefas
  • Rodar rotinas agendadas em um único servidor ou com trava compartilhada
  • Separar a etapa de envio do restante da tarefa, para que uma falha posterior não repita o envio

Leia também

Veja filas do Laravel não processam, que explica o tempo de liberação, e registros duplicados. Corrigimos duplicidades em envios e cobranças no nosso serviço de manutenção de sistemas PHP e Laravel.

Continue lendo

Seu concorrente já tem um site. E você?

Receba um orçamento personalizado em minutos. Sem compromisso, sem enrolação.

  • Resposta rápida no WhatsApp
  • Orçamento 100% gratuito
  • Garantia de 7 dias

🔒 Seus dados estão seguros. Sem spam.