just queue feeds, update them later

This commit is contained in:
Athou
2013-05-21 16:40:37 +02:00
parent 9d5b67ffda
commit 3dca5d595d

View File

@@ -32,6 +32,8 @@ public class FeedRefreshTaskGiver {
MetricsBean metricsBean; MetricsBean metricsBean;
private int backgroundThreads; private int backgroundThreads;
private Queue<Feed> addQueue = Queues.newConcurrentLinkedQueue();
private Queue<Feed> queue = Queues.newConcurrentLinkedQueue(); private Queue<Feed> queue = Queues.newConcurrentLinkedQueue();
@PostConstruct @PostConstruct
@@ -51,9 +53,7 @@ public class FeedRefreshTaskGiver {
feed.setLastModifiedHeader(null); feed.setLastModifiedHeader(null);
} }
queue.add(feed); addQueue.add(feed);
feed.setLastUpdated(Calendar.getInstance().getTime());
feedDAO.update(feed);
} }
@Lock(LockType.WRITE) @Lock(LockType.WRITE)
@@ -62,6 +62,12 @@ public class FeedRefreshTaskGiver {
if (feed == null) { if (feed == null) {
int count = Math.min(100, 5 * backgroundThreads); int count = Math.min(100, 5 * backgroundThreads);
List<Feed> feeds = feedDAO.findNextUpdatable(count); List<Feed> feeds = feedDAO.findNextUpdatable(count);
int addQueueSize = queue.size();
for (int i = 0; i < addQueueSize; i++) {
feeds.add(addQueue.poll());
}
for (Feed f : feeds) { for (Feed f : feeds) {
queue.add(f); queue.add(f);
f.setLastUpdated(Calendar.getInstance().getTime()); f.setLastUpdated(Calendar.getInstance().getTime());