mirror of
https://github.com/Athou/commafeed.git
synced 2026-03-21 21:37:29 +00:00
do some heavy work outside of the database transaction
This commit is contained in:
@@ -14,6 +14,7 @@ import com.commafeed.backend.HttpGetter.NotModifiedException;
|
|||||||
import com.commafeed.backend.MetricsBean;
|
import com.commafeed.backend.MetricsBean;
|
||||||
import com.commafeed.backend.model.Feed;
|
import com.commafeed.backend.model.Feed;
|
||||||
import com.commafeed.backend.model.FeedEntry;
|
import com.commafeed.backend.model.FeedEntry;
|
||||||
|
import com.commafeed.backend.model.FeedEntryContent;
|
||||||
import com.commafeed.backend.model.FeedPushInfo;
|
import com.commafeed.backend.model.FeedPushInfo;
|
||||||
import com.commafeed.backend.services.ApplicationSettingsService;
|
import com.commafeed.backend.services.ApplicationSettingsService;
|
||||||
import com.commafeed.backend.services.FeedPushInfoService;
|
import com.commafeed.backend.services.FeedPushInfoService;
|
||||||
@@ -104,6 +105,9 @@ public class FeedRefreshWorker {
|
|||||||
.getLastModifiedHeader());
|
.getLastModifiedHeader());
|
||||||
feed.setEtagHeader(fetchedFeed.getFeed().getEtagHeader());
|
feed.setEtagHeader(fetchedFeed.getFeed().getEtagHeader());
|
||||||
|
|
||||||
|
for (FeedEntry entry : entries) {
|
||||||
|
handleEntry(feed, entry);
|
||||||
|
}
|
||||||
handlePubSub(feed, fetchedFeed);
|
handlePubSub(feed, fetchedFeed);
|
||||||
|
|
||||||
} catch (NotModifiedException e) {
|
} 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) {
|
private void handlePubSub(Feed feed, FetchedFeed fetchedFeed) {
|
||||||
String hub = fetchedFeed.getHub();
|
String hub = fetchedFeed.getHub();
|
||||||
String topic = fetchedFeed.getTopic();
|
String topic = fetchedFeed.getTopic();
|
||||||
|
|||||||
@@ -14,10 +14,8 @@ import com.commafeed.backend.MetricsBean;
|
|||||||
import com.commafeed.backend.dao.FeedEntryDAO;
|
import com.commafeed.backend.dao.FeedEntryDAO;
|
||||||
import com.commafeed.backend.dao.FeedEntryStatusDAO;
|
import com.commafeed.backend.dao.FeedEntryStatusDAO;
|
||||||
import com.commafeed.backend.dao.FeedSubscriptionDAO;
|
import com.commafeed.backend.dao.FeedSubscriptionDAO;
|
||||||
import com.commafeed.backend.feeds.FeedUtils;
|
|
||||||
import com.commafeed.backend.model.Feed;
|
import com.commafeed.backend.model.Feed;
|
||||||
import com.commafeed.backend.model.FeedEntry;
|
import com.commafeed.backend.model.FeedEntry;
|
||||||
import com.commafeed.backend.model.FeedEntryContent;
|
|
||||||
import com.commafeed.backend.model.FeedEntryStatus;
|
import com.commafeed.backend.model.FeedEntryStatus;
|
||||||
import com.commafeed.backend.model.FeedSubscription;
|
import com.commafeed.backend.model.FeedSubscription;
|
||||||
import com.google.common.collect.Lists;
|
import com.google.common.collect.Lists;
|
||||||
@@ -45,13 +43,11 @@ public class FeedUpdateService {
|
|||||||
|
|
||||||
FeedEntry update = null;
|
FeedEntry update = null;
|
||||||
if (foundEntry == null) {
|
if (foundEntry == null) {
|
||||||
handleEntry(feed, entry);
|
|
||||||
entry.setInserted(Calendar.getInstance().getTime());
|
entry.setInserted(Calendar.getInstance().getTime());
|
||||||
entry.getFeeds().add(feed);
|
entry.getFeeds().add(feed);
|
||||||
|
|
||||||
update = entry;
|
update = entry;
|
||||||
} else {
|
} else {
|
||||||
|
|
||||||
if (!findFeed(foundEntry.getFeeds(), feed)) {
|
if (!findFeed(foundEntry.getFeeds(), feed)) {
|
||||||
foundEntry.getFeeds().add(feed);
|
foundEntry.getFeeds().add(feed);
|
||||||
update = foundEntry;
|
update = foundEntry;
|
||||||
@@ -95,15 +91,4 @@ public class FeedUpdateService {
|
|||||||
return found;
|
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));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user