mirror of
https://github.com/Athou/commafeed.git
synced 2026-03-21 21:37:29 +00:00
queue size in metrics
This commit is contained in:
@@ -3,6 +3,7 @@ package com.commafeed.backend.feeds;
|
|||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.concurrent.ArrayBlockingQueue;
|
import java.util.concurrent.ArrayBlockingQueue;
|
||||||
|
import java.util.concurrent.BlockingQueue;
|
||||||
import java.util.concurrent.RejectedExecutionHandler;
|
import java.util.concurrent.RejectedExecutionHandler;
|
||||||
import java.util.concurrent.ThreadPoolExecutor;
|
import java.util.concurrent.ThreadPoolExecutor;
|
||||||
import java.util.concurrent.TimeUnit;
|
import java.util.concurrent.TimeUnit;
|
||||||
@@ -57,6 +58,7 @@ public class FeedRefreshUpdater {
|
|||||||
FeedSubscriptionDAO feedSubscriptionDAO;
|
FeedSubscriptionDAO feedSubscriptionDAO;
|
||||||
|
|
||||||
private ThreadPoolExecutor pool;
|
private ThreadPoolExecutor pool;
|
||||||
|
private BlockingQueue<Runnable> queue;
|
||||||
private Striped<Lock> locks;
|
private Striped<Lock> locks;
|
||||||
|
|
||||||
@PostConstruct
|
@PostConstruct
|
||||||
@@ -66,8 +68,8 @@ public class FeedRefreshUpdater {
|
|||||||
log.info("Creating database pool with {} threads", threads);
|
log.info("Creating database pool with {} threads", threads);
|
||||||
locks = Striped.lock(threads);
|
locks = Striped.lock(threads);
|
||||||
pool = new ThreadPoolExecutor(threads, threads, 0,
|
pool = new ThreadPoolExecutor(threads, threads, 0,
|
||||||
TimeUnit.MILLISECONDS, new ArrayBlockingQueue<Runnable>(
|
TimeUnit.MILLISECONDS,
|
||||||
100 * threads));
|
queue = new ArrayBlockingQueue<Runnable>(100 * threads));
|
||||||
pool.setRejectedExecutionHandler(new RejectedExecutionHandler() {
|
pool.setRejectedExecutionHandler(new RejectedExecutionHandler() {
|
||||||
@Override
|
@Override
|
||||||
public void rejectedExecution(Runnable r, ThreadPoolExecutor e) {
|
public void rejectedExecution(Runnable r, ThreadPoolExecutor e) {
|
||||||
@@ -149,4 +151,8 @@ public class FeedRefreshUpdater {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public int getQueueSize() {
|
||||||
|
return queue.size();
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -36,6 +36,7 @@ import com.commafeed.backend.dao.UserRoleDAO;
|
|||||||
import com.commafeed.backend.dao.UserSettingsDAO;
|
import com.commafeed.backend.dao.UserSettingsDAO;
|
||||||
import com.commafeed.backend.feeds.FeedFetcher;
|
import com.commafeed.backend.feeds.FeedFetcher;
|
||||||
import com.commafeed.backend.feeds.FeedRefreshTaskGiver;
|
import com.commafeed.backend.feeds.FeedRefreshTaskGiver;
|
||||||
|
import com.commafeed.backend.feeds.FeedRefreshUpdater;
|
||||||
import com.commafeed.backend.feeds.OPMLExporter;
|
import com.commafeed.backend.feeds.OPMLExporter;
|
||||||
import com.commafeed.backend.feeds.OPMLImporter;
|
import com.commafeed.backend.feeds.OPMLImporter;
|
||||||
import com.commafeed.backend.model.User;
|
import com.commafeed.backend.model.User;
|
||||||
@@ -116,6 +117,9 @@ public abstract class AbstractREST {
|
|||||||
@Inject
|
@Inject
|
||||||
FeedRefreshTaskGiver taskGiver;
|
FeedRefreshTaskGiver taskGiver;
|
||||||
|
|
||||||
|
@Inject
|
||||||
|
FeedRefreshUpdater feedRefreshUpdater;
|
||||||
|
|
||||||
@PostConstruct
|
@PostConstruct
|
||||||
public void init() {
|
public void init() {
|
||||||
CommaFeedApplication app = CommaFeedApplication.get();
|
CommaFeedApplication app = CommaFeedApplication.get();
|
||||||
|
|||||||
@@ -179,7 +179,8 @@ public class AdminREST extends AbstractResourceREST {
|
|||||||
Map<String, ? extends Object> map = ImmutableMap.of("lastMinute",
|
Map<String, ? extends Object> map = ImmutableMap.of("lastMinute",
|
||||||
metricsBean.getLastMinute(), "lastHour",
|
metricsBean.getLastMinute(), "lastHour",
|
||||||
metricsBean.getLastHour(), "backlog",
|
metricsBean.getLastHour(), "backlog",
|
||||||
feedDAO.getUpdatableCount());
|
feedDAO.getUpdatableCount(), "queue",
|
||||||
|
feedRefreshUpdater.getQueueSize());
|
||||||
return Response.ok(map).build();
|
return Response.ok(map).build();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user