mirror of
https://github.com/Athou/commafeed.git
synced 2026-03-21 21:37:29 +00:00
tweak feed fetching
This commit is contained in:
51
src/main/java/com/commafeed/backend/feeds/FeedUpdater.java
Normal file
51
src/main/java/com/commafeed/backend/feeds/FeedUpdater.java
Normal file
@@ -0,0 +1,51 @@
|
||||
package com.commafeed.backend.feeds;
|
||||
|
||||
import java.util.Calendar;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
import javax.ejb.AccessTimeout;
|
||||
import javax.ejb.Asynchronous;
|
||||
import javax.ejb.Lock;
|
||||
import javax.ejb.LockType;
|
||||
import javax.ejb.Stateless;
|
||||
import javax.inject.Inject;
|
||||
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import com.commafeed.backend.dao.FeedEntryService;
|
||||
import com.commafeed.backend.dao.FeedService;
|
||||
import com.commafeed.backend.model.Feed;
|
||||
|
||||
@Stateless
|
||||
public class FeedUpdater {
|
||||
|
||||
private static Logger log = LoggerFactory.getLogger(FeedTimer.class);
|
||||
|
||||
@Inject
|
||||
FeedFetcher fetcher;
|
||||
|
||||
@Inject
|
||||
FeedService feedService;
|
||||
|
||||
@Inject
|
||||
FeedEntryService feedEntryService;
|
||||
|
||||
@Asynchronous
|
||||
@Lock(LockType.READ)
|
||||
@AccessTimeout(value = 15, unit = TimeUnit.SECONDS)
|
||||
public void update(Feed feed) {
|
||||
|
||||
try {
|
||||
Feed fetchedFeed = fetcher.fetch(feed.getUrl());
|
||||
feedEntryService.updateEntries(feed.getUrl(),
|
||||
fetchedFeed.getEntries());
|
||||
} catch (Exception e) {
|
||||
log.info("Unable to refresh feed " + feed.getUrl() + " : "
|
||||
+ e.getMessage());
|
||||
feed.setLastUpdated(Calendar.getInstance().getTime());
|
||||
feed.setMessage("Unable to refresh feed: " + e.getMessage());
|
||||
feedService.update(feed);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user