From f05515d7d60b65b9e8e881ed86d2c62c0b55b006 Mon Sep 17 00:00:00 2001 From: Athou Date: Wed, 13 Aug 2014 13:08:54 +0200 Subject: [PATCH] finer transactions --- .../backend/feed/FeedRefreshUpdater.java | 26 +++++++++---------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/src/main/java/com/commafeed/backend/feed/FeedRefreshUpdater.java b/src/main/java/com/commafeed/backend/feed/FeedRefreshUpdater.java index fbaa26d7..09f6088c 100644 --- a/src/main/java/com/commafeed/backend/feed/FeedRefreshUpdater.java +++ b/src/main/java/com/commafeed/backend/feed/FeedRefreshUpdater.java @@ -100,18 +100,8 @@ public class FeedRefreshUpdater implements Managed { @Override public void run() { - new UnitOfWork(sessionFactory) { - @Override - protected Void runInSession() throws Exception { - internalRun(); - return null; - } - }.run(); - } - - public void internalRun() { boolean ok = true; - Feed feed = context.getFeed(); + final Feed feed = context.getFeed(); List entries = context.getEntries(); if (entries.isEmpty()) { feed.setMessage("Feed has no entries"); @@ -125,7 +115,12 @@ public class FeedRefreshUpdater implements Managed { if (!lastEntries.contains(cacheKey)) { log.debug("cache miss for {}", entry.getUrl()); if (subscriptions == null) { - subscriptions = feedSubscriptionDAO.findByFeed(feed); + subscriptions = new UnitOfWork>(sessionFactory) { + @Override + protected List runInSession() throws Exception { + return feedSubscriptionDAO.findByFeed(feed); + } + }.run(); } ok &= addEntry(feed, entry, subscriptions); entryCacheMiss.mark(); @@ -190,7 +185,12 @@ public class FeedRefreshUpdater implements Managed { locked1 = lock1.tryLock(1, TimeUnit.MINUTES); locked2 = lock2.tryLock(1, TimeUnit.MINUTES); if (locked1 && locked2) { - boolean inserted = feedUpdateService.addEntry(feed, entry); + boolean inserted = new UnitOfWork(sessionFactory) { + @Override + protected Boolean runInSession() throws Exception { + return feedUpdateService.addEntry(feed, entry); + } + }.run(); if (inserted) { entryInserted.mark(); }