Refine search
final ExecutorService pool = Executors.newFixedThreadPool(2); final CompletionService<String> service = new ExecutorCompletionService<String>(pool); final List<? extends Callable<String>> callables = Arrays.asList( new SleepingCallable("slow", 5000), new SleepingCallable("quick", 500)); for (final Callable<String> callable : callables) { service.submit(callable); } pool.shutdown(); try { while (!pool.isTerminated()) { final Future<String> future = service.take(); System.out.println(future.get()); } } catch (ExecutionException | InterruptedException ex) { }
CompletionService<Set<Range>> executor = new ExecutorCompletionService<>(executorService); for (Entry<AccumuloColumnConstraint, Collection<Range>> constraintEntry : constraintRanges.asMap().entrySet()) { tasks.add(executor.submit(() -> { finalRanges.addAll(future.get()); finalRanges.retainAll(future.get());
/** * @return a map with successful lookups */ private Map<String, LookupExtractorFactoryContainer> startLookups( List<LookupBean> lookupBeans, CompletionService<Map.Entry<String, LookupExtractorFactoryContainer>> completionService ) throws InterruptedException { for (LookupBean lookupBean : lookupBeans) { completionService.submit(() -> startLookup(lookupBean)); } Map<String, LookupExtractorFactoryContainer> successfulLookups = new HashMap<>(); for (int i = 0; i < lookupBeans.size(); i++) { Future<Map.Entry<String, LookupExtractorFactoryContainer>> completedFuture = completionService.take(); try { Map.Entry<String, LookupExtractorFactoryContainer> lookupResult = completedFuture.get(); if (lookupResult != null) { successfulLookups.put(lookupResult.getKey(), lookupResult.getValue()); } } catch (ExecutionException e) { LOG.error(e.getCause(), "Exception while starting a lookup"); // not adding to successfulLookups } } return successfulLookups; }
@Override boolean executeCloseTask(CompletionService<Void> completionService, List<IOException> thrown, List<Path> paths) throws InterruptedException, ExecutionException { for (final Map.Entry<byte[], RegionEntryBuffer> buffer : entryBuffers.buffers.entrySet()) { LOG.info("Submitting writeThenClose of {}", Arrays.toString(buffer.getValue().encodedRegionName)); completionService.submit(new Callable<Void>() { @Override public Void call() throws Exception { Path dst = writeThenClose(buffer.getValue()); paths.add(dst); return null; } }); } boolean progress_failed = false; for (int i = 0, n = entryBuffers.buffers.size(); i < n; i++) { Future<Void> future = completionService.take(); future.get(); if (!progress_failed && reporter != null && !reporter.progress()) { progress_failed = true; } } return progress_failed; }
idxConstraintRangePairs.asMap().forEach((key, value) -> executor.submit(() -> { long cardinality = getColumnCardinality(schema, table, auths, key.getFamily(), key.getQualifier(), value); LOG.debug("Cardinality for column %s is %s", key.getName(), cardinality); Future<Pair<Long, AccumuloColumnConstraint>> futureCardinality = executor.poll(); if (futureCardinality != null && futureCardinality.isDone()) { Pair<Long, AccumuloColumnConstraint> columnCardinality = futureCardinality.get(); cardinalityToConstraints.put(columnCardinality.getLeft(), columnCardinality.getRight());
LOG.trace("Submitting close of " + ((WriterAndPath) writersEntry.getValue()).p); completionService.submit(new Callable<Void>() { @Override public Void call() throws Exception { WriterAndPath wap = (WriterAndPath) writersEntry.getValue(); Future<Void> future = completionService.take(); future.get(); if (!progress_failed && reporter != null && !reporter.progress()) { progress_failed = true;
final JobExecution jobExecution = new JobExecution(new JobInstance(123L, "job"), 321L, new JobParameters(), null); for (int j = 0; j < threads; j++) { completionService.submit(new Callable<StepExecution>() { @Override public StepExecution call() throws Exception { count++; try { future.get(); } catch (Throwable e) { throw new IllegalStateException("Failed on count="+count, e); count++; try { future.get(); } catch (Throwable e) { throw new IllegalStateException("Failed on count="+count, e);
ExecutorService executor = Executors.newFixedThreadPool(maxThreadsToUse); CompletionService completion = new ExecutorCompletionService(executor); for (each sub task) { completion.submit(new SomeTaskYouCreate()) } // wait for all tasks to complete. for (int i = 0; i < numberOfSubTasks; ++i) { completion.take(); // will block until the next sub task has completed. } executor.shutdown();
taskCompletionService.submit(new CallableTask( String.valueOf(i), (i * 10), try { System.out.println("trying to take from Completion service"); Future<CalcResult> result = taskCompletionService.take(); System.out.println("result for a task availble in queue.Trying to get()" ); CalcResult l = result.get(); System.out.println("Task " + String.valueOf(tasksHandled) + "Completed - results obtained : " + String.valueOf(l.result));
completionService.submit(interrupter); completionService.submit(fileResourceCrawler); completionService.submit(reporter); completionService.submit(timeoutChecker); completionService.submit(consumer); IFileProcessorFutureResult result = futureResult.get(); LOG.trace("result: "+result); if (result instanceof FileConsumerFutureResult) {
ex); for (int i = 0; i < numTesters; i++) { completionService.submit(new Tester(keys, b, numGets)); if (futureResult != null) { results++; assertEquals(keys.size(), futureResult.get().getMap().keySet().size()); for (Map.Entry<String, Integer> e : futureResult.get().getMap().entrySet()) { if (!combined.containsKey(e.getKey())) { combined.put(e.getKey(), e.getValue());