From 3dca5d595d3fed4c9fab29ab735e21d559f60f31 Mon Sep 17 00:00:00 2001 From: Athou Date: Tue, 21 May 2013 16:40:37 +0200 Subject: [PATCH] just queue feeds, update them later --- .../backend/feeds/FeedRefreshTaskGiver.java | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/commafeed/backend/feeds/FeedRefreshTaskGiver.java b/src/main/java/com/commafeed/backend/feeds/FeedRefreshTaskGiver.java index 99b7ec05..c98e1d83 100644 --- a/src/main/java/com/commafeed/backend/feeds/FeedRefreshTaskGiver.java +++ b/src/main/java/com/commafeed/backend/feeds/FeedRefreshTaskGiver.java @@ -32,6 +32,8 @@ public class FeedRefreshTaskGiver { MetricsBean metricsBean; private int backgroundThreads; + + private Queue addQueue = Queues.newConcurrentLinkedQueue(); private Queue queue = Queues.newConcurrentLinkedQueue(); @PostConstruct @@ -51,9 +53,7 @@ public class FeedRefreshTaskGiver { feed.setLastModifiedHeader(null); } - queue.add(feed); - feed.setLastUpdated(Calendar.getInstance().getTime()); - feedDAO.update(feed); + addQueue.add(feed); } @Lock(LockType.WRITE) @@ -62,6 +62,12 @@ public class FeedRefreshTaskGiver { if (feed == null) { int count = Math.min(100, 5 * backgroundThreads); List feeds = feedDAO.findNextUpdatable(count); + + int addQueueSize = queue.size(); + for (int i = 0; i < addQueueSize; i++) { + feeds.add(addQueue.poll()); + } + for (Feed f : feeds) { queue.add(f); f.setLastUpdated(Calendar.getInstance().getTime());