Reward Rescue

ReferralTrack ne donne à chaque ligne de récompense qu'un seul propriétaire de livraison actif sur l'ensemble des serveurs. Une réclamation réussie reçoit un jeton de propriété unique ; l'achèvement ou la libération sûre n'est accepté que depuis cette tentative exacte. Cela empêche un callback retardé d'un ancien processus serveur de modifier une réclamation plus récente.

Les dépôts Vault et les commandes console ne peuvent pas participer à la transaction de la base de données. Si un serveur s'arrête après une action externe mais avant l'achèvement dans la base de données, ReferralTrack conserve la ligne à l'état STUCK. Il ne retente pas automatiquement cette ligne, car cela pourrait dupliquer de l'argent, des objets ou des commandes.

Commandes #

  • /referraltrack rescue ou /referraltrack rescue list affiche les lignes PENDING et STUCK anciennes.
  • /referraltrack rescue retry <id> confirm <reason> remet dans la file une ancienne ligne STUCK lorsque son nombre de tentatives est inférieur au maximum configuré.
  • /referraltrack rescue cancel <id> confirm <reason> annule définitivement une ancienne ligne en file ou bloquée.

L'expéditeur doit posséder referraltrack.admin et la permission configurée sous reward-rescue.permission (par défaut referraltrack.admin.rescue). Chaque modification réussie enregistre l'ID de la récompense, l'auteur, l'action, le motif et l'horodatage dans la table d'audit de secours.

Procédure d'exploitation sûre #

Avant de retenter une ligne bloquée, vérifiez que le serveur qui possédait la tentative échouée est arrêté ou en bon état et que ses effets sur l'économie/les commandes ne se sont pas produits. S'il est impossible de prouver l'absence de livraison, annulez la ligne et rapprochez manuellement le compte du joueur. Ne réduisez jamais stuck-age-minutes simplement pour forcer une nouvelle tentative plus rapide pendant un ralentissement ou une panne de la base de données.

pending-age-minutes contrôle seulement le moment où les lignes en file apparaissent comme des constats de santé. stuck-age-minutes contrôle le moment où une tentative de traitement inachevée devient éligible à une action du staff. maximum-manual-attempts est un plafond strict de nouvelles tentatives et list-limit borne la sortie de la commande.