Назад к вопросам
Иннотех
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);