@Override public <V> IScheduledFuture<V> getScheduledFuture(ScheduledTaskHandler handler) { ClientScheduledFutureProxy<V> futureProxy = new ClientScheduledFutureProxy<V>(handler, getContext()); return futureProxy; }
@Override public <V> IScheduledFuture<V> getScheduledFuture(ScheduledTaskHandler handler) { ClientScheduledFutureProxy<V> futureProxy = new ClientScheduledFutureProxy<V>(handler, getContext()); return futureProxy; }
private <V> IScheduledFuture<V> createFutureProxy(ScheduledTaskHandler handler) { return new ClientScheduledFutureProxy<V>(handler, getContext()); }
private <V> IScheduledFuture<V> createFutureProxy(ScheduledTaskHandler handler) { return new ClientScheduledFutureProxy<V>(handler, getContext()); }
@Override public Map<Member, IScheduledFuture<?>> scheduleOnAllMembersAtFixedRate(Runnable command, long initialDelay, long period, TimeUnit unit) { return scheduleOnMembersAtFixedRate(command, getContext().getClusterService().getMemberList(), initialDelay, period, unit); }
@Override public <V> Map<Member, IScheduledFuture<V>> scheduleOnAllMembers(Callable<V> command, long delay, TimeUnit unit) { return scheduleOnMembers(command, getContext().getClusterService().getMemberList(), delay, unit); }
@Override public Map<Member, IScheduledFuture<?>> scheduleOnAllMembersAtFixedRate(Runnable command, long initialDelay, long period, TimeUnit unit) { return scheduleOnMembersAtFixedRate(command, getContext().getClusterService().getMemberList(), initialDelay, period, unit); }
@Override public <V> Map<Member, IScheduledFuture<V>> scheduleOnAllMembers(Callable<V> command, long delay, TimeUnit unit) { return scheduleOnMembers(command, getContext().getClusterService().getMemberList(), delay, unit); }
@Override public Map<Member, IScheduledFuture<?>> scheduleOnAllMembers(Runnable command, long delay, TimeUnit unit) { return scheduleOnMembers(command, getContext().getClusterService().getMemberList(), delay, unit); }
@Override public Map<Member, IScheduledFuture<?>> scheduleOnAllMembers(Runnable command, long delay, TimeUnit unit) { return scheduleOnMembers(command, getContext().getClusterService().getMemberList(), delay, unit); }
@Override public void shutdown() { Collection<Member> members = getContext().getClusterService().getMemberList(); Collection<Future> calls = new LinkedList<Future>(); for (Member member : members) { ClientMessage request = ScheduledExecutorShutdownCodec.encodeRequest(getName(), member.getAddress()); calls.add(doSubmitOnAddress(request, SUBMIT_DECODER, member.getAddress())); } waitWithDeadline(calls, SHUTDOWN_TIMEOUT, TimeUnit.SECONDS, shutdownExceptionHandler); }
@Override public void shutdown() { Collection<Member> members = getContext().getClusterService().getMemberList(); Collection<Future> calls = new LinkedList<Future>(); for (Member member : members) { ClientMessage request = ScheduledExecutorShutdownCodec.encodeRequest(getName(), member.getAddress()); calls.add(doSubmitOnAddress(request, SUBMIT_DECODER, member.getAddress())); } waitWithDeadline(calls, SHUTDOWN_TIMEOUT, TimeUnit.SECONDS, shutdownExceptionHandler); }
@Override public <V> Map<Member, List<IScheduledFuture<V>>> getAllScheduledFutures() { ClientMessage request = ScheduledExecutorGetAllScheduledFuturesCodec.encodeRequest(getName()); ClientInvocationFuture future = new ClientInvocation(getClient(), request, getName()).invoke(); ClientMessage response; try { response = future.get(); } catch (Exception e) { throw rethrow(e); } Collection<Map.Entry<Member, List<ScheduledTaskHandler>>> urnsPerMember = ScheduledExecutorGetAllScheduledFuturesCodec.decodeResponse(response).handlers; Map<Member, List<IScheduledFuture<V>>> tasksMap = new HashMap<Member, List<IScheduledFuture<V>>>(); for (Map.Entry<Member, List<ScheduledTaskHandler>> entry : urnsPerMember) { List<IScheduledFuture<V>> memberTasks = new ArrayList<IScheduledFuture<V>>(); for (ScheduledTaskHandler scheduledTaskHandler : entry.getValue()) { memberTasks.add(new ClientScheduledFutureProxy(scheduledTaskHandler, getContext())); } tasksMap.put(entry.getKey(), memberTasks); } return tasksMap; }
@Override public <V> Map<Member, List<IScheduledFuture<V>>> getAllScheduledFutures() { ClientMessage request = ScheduledExecutorGetAllScheduledFuturesCodec.encodeRequest(getName()); ClientInvocationFuture future = new ClientInvocation(getClient(), request, getName()).invoke(); ClientMessage response; try { response = future.get(); } catch (Exception e) { throw rethrow(e); } Collection<Map.Entry<Member, List<ScheduledTaskHandler>>> urnsPerMember = ScheduledExecutorGetAllScheduledFuturesCodec.decodeResponse(response).handlers; Map<Member, List<IScheduledFuture<V>>> tasksMap = new HashMap<Member, List<IScheduledFuture<V>>>(); for (Map.Entry<Member, List<ScheduledTaskHandler>> entry : urnsPerMember) { List<IScheduledFuture<V>> memberTasks = new ArrayList<IScheduledFuture<V>>(); for (ScheduledTaskHandler scheduledTaskHandler : entry.getValue()) { memberTasks.add(new ClientScheduledFutureProxy(scheduledTaskHandler, getContext())); } tasksMap.put(entry.getKey(), memberTasks); } return tasksMap; }