Reward Rescue
ReferralTrack gibt jeder Belohnungszeile serverübergreifend nur einen aktiven Zustellungsbesitzer. Ein erfolgreicher Anspruch erhält ein eindeutiges Besitz-Token; Abschluss oder sichere Freigabe werden nur von genau diesem Versuch akzeptiert. Das verhindert, dass ein verspäteter Callback eines älteren Serverprozesses einen neueren Anspruch verändert.
Vault-Einzahlungen und Konsolenbefehle können nicht an der Datenbanktransaktion teilnehmen. Hält ein Server nach einer externen Aktion, aber vor dem Abschluss in der Datenbank an, bewahrt ReferralTrack die Zeile als STUCK auf. Es wiederholt diese Zeile nicht automatisch, weil das Geld, Gegenstände oder Befehle duplizieren könnte.
Befehle #
/referraltrack rescueoder/referraltrack rescue listzeigt gealtertePENDING- undSTUCK-Zeilen./referraltrack rescue retry <id> confirm <reason>stellt eine alteSTUCK-Zeile zurück in die Warteschlange, wenn ihre Versuchsanzahl unter dem konfigurierten Maximum liegt./referraltrack rescue cancel <id> confirm <reason>bricht eine gealterte Zeile in der Warteschlange oder eine festhängende Zeile dauerhaft ab.
Der Absender benötigt referraltrack.admin und die unter reward-rescue.permission konfigurierte Berechtigung (Standard referraltrack.admin.rescue). Jede erfolgreiche Änderung speichert Belohnungs-ID, Akteur, Aktion, Grund und Zeitstempel in der Rescue-Audit-Tabelle.
Sicheres Vorgehen #
Bevor du eine festhängende Zeile wiederholst, bestätige, dass der Server, dem der fehlgeschlagene Versuch gehörte, gestoppt oder gesund ist und dass seine Wirtschafts-/Befehlswirkungen nicht eingetreten sind. Lässt sich nicht nachweisen, dass die Zustellung ausblieb, brich die Zeile ab und gleiche das Konto des Spielers manuell ab. Senke stuck-age-minutes nie nur, um bei einer Verzögerung oder einem Datenbankausfall eine schnellere Wiederholung zu erzwingen.
pending-age-minutes steuert nur, wann Zeilen in der Warteschlange als Zustandsbefunde erscheinen. stuck-age-minutes steuert, wann ein unvollständiger Bearbeitungsversuch für eine Team-Aktion in Frage kommt. maximum-manual-attempts ist eine feste Obergrenze für Wiederholungen, und list-limit begrenzt die Befehlsausgabe.