Middle+
Como libertar um lugar reservado se o utilizador não pagar dentro de 20 minutos?
sobes.tech IA
Resposta da IA
Для освобождения забронированного места при неоплате в течение 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);