@Deprecated private boolean shouldIgnoreLeavers(RpcOptions rpcOptions) { return rpcOptions.responseMode() != ResponseMode.SYNCHRONOUS; }
@Deprecated @Override public final CompletableFuture<Map<Address, Response>> invokeRemotelyAsync(Collection<Address> recipients, ReplicableCommand command, RpcOptions rpcOptions) { Collection<Address> targets = recipients != null ? recipients : getTransport().getMembers(); setTopologyId(command); MapResponseCollector collector = MapResponseCollector.ignoreLeavers(shouldIgnoreLeavers(rpcOptions), targets.size()); if (rpcOptions.responseMode().isSynchronous()) { return invokeCommand(targets, command, collector, rpcOptions).toCompletableFuture(); } else { sendToMany(recipients, command, rpcOptions.deliverOrder()); return CompletableFutures.completedEmptyMap(); } }
@Override public final <T> CompletionStage<T> invokeCommands(Collection<Address> targets, Function<Address, ReplicableCommand> commandGenerator, ResponseCollector<T> collector, RpcOptions rpcOptions) { // Split the invocation into multiple unicast requests CommandsRequest<T> action = new CommandsRequest<>(targets, collector); for (Address target : targets) { if (rpcOptions.deliverOrder() != DeliverOrder.TOTAL && target.equals(realOne.getAddress())) continue; invokeCommand(target, commandGenerator.apply(target), SingletonMapResponseCollector.ignoreLeavers(), rpcOptions) .whenComplete(action); } return action.resultFuture; }
TestingUtil.getSegmentForKey(key, cache(1)), 0); final int timeout = 15; RpcOptions rpcOptions = new RpcOptions(timeout, TimeUnit.SECONDS, null, ResponseMode.WAIT_FOR_VALID_RESPONSE, DeliverOrder.NONE);
(rpcOptions != null && rpcOptions.deliverOrder() != DeliverOrder.TOTAL) ? realOne.getAddress() : null; ControlledRequest<T> controlledRequest = new ControlledRequest<>(command, targets, collector, invoker, executor, excluded);
}); when(rpcManager.getSyncRpcOptions()).thenReturn(new RpcOptions(DeliverOrder.NONE, 10000, TimeUnit.MILLISECONDS)); when(rpcManager.blocking(any(CompletionStage.class))).thenAnswer(invocation -> ((CompletionStage) invocation .getArgument(0)).toCompletableFuture().join());
@Override public Map<Address, Response> invokeRemotely(Map<Address, ReplicableCommand> rpcs, RpcOptions options) { long start = timeService.time(); Map<Address, Response> responseMap = actual.invokeRemotely(rpcs, options); for (Entry<Address, ReplicableCommand> entry : rpcs.entrySet()) { // TODO: This is giving a time for all rpcs combined... updateStats(entry.getValue(), options.responseMode().isSynchronous(), timeService.timeDuration(start, NANOSECONDS), Collections.singleton(entry.getKey())); } return responseMap; }
@Override public CompletableFuture<Map<Address, Response>> invokeRemotelyAsync(Collection<Address> recipients, ReplicableCommand rpc, RpcOptions options) { long start = timeService.time(); CompletableFuture<Map<Address, Response>> future = actual.invokeRemotelyAsync(recipients, rpc, options); return future.thenApply(responseMap -> { updateStats(rpc, options.responseMode().isSynchronous(), timeService.timeDuration(start, NANOSECONDS), recipients); return responseMap; }); }
@Override public Map<Address, Response> invokeRemotely(Collection<Address> recipients, ReplicableCommand rpc, RpcOptions options) { long start = timeService.time(); Map<Address, Response> responseMap = actual.invokeRemotely(recipients, rpc, options); updateStats(rpc, options.responseMode().isSynchronous(), timeService.timeDuration(start, NANOSECONDS), recipients); return responseMap; }