|
|
|
Вопрос по ThreadPoolTaskScheduler
|
|||
|---|---|---|---|
|
#18+
Всем привет. У меня вопросик по Spring ThreadPoolTaskScheduler Создаются потоки типа: Код: java 1. 2. 3. 4. Далее : Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. В StartSearch в методе run есть счетчик int count, при достижении count=5 убиваю поток: Код: java 1. Не знаю на сколько правильно так делать, но все работает (если у кого-то есть замечания как сделать это лучше, с радостью послушаю). И главный вопрос: вот крутится у меня например 10 потоков, как мне отменить какой-то конкретный не дожидаясь пока он отменится по счетчику. Другими словами, есть ли какой-то метод в ThreadPoolTaskScheduler, который умеет останавливать какой-то конкретный ScheduledFuture<StartSearch> scheduledFuture. Спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.05.2015, 10:01 |
|
||
|
Вопрос по ThreadPoolTaskScheduler
|
|||
|---|---|---|---|
|
#18+
Можно конечно складировать в какой-нибудь Set, но.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.05.2015, 10:09 |
|
||
|
Вопрос по ThreadPoolTaskScheduler
|
|||
|---|---|---|---|
|
#18+
Решила-таки сохранять все свои StartSearch implements Runnable{ в Set и после при определенных условиях отменять эти потоки. Не знаю, может перфекционизм мешает, но как-то не совсем нравится этот способ, кто из уважаемых экспертов прокомментирует мою дилемму? Спасибо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.05.2015, 20:11 |
|
||
|
Вопрос по ThreadPoolTaskScheduler
|
|||
|---|---|---|---|
|
#18+
Вы не оперируете потоками и не отменяете их. Вы оперируете задачами. Не понятно в чем проблема с cancel(). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.05.2015, 20:37 |
|
||
|
Вопрос по ThreadPoolTaskScheduler
|
|||
|---|---|---|---|
|
#18+
Blazkowicz, Спасибо за отклик. Корректно ли в данном случае хранить задачи в Set-е, разве в ThreadPoolTaskScheduler они не складируются? Ведь есть же метод getActiveCountThread(как-то так он называется), почему в нем нет метода для возвращения списка активных задач? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.05.2015, 20:53 |
|
||
|
Вопрос по ThreadPoolTaskScheduler
|
|||
|---|---|---|---|
|
#18+
Нет никаких "активных" задач. Есть очередь. http://docs.spring.io/spring-framework/docs/4.1.6.RELEASE/javadoc-api/org/springframework/scheduling/concurrent/ThreadPoolTaskScheduler.html#createExecutor-int-java.util.concurrent.ThreadFactory-java.util.concurrent.RejectedExecutionHandler- ThreadPoolTaskScheduler имеет метод createExecutor, который создает внутренний скедулер из j.u.c. У того скедулера есть метод getQueue(), который возвращает ссылку на очередь задач. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.05.2015, 21:12 |
|
||
|
Вопрос по ThreadPoolTaskScheduler
|
|||
|---|---|---|---|
|
#18+
BlazkowiczНет никаких "активных" задач. Есть очередь. http://docs.spring.io/spring-framework/docs/4.1.6.RELEASE/javadoc-api/org/springframework/scheduling/concurrent/ThreadPoolTaskScheduler.html#createExecutor-int-java.util.concurrent.ThreadFactory-java.util.concurrent.RejectedExecutionHandler- ThreadPoolTaskScheduler имеет метод createExecutor, который создает внутренний скедулер из j.u.c. У того скедулера есть метод getQueue(), который возвращает ссылку на очередь задач. В Код: java 1. нет метода Код: java 1. , такой метод есть в его реализации Код: java 1. 2. 3. а вот в Код: java 1. такой метод есть, т.е., как я поняла, Код: java 1. вернет мне очередь активных задач из которой я смогу извлечь нужную и отменить. Правильно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.05.2015, 21:46 |
|
||
|
Вопрос по ThreadPoolTaskScheduler
|
|||
|---|---|---|---|
|
#18+
Не могу разобраться хоть убейте. Получаю очередь задач: Код: java 1. LOGGER.info("collection: "+queueMission); возвращает: Код: java 1. Как мне теперь взять и отменить какую-то конкретную задачу находящуюся в этой коллекции, а остальные оставить работать дальше? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.05.2015, 17:33 |
|
||
|
Вопрос по ThreadPoolTaskScheduler
|
|||
|---|---|---|---|
|
#18+
JulT, Нужно поменять создание ExecutorService и передавать ему свою собственную очередь, тип которой вам известен и к которой вы можете иметь полный доступ. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.05.2015, 17:35 |
|
||
|
Вопрос по ThreadPoolTaskScheduler
|
|||
|---|---|---|---|
|
#18+
Честно говоря, не понятно чем не устраивает список Future, которые можно проверять и отменять при желании. Выгоды от прямого доступа в очередь, вроде и нет особой. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.05.2015, 17:36 |
|
||
|
Вопрос по ThreadPoolTaskScheduler
|
|||
|---|---|---|---|
|
#18+
BlazkowiczЧестно говоря, не понятно чем не устраивает список Future, которые можно проверять и отменять при желании. Выгоды от прямого доступа в очередь, вроде и нет особой. Вы про это: https://spring.io/guides/gs/async-method/ ? И что вы имеете ввиду под списком? Т.е. создавать каждый раз Future выполняющий определенную логику в отдельном потоке, при этом складировать их в какой-нибудь Set (или куда лучше?), после, если, например, захочу отменить какую-нибудь задачу, я лезу в этот сет, ищу нужную мне таску и отменяю ее? У меня как раз сейчас так все и работает, но мне не нравится, что я завожу отельную коллекцию для этого, хочется использовать встроенные средства самого пула (типа getQueque..) и дальше уже работать с объектами этой очереди. И еще, вы пишите "Нужно поменять создание ExecutorService и передавать ему свою собственную очередь", как это сделать объясните пожалуйста? Спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.05.2015, 19:31 |
|
||
|
Вопрос по ThreadPoolTaskScheduler
|
|||
|---|---|---|---|
|
#18+
JulTИ еще, вы пишите "Нужно поменять создание ExecutorService и передавать ему свою собственную очередь", как это сделать объясните пожалуйста? http://stackoverflow.com/a/13514605 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2015, 08:55 |
|
||
|
Вопрос по ThreadPoolTaskScheduler
|
|||
|---|---|---|---|
|
#18+
BlazkowiczJulTИ еще, вы пишите "Нужно поменять создание ExecutorService и передавать ему свою собственную очередь", как это сделать объясните пожалуйста? http://stackoverflow.com/a/13514605 Я вам безумно благодарна! :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2015, 10:18 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=38951184&tid=2125464]: |
0ms |
get settings: |
5ms |
get forum list: |
14ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
154ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
31ms |
get tp. blocked users: |
1ms |
| others: | 243ms |
| total: | 461ms |

| 0 / 0 |
