@Override public void run() { taskDistributor.submitToMember(task, member); } }
Callable<String> task = new Echo(input); // Echo is just some Callable HazelcastInstance hz = Hazelcast.newHazelcastInstance(); IExecutorService executorService = hz.getExecutorService("default"); Future<String> future = executorService.submitToMember(task, member); String echoResult = future.get();
public long pingMember(Member member) { try { long start = System.currentTimeMillis(); communicationExecutorService.submitToMember(new NoOp(), member).get(4, TimeUnit.SECONDS); return System.currentTimeMillis() - start; } catch (Exception e) { throw new RuntimeException(e); } }
public void sendTask(HazeltaskTask<GROUP> task, Member member) throws TimeoutException { SubmitTaskOp<GROUP> distTask = new SubmitTaskOp<GROUP>(task, topologyName); if(asyncTaskDistributorExecutor != null) { asyncTaskDistributorExecutor.execute(new $SendTaskToWorker(taskDistributor, member, distTask)); } else { taskDistributor.submitToMember(distTask, member); } }
private CompositeData getCompositeInfo(InfoType type) { NodeInfoProvider nip = new NodeInfoProvider(type); Future<CompositeData> result = execService.submitToMember(nip, member); try { CompositeData timing = result.get(); return timing; } catch (InterruptedException | ExecutionException ex) { logger.error("getCompositeInfo.error; ", ex); } return null; }
private static boolean initSchema(HazelcastInstance hzInstance, Member member, Schema schema) { logger.trace("initSchema.enter; schema: {}", schema); SchemaInitiator init = new SchemaInitiator(schema); IExecutorService execService = hzInstance.getExecutorService(PN_XDM_SYSTEM_POOL); Future<Boolean> result = execService.submitToMember(init, member); Boolean ok = false; try { ok = result.get(); } catch (InterruptedException | ExecutionException ex) { logger.error("initSchema.error; ", ex); } logger.info("initSchema.exit; schema {} {}initialized", schema.getName(), ok ? "" : "NOT "); return ok; }
@Override public <T> Future<T> executeOneFuture(String groupId, Object member, Callable<T> callable) throws AnalyticsClusterException { return this.hz.getExecutorService(this.generateGroupExecutorId(groupId)).submitToMember( callable, (Member) member); }
public Collection<HazeltaskTask<GROUP>> stealTasks(List<MemberValuePair<Long>> numToTake) { Collection<HazeltaskTask<GROUP>> result = new LinkedList<HazeltaskTask<GROUP>>(); Collection<Future<Collection<HazeltaskTask<GROUP>>>> futures = new ArrayList<Future<Collection<HazeltaskTask<GROUP>>>>(numToTake.size()); for(MemberValuePair<Long> entry : numToTake) { futures.add(communicationExecutorService .submitToMember( new StealTasksOp<GROUP>(topology.getName(), entry.getValue()), entry.getMember() ) ); } for(Future<Collection<HazeltaskTask<GROUP>>> f : futures) { try { Collection<HazeltaskTask<GROUP>> task = f.get(3, TimeUnit.MINUTES);//wait at most 3 minutes result.addAll(task); } catch (InterruptedException e) { log.error("Unable to take tasks. I was interrupted. We may have pulled work out of another member... it will need to be recovered", e); Thread.currentThread().interrupt(); return result; } catch (ExecutionException e) { log.error("Unable to take tasks. I got an exception. We may have pulled work out of another member... it will need to be recovered", e); continue; } catch (TimeoutException e) { log.error("Unable to take tasks within 3 minutes. We may have pulled work out of another member... it will need to be recovered"); continue; } } return result; }
public static Map<Member, Long> getOperationCount(HazelcastInstance hz) { IExecutorService executorService = hz.getExecutorService("operationCountExecutor"); Map<Member, Future<Long>> futures = new HashMap<Member, Future<Long>>(); for (Member member : hz.getCluster().getMembers()) { Future<Long> future = executorService.submitToMember(new GetOperationCount(), member); futures.put(member, future); } Map<Member, Long> result = new HashMap<Member, Long>(); for (Map.Entry<Member, Future<Long>> entry : futures.entrySet()) { try { Member member = entry.getKey(); Long value = entry.getValue().get(); if (value == null) { value = 0L; } result.put(member, value); } catch (Exception e) { throw rethrow(e); } } return result; }
public static Map<Member, Long> getOperationCount(HazelcastInstance hz) { IExecutorService executorService = hz.getExecutorService("operationCountExecutor"); Map<Member, Future<Long>> futures = new HashMap<Member, Future<Long>>(); for (Member member : hz.getCluster().getMembers()) { Future<Long> future = executorService.submitToMember(new GetOperationCount(), member); futures.put(member, future); } Map<Member, Long> result = new HashMap<Member, Long>(); for (Map.Entry<Member, Future<Long>> entry : futures.entrySet()) { try { Member member = entry.getKey(); Long value = entry.getValue().get(); if (value == null) { value = 0L; } result.put(member, value); } catch (Exception e) { throw rethrow(e); } } return result; }
public static Map<Member, Long> getOperationCount(HazelcastInstance hz) { IExecutorService executorService = hz.getExecutorService("operationCountExecutor"); Map<Member, Future<Long>> futures = new HashMap<Member, Future<Long>>(); for (Member member : hz.getCluster().getMembers()) { Future<Long> future = executorService.submitToMember(new GetOperationCount(), member); futures.put(member, future); } Map<Member, Long> result = new HashMap<Member, Long>(); for (Map.Entry<Member, Future<Long>> entry : futures.entrySet()) { try { Member member = entry.getKey(); Long value = entry.getValue().get(); if (value == null) { value = 0L; } result.put(member, value); } catch (Exception e) { throw rethrow(e); } } return result; }
Future f = executor.submitToMember(new SimulateLoadTask(durationSec, k + 1, "latch" + latchId), member); futures.add(f);
private void doExecute(boolean onKey, boolean onMember, String[] args) { // executeOnKey <echo-string> <key> try { IExecutorService executorService = hazelcast.getExecutorService("default"); Echo callable = new Echo(args[1]); Future<String> future; if (onKey) { String key = args[2]; future = executorService.submitToKeyOwner(callable, key); } else if (onMember) { int memberIndex = Integer.parseInt(args[2]); List<Member> members = new LinkedList<Member>(hazelcast.getCluster().getMembers()); if (memberIndex >= members.size()) { throw new IndexOutOfBoundsException("Member index: " + memberIndex + " must be smaller than " + members .size()); } Member member = members.get(memberIndex); future = executorService.submitToMember(callable, member); } else { future = executorService.submit(callable); } println("Result: " + future.get()); } catch (InterruptedException e) { currentThread().interrupt(); e.printStackTrace(); } catch (ExecutionException e) { e.printStackTrace(); } }
private void doExecute(boolean onKey, boolean onMember, String[] args) { // executeOnKey <echo-string> <key> try { IExecutorService executorService = hazelcast.getExecutorService("default"); Echo callable = new Echo(args[1]); Future<String> future; if (onKey) { String key = args[2]; future = executorService.submitToKeyOwner(callable, key); } else if (onMember) { int memberIndex = Integer.parseInt(args[2]); List<Member> members = new LinkedList<Member>(hazelcast.getCluster().getMembers()); if (memberIndex >= members.size()) { throw new IndexOutOfBoundsException("Member index: " + memberIndex + " must be smaller than " + members.size()); } Member member = members.get(memberIndex); future = executorService.submitToMember(callable, member); } else { future = executorService.submit(callable); } println("Result: " + future.get()); } catch (InterruptedException e) { currentThread().interrupt(); e.printStackTrace(); } catch (ExecutionException e) { e.printStackTrace(); } }
private void doExecute(boolean onKey, boolean onMember, String[] args) { // executeOnKey <echo-string> <key> try { IExecutorService executorService = hazelcast.getExecutorService("default"); Echo callable = new Echo(args[1]); Future<String> future; if (onKey) { String key = args[2]; future = executorService.submitToKeyOwner(callable, key); } else if (onMember) { int memberIndex = Integer.parseInt(args[2]); List<Member> members = new LinkedList<Member>(hazelcast.getCluster().getMembers()); if (memberIndex >= members.size()) { throw new IndexOutOfBoundsException("Member index: " + memberIndex + " must be smaller than " + members.size()); } Member member = members.get(memberIndex); future = executorService.submitToMember(callable, member); } else { future = executorService.submit(callable); } println("Result: " + future.get()); } catch (InterruptedException e) { currentThread().interrupt(); e.printStackTrace(); } catch (ExecutionException e) { e.printStackTrace(); } }
private void doExecute(boolean onKey, boolean onMember, String[] args) { // executeOnKey <echo-string> <key> try { IExecutorService executorService = hazelcast.getExecutorService("default"); Echo callable = new Echo(args[1]); Future<String> future; if (onKey) { String key = args[2]; future = executorService.submitToKeyOwner(callable, key); } else if (onMember) { int memberIndex = Integer.parseInt(args[2]); List<Member> members = new LinkedList<Member>(hazelcast.getCluster().getMembers()); if (memberIndex >= members.size()) { throw new IndexOutOfBoundsException("Member index: " + memberIndex + " must be smaller than " + members .size()); } Member member = members.get(memberIndex); future = executorService.submitToMember(callable, member); } else { future = executorService.submit(callable); } println("Result: " + future.get()); } catch (InterruptedException e) { currentThread().interrupt(); e.printStackTrace(); } catch (ExecutionException e) { e.printStackTrace(); } }
@ManagedOperation(description="Set active Node option") @ManagedOperationParameters({ @ManagedOperationParameter(name = "name", description = "A name of the option to set"), @ManagedOperationParameter(name = "value", description = "A value of the option to set")}) public void setOption(String name, String value) { logger.trace("setOption.enter; name: {}; value: {}", name, value); Map<String, Object> opts = member.getAttributes(); Properties props = new Properties(); for (Map.Entry<String, Object> entry: opts.entrySet()) { props.setProperty(entry.getKey(), entry.getValue().toString()); } props.put(name, value); String nodeName = member.getStringAttribute(pn_cluster_node_name); logger.trace("setOption; nodeName: {}; options: {}", nodeName, props); String login = ((Member) hzInstance.getLocalEndpoint()).getStringAttribute(pn_cluster_login); NodeOptionSetter setter = new NodeOptionSetter(JMXUtils.getCurrentUser(login), "Option " + name + " set from JMX console", props); Future<Boolean> result = execService.submitToMember(setter, member); try { Boolean ok = result.get(); logger.trace("setOption.exit; result: {}", ok); } catch (InterruptedException | ExecutionException ex) { logger.error("setOption.error; ", ex); } }
@Override public Boolean call() throws Exception { logger.trace("call.enter; schema: {}; init: {}", schemaName, init); //logger.trace("call.enter; HZ: {}; SM: {}", hzInstance, schemaService); boolean result = false; for (Member member: hzInstance.getCluster().getMembers()) { if (uuid.equals(member.getUuid())) { if (init) { Schema schema = schemaService.getSchema(schemaName); SchemaInitiator initTask = new SchemaInitiator(schema); IExecutorService execService = hzInstance.getExecutorService(PN_XDM_SYSTEM_POOL); Future<Boolean> initiated = execService.submitToMember(initTask, member); Boolean ok = false; try { ok = initiated.get(); } catch (InterruptedException | ExecutionException ex) { logger.error("initSchema.error; ", ex); } } schemaService.initMember(member); result = true; break; } } logger.trace("call.exit; returning: {} for member: {}", result, uuid); return result; }
public int initMember(final Member member) { // get schemas; for each schema registered on this member int cnt = 0; String[] aSchemas = getMemberSchemas(member); for (String name: aSchemas) { Schema schema = entityCache.get(name); if (schema != null) { Properties props = schema.getProperties(); if (initSchema(schema.getName(), props)) { cnt++; Future<String> future = execService.submitToMember(new SchemaMemberExtractor(name), member); try { String uuid = future.get(); //10, TimeUnit.SECONDS); } catch (InterruptedException | ExecutionException ex) { // | TimeoutException ex) { logger.error("initMember.error 1; ", ex); continue; } } } else { logger.info("initMember.error; no schema found for name: {}; " + "looks like invalid node configuration", name); } } return cnt; }
void applyTrigger(final Document xDoc, final Order order, final Scope scope) throws BagriException { if (triggers.isEmpty()) return; String key = getTriggerScopeKey(order, scope); Map<Integer, List<TriggerContainer>> current = triggers.get(key); if (current != null) { for (int collectId: current.keySet()) { if (collectId == default_collection || xDoc.hasCollection(collectId)) { List<TriggerContainer> impls = current.get(collectId); for (TriggerContainer impl: impls) { logger.trace("applyTrigger; about to fire trigger {} on document: {}", impl, xDoc); final DocumentTrigger trigger = (DocumentTrigger) impl.getImplementation(); if (impl.isSynchronous()) { runTrigger(order, scope, xDoc, trigger); } else { TriggerRunner tr = new TriggerRunner(collectId, order, scope, impl.getIndex(), xDoc, repo.getClientId()); execService.submitToMember(tr, hzInstance.getCluster().getLocalMember()); } } } } } }