Spring反应器异步执行消费者

时间:2015-12-07 07:10:00

标签: spring asynchronous reactor

您好我正在尝试Spring反应器到目前为止一切正常但我的消费者一个接一个地调用..异步

我的用例:

事件从一个安静的控制器发布,并且调用两个打印到控制台的简单消费者(实际上,一个消费者写入数据库,另一个消费者将数据发布到网络套接字)

我正在使用spring boot 1.2.7

这是我的控制器

JsonConvert.Deserialize<RootObject>()

我的事件处理程序

处理程序1

    @Controller
    public class MessageController {    
    @Autowired
    @Qualifier("myreactor")
    private Reactor r;  
    @RequestMapping("/hello/{username}")
    public  @ResponseBody String  welcome(@PathVariable String username) {      
        r.notify("MessageCreated", Event.wrap(username));
        return username;        
    }
}

处理程序2

 @Consumer
  public class MessageConsumer {    
      @Autowired
      @Qualifier("myreactor")
      private Reactor reactor;

      @Selector("MessageCreated")    
      public void handleRequest(Event<String> evt) {
          System.out.println("Called Handler 1 " +evt.getData());
      }
} 

我的反应堆配置

    @Consumer
     public class MessageConsumer2 {    
      @Autowired
      @Qualifier("myreactor")
      private Reactor reactor;

       @Selector("MessageCreated")   
      public void handleRequest(Event<String> evt) {        
          System.out.println("Called Handler 2 "+ evt.getData());             
      }
}

无论我做什么,结果总是

@Configuration
@EnableReactor
public class ReactorConfiguration {

        @Bean
        Environment env() {
            return new Environment();
        }

        @Bean
        @Qualifier("myreactor")
        Reactor myreactor(Environment env) {            
            return Reactors.reactor()
                    .env(env)
                    .dispatcher(Environment.THREAD_POOL)
                    .get();                  
        }
} 

以相同的顺序调用消费者 ...请让我知道我在哪里陷入困境。上面是一个模拟实现,因为我不能在这里粘贴原始代码。

0 个答案:

没有答案