From 63349d6e14f9bc1d52c3b434dbb99c3360ce012c Mon Sep 17 00:00:00 2001 From: Athou Date: Thu, 30 May 2013 13:18:26 +0200 Subject: [PATCH] small refactoring --- .../backend/feeds/FeedRefreshTaskGiver.java | 57 ++++++++++--------- 1 file changed, 31 insertions(+), 26 deletions(-) diff --git a/src/main/java/com/commafeed/backend/feeds/FeedRefreshTaskGiver.java b/src/main/java/com/commafeed/backend/feeds/FeedRefreshTaskGiver.java index 9126ff7c..488d40b1 100644 --- a/src/main/java/com/commafeed/backend/feeds/FeedRefreshTaskGiver.java +++ b/src/main/java/com/commafeed/backend/feeds/FeedRefreshTaskGiver.java @@ -57,41 +57,46 @@ public class FeedRefreshTaskGiver { public synchronized Feed take() { Feed feed = takeQueue.poll(); + if (feed == null) { - Date now = Calendar.getInstance().getTime(); - - int count = 3 * backgroundThreads; - List feeds = feedDAO.findNextUpdatable(count); - - int size = addQueue.size(); - for (int i = 0; i < size; i++) { - feeds.add(addQueue.poll()); - } - - Map map = Maps.newHashMap(); - for (Feed f : feeds) { - f.setLastUpdated(now); - map.put(f.getId(), f); - } - takeQueue.addAll(map.values()); - - size = giveBackQueue.size(); - for (int i = 0; i < size; i++) { - Feed f = giveBackQueue.poll(); - f.setLastUpdated(now); - map.put(f.getId(), f); - } - - feedDAO.update(map.values()); - + refill(); feed = takeQueue.poll(); } + if (feed != null) { metricsBean.feedRefreshed(); } return feed; } + private void refill() { + Date now = Calendar.getInstance().getTime(); + + int count = 2 * backgroundThreads; + List feeds = feedDAO.findNextUpdatable(count); + + int size = addQueue.size(); + for (int i = 0; i < size; i++) { + feeds.add(addQueue.poll()); + } + + Map map = Maps.newHashMap(); + for (Feed f : feeds) { + f.setLastUpdated(now); + map.put(f.getId(), f); + } + takeQueue.addAll(map.values()); + + size = giveBackQueue.size(); + for (int i = 0; i < size; i++) { + Feed f = giveBackQueue.poll(); + f.setLastUpdated(now); + map.put(f.getId(), f); + } + + feedDAO.update(map.values()); + } + public void giveBack(Feed feed) { giveBackQueue.add(feed); }