Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Spring scheduler + cached Thread pool / 11 сообщений из 11, страница 1 из 1
24.02.2012, 11:53:59
    #37676406
justforsqlru
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Spring scheduler + cached Thread pool
Народ, как в спринге организовать шедулинг задач - чтобы каждая задача выполнялась в своем отдельном потоке


org.springframework.scheduling.concurrent.ScheduledExecutorTask

просто выполняет задачи в текущем потоке (то есть если в задаче поставить вечный sleep) то дальше никто выполнятся не будет ...
...
Рейтинг: 0 / 0
24.02.2012, 12:02:04
    #37676421
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Spring scheduler + cached Thread pool
ScheduledExecutorTask это просто таска. Она ничего никуда не скедулит. А поведение зависит от того в каком ScheduledExecutorService оно скедулится.
...
Рейтинг: 0 / 0
24.02.2012, 12:03:10
    #37676423
justforsqlru
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Spring scheduler + cached Thread pool
Ну почему скедулид


<bean id="threadPoolTaskExecutor" class="org.springframework.scheduling.concurrent.ScheduledExecutorTask">
<property name="delay" value="2"/>
<property name="period" value="2"/>
<property name="runnable" ref="taskExecutor"/>
</bean>


вот так примерно


просто runnable почему то не запускается в отдельном потоке
...
Рейтинг: 0 / 0
24.02.2012, 12:03:26
    #37676424
Озверин
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Spring scheduler + cached Thread pool
justforsqlruНарод, как в спринге организовать шедулинг задач - чтобы каждая задача выполнялась в своем отдельном потоке


org.springframework.scheduling.concurrent.ScheduledExecutorTask

просто выполняет задачи в текущем потоке (то есть если в задаче поставить вечный sleep) то дальше никто выполнятся не будет ...

Выполняет не в текущем, просто он блокирует текущий до завершения задачи.
ThreadPoolTaskExecutor и там юзать execute().
Либо как советует сам спринг, юзать ScheduledExecutorTask+Quartz (видимо getRunnable() и потом его в quartz)
...
Рейтинг: 0 / 0
24.02.2012, 12:04:29
    #37676425
Озверин
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Spring scheduler + cached Thread pool
ОзверинjustforsqlruНарод, как в спринге организовать шедулинг задач - чтобы каждая задача выполнялась в своем отдельном потоке


org.springframework.scheduling.concurrent.ScheduledExecutorTask

просто выполняет задачи в текущем потоке (то есть если в задаче поставить вечный sleep) то дальше никто выполнятся не будет ...

Выполняет не в текущем, просто он блокирует текущий до завершения задачи.
ThreadPoolTaskExecutor и там юзать execute().
Либо как советует сам спринг, юзать ScheduledExecutorTask+Quartz (видимо getRunnable() и потом его в quartz)

Это не из личного опыта, честно.это догадки) в спринге с этой частью не работал.
...
Рейтинг: 0 / 0
24.02.2012, 12:04:32
    #37676426
justforsqlru
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Spring scheduler + cached Thread pool
А можно без quartz это сделать ?
...
Рейтинг: 0 / 0
24.02.2012, 12:09:41
    #37676434
Озверин
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Spring scheduler + cached Thread pool
justforsqlruА можно без quartz это сделать ?

Не работал , но подозреваю..что ваши таски все callable? Соответственно где то используются значения и вызов примерно такое
value = taskExecutor.submit().get();
в данном случае - это блокирующий вызов, то есть основной поток стоит, пока ваша таска не вернет значение. Вам надо копать в сторону runnable либо пытаться делать что то типа taskExecutor.execute(runnable).
...
Рейтинг: 0 / 0
24.02.2012, 12:09:51
    #37676435
Leonidv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Spring scheduler + cached Thread pool
justforsqlru,

http://static.springsource.org/spring/docs/3.0.5.RELEASE/reference/scheduling.html - здесь же вроде все есть.
...
Рейтинг: 0 / 0
24.02.2012, 12:17:35
    #37676446
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Spring scheduler + cached Thread pool
Смотри ScheduledExecutorFactoryBean свойства exposedExecutor и poolSize (=1).
...
Рейтинг: 0 / 0
24.02.2012, 12:24:26
    #37676456
justforsqlru
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Spring scheduler + cached Thread pool
Озверин,

мои таски не callable а runnable


как отменить блокировку запускающего потока ?
...
Рейтинг: 0 / 0
24.02.2012, 12:38:27
    #37676486
Озверин
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Spring scheduler + cached Thread pool
justforsqlruОзверин,

мои таски не callable а runnable


как отменить блокировку запускающего потока ?

почитать поглубже доку sping`а.
Если не вкурсе executorService`ов - то про них вначале.

Условно, ThreadPoolExecutor.execute(runnable) - не блокирующий запуск таски в отдельном потомке.
Скорее всего аннотация типа @Async - вас спасет даже в текущем конфиге.
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Spring scheduler + cached Thread pool / 11 сообщений из 11, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]