From a2a88e85c473c2139b653506a93ae92c38052b5a Mon Sep 17 00:00:00 2001 From: Athou Date: Sat, 22 Jun 2013 22:32:57 +0200 Subject: [PATCH] queue first when urgent --- .../backend/feeds/FeedRefreshUpdater.java | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/commafeed/backend/feeds/FeedRefreshUpdater.java b/src/main/java/com/commafeed/backend/feeds/FeedRefreshUpdater.java index 1ac2dda3..9700e18e 100644 --- a/src/main/java/com/commafeed/backend/feeds/FeedRefreshUpdater.java +++ b/src/main/java/com/commafeed/backend/feeds/FeedRefreshUpdater.java @@ -75,7 +75,19 @@ public class FeedRefreshUpdater { locks = Striped.lazyWeakLock(threads * 100000); pool = new ThreadPoolExecutor(threads, threads, 0, TimeUnit.MILLISECONDS, - queue = new LinkedBlockingDeque(500 * threads)); + queue = new LinkedBlockingDeque(500 * threads) { + private static final long serialVersionUID = 1L; + + @Override + public boolean offer(Runnable r) { + Task task = (Task) r; + if (task.getFeed().isUrgent()) { + return offerFirst(r); + } else { + return offerLast(r); + } + } + }); pool.setRejectedExecutionHandler(new RejectedExecutionHandler() { @Override public void rejectedExecution(Runnable r, ThreadPoolExecutor e) {