У меня есть канал очереди и активатор службы с опросчиком, который читает из этой очереди. Я бы хотел, чтобы конфигурация говорила: «Я хочу, чтобы 50 потоков опрашивали эту очередь, и каждый раз, когда вы опрашиваете и возвращаете сообщение, в этом потоке вызывайте службу, на которую указывает активатор службы -».
Служба не имеет аннотаций @Async
, но не имеет состояния и безопасна для параллельного выполнения.
Будет ли это делать ниже? Существуют ли другие предпочтительные способы достижения этого?
<int:channel id="titles">
<int:queue/>
</int:channel>
<int:service-activator output-channel="resolvedIds" ref="searchService" method="searchOnTitle" input-channel="titles">
<int:poller fixed-delay="100" time-unit="MILLISECONDS" task-executor="taskExecutor"></int:poller>
</int:service-activator>
<task:executor id="taskExecutor" pool-size="50" keep-alive="120" />