From 735c2efb340f6d1936b8a56e1b2175317d664c73 Mon Sep 17 00:00:00 2001 From: Athou Date: Thu, 25 Apr 2013 14:41:56 +0200 Subject: [PATCH] queue feed for refresh after a subscription --- .../com/commafeed/backend/feeds/FeedRefreshTaskGiver.java | 7 +++++++ .../backend/services/FeedSubscriptionService.java | 4 ++++ 2 files changed, 11 insertions(+) diff --git a/src/main/java/com/commafeed/backend/feeds/FeedRefreshTaskGiver.java b/src/main/java/com/commafeed/backend/feeds/FeedRefreshTaskGiver.java index 326df6f8..70558f38 100644 --- a/src/main/java/com/commafeed/backend/feeds/FeedRefreshTaskGiver.java +++ b/src/main/java/com/commafeed/backend/feeds/FeedRefreshTaskGiver.java @@ -37,6 +37,13 @@ public class FeedRefreshTaskGiver { .getBackgroundThreads(); } + @Lock(LockType.WRITE) + public void add(Feed feed) { + queue.add(feed); + feed.setLastUpdated(Calendar.getInstance().getTime()); + feedDAO.update(feed); + } + @Lock(LockType.WRITE) public Feed take() { Feed feed = queue.poll(); diff --git a/src/main/java/com/commafeed/backend/services/FeedSubscriptionService.java b/src/main/java/com/commafeed/backend/services/FeedSubscriptionService.java index 6a25b661..57ea80d5 100644 --- a/src/main/java/com/commafeed/backend/services/FeedSubscriptionService.java +++ b/src/main/java/com/commafeed/backend/services/FeedSubscriptionService.java @@ -8,6 +8,7 @@ import javax.inject.Inject; import com.commafeed.backend.dao.FeedEntryDAO; import com.commafeed.backend.dao.FeedEntryStatusDAO; import com.commafeed.backend.dao.FeedSubscriptionDAO; +import com.commafeed.backend.feeds.FeedRefreshTaskGiver; import com.commafeed.backend.model.Feed; import com.commafeed.backend.model.FeedCategory; import com.commafeed.backend.model.FeedEntry; @@ -30,6 +31,8 @@ public class FeedSubscriptionService { @Inject FeedSubscriptionDAO feedSubscriptionDAO; + + @Inject FeedRefreshTaskGiver taskGiver; public Feed subscribe(User user, String url, String title, FeedCategory category) { @@ -60,6 +63,7 @@ public class FeedSubscriptionService { } feedEntryStatusDAO.save(statuses); } + taskGiver.add(feed); return feed; } }