Sobes.tech
Middle+
48

Jak zwolnić zarezerwowane miejsce, jeśli użytkownik nie zapłacił w ciągu 20 minut?

Firmy, w których zadano pytania
ИннотехИннотех

Odpowiedź od AI

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);