Files
Athou_commafeed/src/main/java/com/commafeed/backend/feeds/FeedUpdater.java
2013-03-27 09:37:15 +01:00

52 lines
1.3 KiB
Java

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