Cancelar recursivamente um allOf CompletableFuture
Se eu tiver
CompletableFuture<Something> future1 = service.request(param1);
CompletableFuture<Something> future2 = service.request(param2);
CompletableFuture<Void> many = CompletableFuture.allOf(future1, future2);
o que vai acontecer quando eu fizermany.cancel()
? Vaifuture1
efuture2
ser cancelado também? Caso contrário, qual seria a maneira mais limpa de conseguir isso? Estou relutante em segurarfuture1
efuture2
, apenas para poder cancelá-los quando eu quiser cancelarmany
.
Alguns antecedentes sobre o motivo pelo qual desejo isso: ao receber um dado, preciso solicitar dados correspondentes, potencialmente futuros, para realizar um cálculo. Se um dado mais recente chegar, desejo cancelar a conclusão do cálculo anterior, porque o resultado será imediatamente substituído pelo novo cálculo.