better refresh algorithm using queues instead of synchronous database call

This commit is contained in:
Athou
2013-06-30 12:18:24 +02:00
parent 0d2b9131d3
commit d3dd084dd7
8 changed files with 225 additions and 169 deletions

View File

@@ -40,6 +40,7 @@ import com.commafeed.backend.feeds.FaviconFetcher;
import com.commafeed.backend.feeds.FeedFetcher;
import com.commafeed.backend.feeds.FeedRefreshTaskGiver;
import com.commafeed.backend.feeds.FeedRefreshUpdater;
import com.commafeed.backend.feeds.FeedRefreshWorker;
import com.commafeed.backend.feeds.OPMLExporter;
import com.commafeed.backend.feeds.OPMLImporter;
import com.commafeed.backend.model.User;
@@ -120,6 +121,9 @@ public abstract class AbstractREST {
@Inject
FeedRefreshTaskGiver taskGiver;
@Inject
FeedRefreshWorker feedRefreshWorker;
@Inject
FeedRefreshUpdater feedRefreshUpdater;

View File

@@ -185,9 +185,10 @@ public class AdminREST extends AbstractResourceREST {
map.put("lastMinute", metricsBean.getLastMinute());
map.put("lastHour", metricsBean.getLastHour());
if (backlog) {
map.put("backlog", feedDAO.getUpdatableCount());
map.put("backlog", taskGiver.getUpdatableCount());
}
map.put("queue", feedRefreshUpdater.getQueueSize());
map.put("http_queue", feedRefreshWorker.getQueueSize());
map.put("database_queue", feedRefreshUpdater.getQueueSize());
map.put("cache", metricsBean.getCacheStats());
return Response.ok(map).build();