diff --git a/src/main/java/com/commafeed/backend/feeds/FeedRefreshUpdater.java b/src/main/java/com/commafeed/backend/feeds/FeedRefreshUpdater.java index b7da4e45..c90e3afd 100644 --- a/src/main/java/com/commafeed/backend/feeds/FeedRefreshUpdater.java +++ b/src/main/java/com/commafeed/backend/feeds/FeedRefreshUpdater.java @@ -3,6 +3,7 @@ package com.commafeed.backend.feeds; import java.util.Collection; import java.util.List; import java.util.concurrent.ArrayBlockingQueue; +import java.util.concurrent.BlockingQueue; import java.util.concurrent.RejectedExecutionHandler; import java.util.concurrent.ThreadPoolExecutor; import java.util.concurrent.TimeUnit; @@ -57,6 +58,7 @@ public class FeedRefreshUpdater { FeedSubscriptionDAO feedSubscriptionDAO; private ThreadPoolExecutor pool; + private BlockingQueue queue; private Striped locks; @PostConstruct @@ -66,8 +68,8 @@ public class FeedRefreshUpdater { log.info("Creating database pool with {} threads", threads); locks = Striped.lock(threads); pool = new ThreadPoolExecutor(threads, threads, 0, - TimeUnit.MILLISECONDS, new ArrayBlockingQueue( - 100 * threads)); + TimeUnit.MILLISECONDS, + queue = new ArrayBlockingQueue(100 * threads)); pool.setRejectedExecutionHandler(new RejectedExecutionHandler() { @Override public void rejectedExecution(Runnable r, ThreadPoolExecutor e) { @@ -149,4 +151,8 @@ public class FeedRefreshUpdater { } } + public int getQueueSize() { + return queue.size(); + } + } diff --git a/src/main/java/com/commafeed/frontend/rest/resources/AbstractREST.java b/src/main/java/com/commafeed/frontend/rest/resources/AbstractREST.java index b2599379..7d975cda 100644 --- a/src/main/java/com/commafeed/frontend/rest/resources/AbstractREST.java +++ b/src/main/java/com/commafeed/frontend/rest/resources/AbstractREST.java @@ -36,6 +36,7 @@ import com.commafeed.backend.dao.UserRoleDAO; import com.commafeed.backend.dao.UserSettingsDAO; import com.commafeed.backend.feeds.FeedFetcher; import com.commafeed.backend.feeds.FeedRefreshTaskGiver; +import com.commafeed.backend.feeds.FeedRefreshUpdater; import com.commafeed.backend.feeds.OPMLExporter; import com.commafeed.backend.feeds.OPMLImporter; import com.commafeed.backend.model.User; @@ -116,6 +117,9 @@ public abstract class AbstractREST { @Inject FeedRefreshTaskGiver taskGiver; + @Inject + FeedRefreshUpdater feedRefreshUpdater; + @PostConstruct public void init() { CommaFeedApplication app = CommaFeedApplication.get(); diff --git a/src/main/java/com/commafeed/frontend/rest/resources/AdminREST.java b/src/main/java/com/commafeed/frontend/rest/resources/AdminREST.java index 4f6f402f..1673ebe3 100644 --- a/src/main/java/com/commafeed/frontend/rest/resources/AdminREST.java +++ b/src/main/java/com/commafeed/frontend/rest/resources/AdminREST.java @@ -179,7 +179,8 @@ public class AdminREST extends AbstractResourceREST { Map map = ImmutableMap.of("lastMinute", metricsBean.getLastMinute(), "lastHour", metricsBean.getLastHour(), "backlog", - feedDAO.getUpdatableCount()); + feedDAO.getUpdatableCount(), "queue", + feedRefreshUpdater.getQueueSize()); return Response.ok(map).build(); } }