From c71b0aee96416bd6e95cd9a9e222bcbf34a81443 Mon Sep 17 00:00:00 2001 From: Athou Date: Tue, 23 Apr 2013 16:00:18 +0200 Subject: [PATCH] don't batch refresh more than 100 feeds --- .../commafeed/backend/feeds/FeedRefreshTaskGiver.java | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/commafeed/backend/feeds/FeedRefreshTaskGiver.java b/src/main/java/com/commafeed/backend/feeds/FeedRefreshTaskGiver.java index 5e07ab1a..326df6f8 100644 --- a/src/main/java/com/commafeed/backend/feeds/FeedRefreshTaskGiver.java +++ b/src/main/java/com/commafeed/backend/feeds/FeedRefreshTaskGiver.java @@ -4,6 +4,7 @@ import java.util.Calendar; import java.util.List; import java.util.Queue; +import javax.annotation.PostConstruct; import javax.ejb.Lock; import javax.ejb.LockType; import javax.ejb.Singleton; @@ -27,13 +28,21 @@ public class FeedRefreshTaskGiver { @Inject MetricsBean metricsBean; + private int backgroundThreads; private Queue queue = Queues.newConcurrentLinkedQueue(); + @PostConstruct + public void init() { + backgroundThreads = applicationSettingsService.get() + .getBackgroundThreads(); + } + @Lock(LockType.WRITE) public Feed take() { Feed feed = queue.poll(); if (feed == null) { - List feeds = feedDAO.findNextUpdatable(50); + int count = Math.min(100, 5 * backgroundThreads); + List feeds = feedDAO.findNextUpdatable(count); for (Feed f : feeds) { queue.add(f); f.setLastUpdated(Calendar.getInstance().getTime());