|
|
|
Spring scheduler + cached Thread pool
|
|||
|---|---|---|---|
|
#18+
Народ, как в спринге организовать шедулинг задач - чтобы каждая задача выполнялась в своем отдельном потоке org.springframework.scheduling.concurrent.ScheduledExecutorTask просто выполняет задачи в текущем потоке (то есть если в задаче поставить вечный sleep) то дальше никто выполнятся не будет ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.02.2012, 11:53:59 |
|
||
|
Spring scheduler + cached Thread pool
|
|||
|---|---|---|---|
|
#18+
ScheduledExecutorTask это просто таска. Она ничего никуда не скедулит. А поведение зависит от того в каком ScheduledExecutorService оно скедулится. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.02.2012, 12:02:04 |
|
||
|
Spring scheduler + cached Thread pool
|
|||
|---|---|---|---|
|
#18+
Ну почему скедулид <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 почему то не запускается в отдельном потоке ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.02.2012, 12:03:10 |
|
||
|
Spring scheduler + cached Thread pool
|
|||
|---|---|---|---|
|
#18+
justforsqlruНарод, как в спринге организовать шедулинг задач - чтобы каждая задача выполнялась в своем отдельном потоке org.springframework.scheduling.concurrent.ScheduledExecutorTask просто выполняет задачи в текущем потоке (то есть если в задаче поставить вечный sleep) то дальше никто выполнятся не будет ... Выполняет не в текущем, просто он блокирует текущий до завершения задачи. ThreadPoolTaskExecutor и там юзать execute(). Либо как советует сам спринг, юзать ScheduledExecutorTask+Quartz (видимо getRunnable() и потом его в quartz) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.02.2012, 12:03:26 |
|
||
|
Spring scheduler + cached Thread pool
|
|||
|---|---|---|---|
|
#18+
ОзверинjustforsqlruНарод, как в спринге организовать шедулинг задач - чтобы каждая задача выполнялась в своем отдельном потоке org.springframework.scheduling.concurrent.ScheduledExecutorTask просто выполняет задачи в текущем потоке (то есть если в задаче поставить вечный sleep) то дальше никто выполнятся не будет ... Выполняет не в текущем, просто он блокирует текущий до завершения задачи. ThreadPoolTaskExecutor и там юзать execute(). Либо как советует сам спринг, юзать ScheduledExecutorTask+Quartz (видимо getRunnable() и потом его в quartz) Это не из личного опыта, честно.это догадки) в спринге с этой частью не работал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.02.2012, 12:04:29 |
|
||
|
Spring scheduler + cached Thread pool
|
|||
|---|---|---|---|
|
#18+
А можно без quartz это сделать ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.02.2012, 12:04:32 |
|
||
|
Spring scheduler + cached Thread pool
|
|||
|---|---|---|---|
|
#18+
justforsqlruА можно без quartz это сделать ? Не работал , но подозреваю..что ваши таски все callable? Соответственно где то используются значения и вызов примерно такое value = taskExecutor.submit().get(); в данном случае - это блокирующий вызов, то есть основной поток стоит, пока ваша таска не вернет значение. Вам надо копать в сторону runnable либо пытаться делать что то типа taskExecutor.execute(runnable). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.02.2012, 12:09:41 |
|
||
|
Spring scheduler + cached Thread pool
|
|||
|---|---|---|---|
|
#18+
justforsqlru, http://static.springsource.org/spring/docs/3.0.5.RELEASE/reference/scheduling.html - здесь же вроде все есть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.02.2012, 12:09:51 |
|
||
|
Spring scheduler + cached Thread pool
|
|||
|---|---|---|---|
|
#18+
Смотри ScheduledExecutorFactoryBean свойства exposedExecutor и poolSize (=1). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.02.2012, 12:17:35 |
|
||
|
Spring scheduler + cached Thread pool
|
|||
|---|---|---|---|
|
#18+
Озверин, мои таски не callable а runnable как отменить блокировку запускающего потока ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.02.2012, 12:24:26 |
|
||
|
Spring scheduler + cached Thread pool
|
|||
|---|---|---|---|
|
#18+
justforsqlruОзверин, мои таски не callable а runnable как отменить блокировку запускающего потока ? почитать поглубже доку sping`а. Если не вкурсе executorService`ов - то про них вначале. Условно, ThreadPoolExecutor.execute(runnable) - не блокирующий запуск таски в отдельном потомке. Скорее всего аннотация типа @Async - вас спасет даже в текущем конфиге. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.02.2012, 12:38:27 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=37676423&tid=2132483]: |
0ms |
get settings: |
14ms |
get forum list: |
30ms |
check forum access: |
8ms |
check topic access: |
8ms |
track hit: |
85ms |
get topic data: |
22ms |
get forum data: |
5ms |
get page messages: |
104ms |
get tp. blocked users: |
3ms |
| others: | 361ms |
| total: | 640ms |

| 0 / 0 |
