【问题标题】:Competing Consumers竞争消费者
【发布时间】:2011-03-01 17:46:05
【问题描述】:

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

【问题讨论】:

    标签: spring-integration eip


    【解决方案1】:

    是的,使用调度程序 + 任务执行器和通道(又名 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">
    

    【讨论】:

      猜你喜欢
      • 2010-12-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-01-24
      • 2018-06-03
      • 1970-01-01
      • 2019-07-16
      • 2019-04-01
      相关资源
      最近更新 更多