use of com.hazelcast.executor.impl.ExecutionCallbackAdapter in project hazelcast by hazelcast.
the class ClientExecutorServiceProxy method submitToRandomWithCallbackInternal.
private <T> void submitToRandomWithCallbackInternal(Data task, ExecutionCallback<T> callback) {
checkNotNull(task, "task should not be null");
UUID uuid = getUUID();
int partitionId = randomPartitionId();
ClientMessage request = ExecutorServiceSubmitToPartitionCodec.encodeRequest(name, uuid, task);
ClientInvocationFuture f = invokeOnPartitionOwner(request, partitionId);
InternalCompletableFuture<T> delegatingFuture = (InternalCompletableFuture<T>) delegatingFuture(f, uuid, partitionId, (T) null);
if (callback != null) {
delegatingFuture.whenCompleteAsync(new ExecutionCallbackAdapter<>(callback)).whenCompleteAsync((v, t) -> {
if (t instanceof RejectedExecutionException) {
callback.onFailure(t);
}
}, ConcurrencyUtil.getDefaultAsyncExecutor());
}
}
use of com.hazelcast.executor.impl.ExecutionCallbackAdapter in project hazelcast by hazelcast.
the class ClientExecutorServiceProxy method submitToTargetInternal.
private <T> void submitToTargetInternal(@Nonnull Data task, Member member, @Nullable ExecutionCallback<T> callback) {
checkNotNull(task, "task should not be null");
UUID uuid = getUUID();
ClientMessage request = ExecutorServiceSubmitToMemberCodec.encodeRequest(name, uuid, task, member.getUuid());
ClientInvocationFuture f = invokeOnTarget(request, member);
InternalCompletableFuture<T> delegatingFuture = (InternalCompletableFuture<T>) delegatingFuture(f, uuid, member, (T) null);
if (callback != null) {
delegatingFuture.whenCompleteAsync(new ExecutionCallbackAdapter<>(callback)).whenCompleteAsync((v, t) -> {
if (t instanceof RejectedExecutionException) {
callback.onFailure(t);
}
}, ConcurrencyUtil.getDefaultAsyncExecutor());
}
}
use of com.hazelcast.executor.impl.ExecutionCallbackAdapter in project hazelcast by hazelcast.
the class ClientExecutorServiceProxy method submitToKeyOwnerInternal.
private <T> Future<T> submitToKeyOwnerInternal(@Nonnull Data task, @Nonnull Object key, @Nullable ExecutionCallback<T> callback) {
checkNotNull(task, "task should not be null");
checkNotNull(key, "key should not be null");
UUID uuid = getUUID();
int partitionId = getPartitionId(key);
ClientMessage request = ExecutorServiceSubmitToPartitionCodec.encodeRequest(name, uuid, task);
ClientInvocationFuture f = invokeOnPartitionOwner(request, partitionId);
InternalCompletableFuture<T> delegatingFuture = (InternalCompletableFuture<T>) delegatingFuture(f, uuid, partitionId, (T) null);
if (callback != null) {
delegatingFuture.whenCompleteAsync(new ExecutionCallbackAdapter<>(callback)).whenCompleteAsync((v, t) -> {
if (t instanceof RejectedExecutionException) {
callback.onFailure(t);
}
}, ConcurrencyUtil.getDefaultAsyncExecutor());
}
return delegatingFuture;
}
Aggregations