@Override public void add(SimilarItems similarItems) throws IOException { String itemID = String.valueOf(similarItems.getItemID()); for (SimilarItem similarItem : similarItems.getSimilarItems()) { writer.write(itemID); writer.write(','); writer.write(String.valueOf(similarItem.getItemID())); writer.write(','); writer.write(String.valueOf(similarItem.getSimilarity())); writer.newLine(); } }
@Override public void run() { while (numActiveWorkers.get() != 0) { try { List<SimilarItems> similarItemsOfABatch = results.poll(10, TimeUnit.MILLISECONDS); if (similarItemsOfABatch != null) { for (SimilarItems similarItems : similarItemsOfABatch) { writer.add(similarItems); numSimilaritiesProcessed += similarItems.numSimilarItems(); } } } catch (Exception e) { throw new RuntimeException(e); } } } }
@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 add(SimilarItems similarItems) throws IOException { String itemID = String.valueOf(similarItems.getItemID()); for (SimilarItem similarItem : similarItems.getSimilarItems()) { writer.write(itemID); writer.write(','); writer.write(String.valueOf(similarItem.getItemID())); writer.write(','); writer.write(String.valueOf(similarItem.getSimilarity())); writer.newLine(); } }
@Override public void run() { while (numActiveWorkers.get() != 0 || !results.isEmpty()) { try { List<SimilarItems> similarItemsOfABatch = results.poll(10, TimeUnit.MILLISECONDS); if (similarItemsOfABatch != null) { for (SimilarItems similarItems : similarItemsOfABatch) { writer.add(similarItems); numSimilaritiesProcessed += similarItems.numSimilarItems(); } } } catch (Exception e) { throw new RuntimeException(e); } } } }
@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(); } }
@Override public void add(SimilarItems similarItems) throws IOException { String itemID = String.valueOf(similarItems.getItemID()); for (SimilarItem similarItem : similarItems.getSimilarItems()) { writer.write(itemID); writer.write(','); writer.write(String.valueOf(similarItem.getItemID())); writer.write(','); writer.write(String.valueOf(similarItem.getSimilarity())); writer.newLine(); } }
@Override public void run() { while (numActiveWorkers.get() != 0) { try { List<SimilarItems> similarItemsOfABatch = results.poll(10, TimeUnit.MILLISECONDS); if (similarItemsOfABatch != null) { for (SimilarItems similarItems : similarItemsOfABatch) { writer.add(similarItems); numSimilaritiesProcessed += similarItems.numSimilarItems(); } } } catch (Exception e) { throw new RuntimeException(e); } } } }