wiki/Plataforma Auction/Cron de liquidación Auction: qué sucede al sonar la campana
05Plataforma AuctionLectura mínima 3

Cron de liquidación Auction: qué sucede al sonar la campana

Cómo el cron de final de subasta elige al ganador, captura el depósito, transfiere el inventario Core y escribe la fila de liquidación en lotes acotados.

El cronómetro de la subasta expira. La plataforma no espera a que alguien inicie sesión el lunes por la mañana para descubrir qué pasó. Un RPC limitado respaldado por cron se ejecuta cada pocos minutos y realiza la liquidación de forma determinista en lotes pequeños y bloqueados.

Los pasos

1. Determine el ganador: oferta más alta por encima de la reserva. Si no se cumple la reserva, el lote ingresa al flujo de no venta (consulte el artículo sobre no venta-relista).

2. Capture el depósito: el depósito en archivo del postor ganador se aplica al depósito en garantía H2 que crea el cron. El depósito en garantía se abre en estado retenido inmediatamente si el depósito cubre el valor total del lote, o depósito_pendiente si el comprador necesita recargar.

3. Transfiera el inventario en Core: los activos subyacentes cambian de estado de "listado en subasta" a "vendido-pendiente de envío" y están vinculados al pedido saliente del ganador (creado automáticamente).

4. Cierre el lote: lote.estado = cerrado, marca de tiempo de finalización registrada, fila de auditoría escrita.

5. Escriba la fila de liquidación: el pago del vendedor, la tarifa de la plataforma y cualquier tarifa adicional se calculan mediante el motor de tarifas H6 y se capturan en una fila de liquidación adjunta a la transacción.

6. Notificar a ambas partes: tiempo real + resumen por correo electrónico, según preferencias.

¿Qué pasa si el depósito no es suficiente?

El depósito en garantía se abre pendiente_depósito y el comprador tiene 7 días para recargar. Si no lo hacen, se activa el cron cancel_stale_pending_deposits, el depósito en garantía se cancela automáticamente, se registra un strike contra el comprador (consulte el artículo sobre los tres strikes) y el lote no se publica, momento en el cual el flujo de subasta sin venta F5 puede volver a ponerlo en venta en el mercado.

Por qué un cron, no un webhook

Las subastas

A pueden tener cientos de ofertas en sus últimos segundos. Es difícil hacer que un modelo de webhook por oferta sea atómico; un cron por lote es más simple. El cron se ejecuta cada pocos minutos, reclama un pequeño lote bloqueado de lotes cuya hora de finalización ya pasó (y aún no se ha liquidado) y ejecuta el flujo determinista. El lunes por la mañana hay una fila en la base de datos que dice exactamente lo que sucedió.