竞争消费者

时间:2011-03-01 17:46:05

标签: spring-integration eip

我想配置一个spring集成应用程序,这样如果我在一个通道上放置一些由一条消息表示的任务,那么一组端点中的一个将选择下一个任务并对其进行处理。这将需要一些线程池执行器服务,我想。

1 个答案:

答案 0 :(得分:6)

是的,使用带有频道的调度员+任务执行者(又名 ExecutorChannel )。这样,使用调度程序的线程池将异步调用从通道中消耗的任何端点(例如service-activator)。

在以下示例中,任何登陆频道channel01的邮件都将由jobLauncher个帖子中的taskExecutor服务使用。

<int:channel id="channel01">
    <int:dispatcher task-executor="taskExecutor">
</int:channel>

<task:executor id="taskExecutor" pool-size="2"/>

<int:service-activator input-channel="channel01" ref="jobLauncher">