Reward Rescue

O ReferralTrack dá a cada linha de recompensa apenas um dono de entrega ativo entre os servidores. Um resgate bem-sucedido recebe um token de propriedade único; a conclusão ou a liberação segura só é aceita dessa tentativa exata. Isso impede que um callback atrasado de um processo de servidor mais antigo altere um resgate mais novo.

Os depósitos do Vault e os comandos de console não podem participar da transação do banco de dados. Se um servidor parar depois de uma ação externa, mas antes da conclusão no banco de dados, o ReferralTrack preserva a linha como STUCK. Ele não repete essa linha automaticamente, porque isso poderia duplicar dinheiro, itens ou comandos.

Comandos #

  • /referraltrack rescue ou /referraltrack rescue list mostra as linhas PENDING e STUCK antigas.
  • /referraltrack rescue retry <id> confirm <reason> devolve à fila uma linha STUCK antiga quando o número de tentativas está abaixo do máximo configurado.
  • /referraltrack rescue cancel <id> confirm <reason> cancela permanentemente uma linha antiga na fila ou travada.

Quem executa precisa de referraltrack.admin e da permissão configurada em reward-rescue.permission (padrão referraltrack.admin.rescue). Cada alteração bem-sucedida armazena o ID da recompensa, o autor, a ação, o motivo e o carimbo de data e hora na tabela de auditoria do rescue.

Procedimento operacional seguro #

Antes de repetir uma linha travada, confirme que o servidor que era dono da tentativa com falha está parado ou saudável e que os efeitos de economia/comandos dele não ocorreram. Se não for possível provar que a entrega não aconteceu, cancele a linha e concilie manualmente a conta do jogador. Nunca reduza stuck-age-minutes apenas para forçar uma repetição mais rápida durante uma lentidão ou uma queda do banco de dados.

pending-age-minutes controla apenas quando as linhas na fila aparecem como achados de integridade. stuck-age-minutes controla quando uma tentativa de processamento incompleta se torna elegível para uma ação da equipe. maximum-manual-attempts é um teto rígido de repetições e list-limit limita a saída do comando.