Встречается на собеседованиях • сегодня

Как через HTTP обработать запрос, требующий долгого выполнения

Для обработки долгих HTTP-запросов лучше использовать асинхронный подход: 1. **AsyncController** (Spring): ```java @RestController public class AsyncController { @GetMapping("/long-task") public Callable longTask() { return () -> { Thread.sleep(5000); // Долгая операция return "Result"; }; } } ``` 2. **Future/CompletableFuture**: ```java @GetMapping("/async-future") public CompletableFuture asyncFuture() { return CompletableFuture.supplyAsync(() -> { // Долгая операция return "Result"; }); } ``` 3. **WebClient/DeferredResult** для более сложных сценариев Ключевые моменты: - Не блокируйте основной поток - Возвращайте 202 Accepted с ID задачи - Предусмотрите механизм проверки статуса (/status/{id}) - Ограничьте время выполнения таймаутом - Логируйте прогресс выполнения Для очень долгих операций лучше использовать очереди (RabbitMQ/Kafka) с отдельными воркерами.
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы