do some heavy work outside of the database transaction

This commit is contained in:
Athou
2013-05-24 07:15:09 +02:00
parent b32e3690c6
commit c2b3992818
2 changed files with 16 additions and 15 deletions

View File

@@ -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();

View File

@@ -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));
}
}