Некоторые паттерны асинхронного программирования, которые можно реализовать с помощью CompletableFuture:
- Запуск асинхронного процесса по сигналу. 2 Сигналом может выступать любое событие, которое не дожидается результата выполнения сценария, а лишь запускает его. 2 Например, HTTP-сообщение или сообщение из брокера. 2
- Запуск события по времени. 2 Например, выполнение перерасчёта данных в базе данных. 2
- Параллельное обращение к разным источникам с последующим объединением результатов. 2 Часто встречается ситуация, когда необходимо обратиться в несколько микросервисов, полученные ответы объединить и в таком виде вернуть результат. 2
- Параллельное выполнение задач без ожидания результата. 2
- Обработка исключений. 35 CompletableFuture предоставляет методы для обеспечения резервного копирования результатов в случае возникновения исключения. 3
- Отмена задач на полпути или завершение задания раньше времени. 3 Для этого CompletableFuture предлагает методы cancel и complete. 3
- Выполнение определённых операций в конце миссии, независимо от успеха или неудачи. 3 Для этого используются методы whenComplete и whenCompleteAsync. 3