2012-04-16 5 views
2

Я использую ThreadPoolExecutor душить вызов на мой сервлет, я говорил моей ссылку ниже: http://www.softwareengineeringsolutions.com/blogs/2010/08/13/asynchronous-servlets-in-servlet-spec-3-0/пользовательское ThreadPoolExecutor с задержками

Это дает хороший пример. Но нужно добавить задержки. Как это делается здесь. Я поддерживаю пул из 7 потоков, которые запускаются одновременно. Но новые потоки должны появляться из очереди после того, как все потоки завершатся, и мне нужно поставить перед этим. поэтому каждые 7 звонков мне нужна задержка, прежде чем больше потоков будет объединено из очереди и запущено как задача.

Будет ли ScheduledThreadPoolExecutor помогать, если да, то каким образом. Или как изменить существующий ThreadPoolExecutor поможет.

ответ

0

Если вам просто нужно выполнить сервлет-запросы, асинхронные запросы с пулом потоков не способ решить проблему. самый простой способ - добавить фильтр, который ограничивает входящие запросы, используя что-то вроде семафора.

Если вам нужно использовать асинхронные запросы и хотите, чтобы их дроссель, то просто используйте пул потоков ограниченного размера.

+0

Я пробовал это, даже имел рабочий код, он был основан не на модели синхронизации, а на модели Async. Можете ли вы помочь мне преобразовать его. Более код использовал консьерж пристани. Мне нужна имплантация кота. – Maverick

+0

[ссылка] (http://dev.eclipse.org/svnroot/rt/org.eclipse.jetty/jetty/trunk/jetty-servlets/src/main/java/org/eclipse/jetty/servlets/QoSFilter.java) – Maverick

+0

, пожалуйста, предложите какое-нибудь решение? – Maverick