Reward Rescue

ReferralTrack da a cada fila de recompensa un único propietario de entrega activo entre todos los servidores. Una reclamación correcta recibe un token de propiedad único; la finalización o la liberación segura solo se acepta desde ese intento exacto. Esto evita que un callback retrasado de un proceso de servidor más antiguo modifique una reclamación más reciente.

Los depósitos de Vault y los comandos de consola no pueden participar en la transacción de la base de datos. Si un servidor se detiene después de una acción externa pero antes de completar la base de datos, ReferralTrack conserva la fila como STUCK. No reintenta esa fila automáticamente, porque hacerlo podría duplicar dinero, objetos o comandos.

Comandos #

  • /referraltrack rescue o /referraltrack rescue list muestra las filas PENDING y STUCK antiguas.
  • /referraltrack rescue retry <id> confirm <reason> devuelve a la cola una fila STUCK antigua cuando su número de intentos es inferior al máximo configurado.
  • /referraltrack rescue cancel <id> confirm <reason> cancela de forma permanente una fila antigua en cola o atascada.

Quien lo ejecuta necesita referraltrack.admin y el permiso configurado en reward-rescue.permission (por defecto referraltrack.admin.rescue). Cada modificación correcta guarda el ID de la recompensa, el autor, la acción, el motivo y la marca de tiempo en la tabla de auditoría de rescate.

Procedimiento operativo seguro #

Antes de reintentar una fila atascada, confirma que el servidor que poseía el intento fallido está detenido o en buen estado y que sus efectos de economía/comandos no se produjeron. Si no se puede demostrar que la entrega no ocurrió, cancela la fila y concilia manualmente la cuenta del jugador. No reduzcas nunca stuck-age-minutes solo para forzar un reintento más rápido durante un retraso o una caída de la base de datos.

pending-age-minutes solo controla cuándo las filas en cola aparecen como hallazgos de estado. stuck-age-minutes controla cuándo un intento de procesamiento incompleto pasa a ser apto para una acción del personal. maximum-manual-attempts es un tope estricto de reintentos y list-limit acota la salida del comando.