From c2b39928186307a87ab8d720f5dbec675dd1a866 Mon Sep 17 00:00:00 2001 From: Athou Date: Fri, 24 May 2013 07:15:09 +0200 Subject: [PATCH] do some heavy work outside of the database transaction --- .../backend/feeds/FeedRefreshWorker.java | 16 ++++++++++++++++ .../backend/services/FeedUpdateService.java | 15 --------------- 2 files changed, 16 insertions(+), 15 deletions(-) diff --git a/src/main/java/com/commafeed/backend/feeds/FeedRefreshWorker.java b/src/main/java/com/commafeed/backend/feeds/FeedRefreshWorker.java index 6a44ab3b..06262e15 100644 --- a/src/main/java/com/commafeed/backend/feeds/FeedRefreshWorker.java +++ b/src/main/java/com/commafeed/backend/feeds/FeedRefreshWorker.java @@ -14,6 +14,7 @@ import com.commafeed.backend.HttpGetter.NotModifiedException; import com.commafeed.backend.MetricsBean; import com.commafeed.backend.model.Feed; import com.commafeed.backend.model.FeedEntry; +import com.commafeed.backend.model.FeedEntryContent; import com.commafeed.backend.model.FeedPushInfo; import com.commafeed.backend.services.ApplicationSettingsService; import com.commafeed.backend.services.FeedPushInfoService; @@ -104,6 +105,9 @@ public class FeedRefreshWorker { .getLastModifiedHeader()); feed.setEtagHeader(fetchedFeed.getFeed().getEtagHeader()); + for (FeedEntry entry : entries) { + handleEntry(feed, entry); + } handlePubSub(feed, fetchedFeed); } catch (NotModifiedException e) { @@ -133,6 +137,18 @@ public class FeedRefreshWorker { } + private void handleEntry(Feed feed, FeedEntry entry) { + String baseUri = feed.getLink(); + FeedEntryContent content = entry.getContent(); + content.setEnclosureUrl(FeedUtils.truncate(content.getEnclosureUrl(), + 2048)); + content.setContent(FeedUtils.handleContent(content.getContent(), + baseUri)); + String title = FeedUtils.handleContent(content.getTitle(), baseUri); + content.setTitle(FeedUtils.truncate(title, 2048)); + entry.setAuthor(FeedUtils.truncate(entry.getAuthor(), 128)); + } + private void handlePubSub(Feed feed, FetchedFeed fetchedFeed) { String hub = fetchedFeed.getHub(); String topic = fetchedFeed.getTopic(); diff --git a/src/main/java/com/commafeed/backend/services/FeedUpdateService.java b/src/main/java/com/commafeed/backend/services/FeedUpdateService.java index 97256d3d..0a47c815 100644 --- a/src/main/java/com/commafeed/backend/services/FeedUpdateService.java +++ b/src/main/java/com/commafeed/backend/services/FeedUpdateService.java @@ -14,10 +14,8 @@ import com.commafeed.backend.MetricsBean; import com.commafeed.backend.dao.FeedEntryDAO; import com.commafeed.backend.dao.FeedEntryStatusDAO; import com.commafeed.backend.dao.FeedSubscriptionDAO; -import com.commafeed.backend.feeds.FeedUtils; import com.commafeed.backend.model.Feed; import com.commafeed.backend.model.FeedEntry; -import com.commafeed.backend.model.FeedEntryContent; import com.commafeed.backend.model.FeedEntryStatus; import com.commafeed.backend.model.FeedSubscription; import com.google.common.collect.Lists; @@ -45,13 +43,11 @@ public class FeedUpdateService { FeedEntry update = null; if (foundEntry == null) { - handleEntry(feed, entry); entry.setInserted(Calendar.getInstance().getTime()); entry.getFeeds().add(feed); update = entry; } else { - if (!findFeed(foundEntry.getFeeds(), feed)) { foundEntry.getFeeds().add(feed); update = foundEntry; @@ -95,15 +91,4 @@ public class FeedUpdateService { return found; } - private void handleEntry(Feed feed, FeedEntry entry) { - String baseUri = feed.getLink(); - FeedEntryContent content = entry.getContent(); - content.setEnclosureUrl(FeedUtils.truncate(content.getEnclosureUrl(), - 2048)); - content.setContent(FeedUtils.handleContent(content.getContent(), - baseUri)); - String title = FeedUtils.handleContent(content.getTitle(), baseUri); - content.setTitle(FeedUtils.truncate(title, 2048)); - entry.setAuthor(FeedUtils.truncate(entry.getAuthor(), 128)); - } }