package com.commafeed.backend.feeds; import java.util.List; import java.util.concurrent.Future; import javax.ejb.Schedule; import javax.ejb.Singleton; import javax.inject.Inject; import com.commafeed.backend.dao.FeedEntryService; import com.commafeed.backend.dao.FeedService; import com.commafeed.backend.model.Feed; import com.google.common.collect.Lists; @Singleton public class FeedTimer { @Inject FeedService feedService; @Inject FeedEntryService feedEntryService; @Inject FeedFetcher fetcher; @Schedule(hour = "*", minute = "*", persistent = false) private void timeout() { List feeds = feedService.findAll(); List> futures = Lists.newArrayList(); for (Feed feed : feeds) { Future future = fetcher.fetch(feed.getUrl()); futures.add(future); } for (Future future : futures) { try { Feed feed = future.get(); feedEntryService .updateEntries(feed.getUrl(), feed.getEntries()); } catch (Exception e) { e.printStackTrace(); } } } }