Sobes.tech
Назад к вопросам
Middle+
6

Как освободить забронированное место если пользователь не оплатил в течение 20 минут?

Компании, где спрашивали
ИннотехИннотех

Ответ от нейросети

sobes.tech AI

Для освобождения забронированного места при неоплате в течение 20 минут можно использовать планировщик задач или таймеры:

  • При бронировании создаётся запись с отметкой времени.
  • Запускается фоновая задача (например, ScheduledExecutorService в Java), которая периодически проверяет просроченные бронирования.
  • Если прошло более 20 минут без оплаты, бронирование снимается, и место освобождается.

Пример с использованием ScheduledExecutorService:

ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(1);
scheduler.scheduleAtFixedRate(() -> {
    // Логика проверки и освобождения мест
    List<Booking> expired = bookingService.findExpiredBookings(Duration.ofMinutes(20));
    expired.forEach(booking -> bookingService.cancelBooking(booking));
}, 0, 5, TimeUnit.MINUTES);