伏黒甚爾
JCHJava Community | Help. Code. Learn.
•Created by 伏黒甚爾 on 3/7/2025 in #java-help
Query: Understanding `CompletableFuture.anyOf()` Behavior — First Valid or Fastest Response?
Context:
In a task to validate element usage across multiple microservices (MSAs) before deletion, I use parallel API calls with
- Does
- Any best practices for handling parallel API calls with validation?
CompletableFuture
to speed up the process. I need to return as soon as I receive the first confirmation that the element is in use, but I’m unclear about the behavior of CompletableFuture.anyOf()
.
Refer to attached file for details.
The Issue:
- First Approach: Works initially, but after the first deletion, the ExecutorService
is shut down, causing issues with subsequent calls.
- Second Approach: Using CompletableFuture.anyOf()
to handle Feign calls. The question is:
- Does anyOf()
return the result of the first valid response (indicating the element is in use)?
- Or does it return based on the fastest call, regardless of validity?
Goal: Ensure execution stops and returns the first valid result, not just the fastest.
Question:- Does
CompletableFuture.anyOf()
prioritize the first valid response or just the fastest one?- Any best practices for handling parallel API calls with validation?
6 replies