From 3dbdf5adf2ea5f897b50d6af1694c15e3051305f Mon Sep 17 00:00:00 2001 From: Athou Date: Thu, 5 Mar 2015 22:21:21 +0100 Subject: [PATCH] smaller transactions under heavy load --- src/main/java/com/commafeed/backend/feed/FeedQueues.java | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/commafeed/backend/feed/FeedQueues.java b/src/main/java/com/commafeed/backend/feed/FeedQueues.java index cb5f0222..88adccaa 100644 --- a/src/main/java/com/commafeed/backend/feed/FeedQueues.java +++ b/src/main/java/com/commafeed/backend/feed/FeedQueues.java @@ -71,7 +71,7 @@ public class FeedQueues { FeedRefreshContext context = takeQueue.poll(); if (context == null) { - UnitOfWork.run(sessionFactory, () -> refill()); + refill(); context = takeQueue.poll(); } return context; @@ -108,7 +108,7 @@ public class FeedQueues { // add feeds that are up to refresh from the database int count = batchSize - contexts.size(); if (count > 0) { - List feeds = feedDAO.findNextUpdatable(count, getLastLoginThreshold()); + List feeds = UnitOfWork.run(sessionFactory, () -> feedDAO.findNextUpdatable(count, getLastLoginThreshold())); for (Feed feed : feeds) { contexts.add(new FeedRefreshContext(feed, false)); } @@ -134,8 +134,9 @@ public class FeedQueues { } // update all feeds in the database - List feeds = map.values().stream().map(c -> c.getFeed()).collect(Collectors.toList()); - feedDAO.merge(feeds); + List feeds = map.values().stream().filter(c -> config.getApplicationSettings().getHeavyLoad() ? !c.isUrgent() : true) + .map(c -> c.getFeed()).collect(Collectors.toList()); + UnitOfWork.run(sessionFactory, () -> feedDAO.merge(feeds)); } /**