2015-06-24 3 views
0

У меня есть класс контроллера в Spring MVC, который имеет один метод (executeBatch()), который вызывает длительные методы выполнения пакетной обработки на других классах. Эти казни занимают много времени, несколько часов. Метод executeBatch() аннотируется RequestMapping на вызов ajax на стороне клиента.вызвать метод несколько раз, используя нить

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

Могу ли я установить резьб (я имею в виду создать новую тему в каждом новом запросе к этому методу) в этом случае и как?

ответ

0

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

Подробности можно найти здесь: https://spring.io/guides/gs/async-method/

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