2014-12-21 4 views
0

Я определил различные планировщик в моем файле конфигурации следующим образом:Как назначить метод весеннего контроллера MVC?

<task:executor id="xxxxxExecutor" pool-size="${async.executor.pool.size}"/> 

<task:scheduler id="xxxxwwwScheduler" pool-size="1" /> 

<task:scheduler id="qqqqSchedular" pool-size="1" /> 

<task:scheduler id="lastScheduler" pool-size="1" /> 

Мой контроллер был аннотированный через @Controller аннотацию. Как указать конкретную Scheduler в аннотации @Scheduled весной?

p.s. Я пытаюсь запланировать метод в контроллере с помощью аннотации @Scheduled.

+2

Зачем вам нужно запланировать в контроллере? Зачем вам нужен метод обработки на вашем веб-уровне? Вы не можете указать конкретный планировщик в аннотации, тот, который указан в 'task: annotation-driven', тот, который всегда используется. –

ответ

1

Использование нескольких планировщиков и указание на них через @Scheduled аннотация, к сожалению, невозможно.

Однако, если вы действительно нужна эта гибкость, вы можете определить работу в XML:

<task:scheduled-tasks scheduler="myScheduler"> 
    <task:scheduled ref="beanA" method="methodA" fixed-delay="5000"/> 
</task:scheduled-tasks> 

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

Надеюсь, это поможет.

Смежные вопросы