@Override public void run() { int numBatchesProcessed = 0; while (!itemIDBatches.isEmpty()) { try { long[] itemIDBatch = itemIDBatches.take(); List<SimilarItems> similarItemsOfBatch = Lists.newArrayListWithCapacity(itemIDBatch.length); for (long itemID : itemIDBatch) { List<RecommendedItem> similarItems = getRecommender().mostSimilarItems(itemID, getSimilarItemsPerItem()); similarItemsOfBatch.add(new SimilarItems(itemID, similarItems)); } results.offer(similarItemsOfBatch); if (++numBatchesProcessed % 5 == 0) { log.info("worker {} processed {} batches", number, numBatchesProcessed); } } catch (Exception e) { throw new RuntimeException(e); } } log.info("worker {} processed {} batches. done.", number, numBatchesProcessed); numActiveWorkers.decrementAndGet(); } }
@Override public void run() { int numBatchesProcessed = 0; while (!itemIDBatches.isEmpty()) { try { long[] itemIDBatch = itemIDBatches.take(); List<SimilarItems> similarItemsOfBatch = Lists.newArrayListWithCapacity(itemIDBatch.length); for (long itemID : itemIDBatch) { List<RecommendedItem> similarItems = getRecommender().mostSimilarItems(itemID, getSimilarItemsPerItem()); similarItemsOfBatch.add(new SimilarItems(itemID, similarItems)); } results.offer(similarItemsOfBatch); if (++numBatchesProcessed % 5 == 0) { log.info("worker {} processed {} batches", number, numBatchesProcessed); } } catch (Exception e) { throw new RuntimeException(e); } } log.info("worker {} processed {} batches. done.", number, numBatchesProcessed); numActiveWorkers.decrementAndGet(); } }
@Override public void run() { int numBatchesProcessed = 0; while (!itemIDBatches.isEmpty()) { try { long[] itemIDBatch = itemIDBatches.take(); List<SimilarItems> similarItemsOfBatch = new ArrayList<>(itemIDBatch.length); for (long itemID : itemIDBatch) { List<RecommendedItem> similarItems = getRecommender().mostSimilarItems(itemID, getSimilarItemsPerItem()); similarItemsOfBatch.add(new SimilarItems(itemID, similarItems)); } results.offer(similarItemsOfBatch); if (++numBatchesProcessed % 5 == 0) { log.info("worker {} processed {} batches", number, numBatchesProcessed); } } catch (Exception e) { throw new RuntimeException(e); } } log.info("worker {} processed {} batches. done.", number, numBatchesProcessed); numActiveWorkers.decrementAndGet(); } }