弹簧反应器和启动依赖

时间:2014-12-29 18:23:37

标签: spring project-reactor

启动是运行弹簧反应器的先决条件吗? 我试图在常规的Web应用程序环境中使用spring reactor。我可以看到反应堆配置已创建。消费者已注册。通知被称为。事件不会被解雇。什么以及如何检查?

配置

    @Configuration
    @EnableReactor
    public class ReactorConfiguration {
        @Bean
        Environment env() {
            return new Environment();
        }

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


    }

注册消费者:

@PostConstruct
public void onStartUp() {
    logger.debug("Registering Consumers");
    reactor.on(Selectors.T(Envelope.class), processParentRequest());
    reactor.on(Selectors.T(Bundle.class), processOptimizerRequest());

    reactor.on(Selectors.$(Constants.LOWER_ASG), processLowerAsgsRequest());
    reactor.on(Selectors.$(constants.SET_CONSUMPTION_LEVEL),
            processConsumersRequest());
    reactor.on(Selectors.$(constants.SET_GENERATION_LEVEL),
            processProducersRequest());
    reactor.on(Selectors.$(constants.SET_STORAGE_SUPPLY_LEVEL),
            processStoragesRequest());
}

private Consumer<Event<Envelope>> processParentRequest() {
    return envelope -> optimizerUpdatingService
            .processParentRequest(envelope);
}

private Consumer<Event<Bundle>> processOptimizerRequest() {
    return bundle -> eventProcessingDispenser
            .processOptimizerRequest(bundle);
}

private Consumer<Event<Envelope>> processLowerAsgsRequest() {
    return envelope -> lowerAsgsProcessingService
            .processLowerAsgRequest(envelope);
}

private Consumer<Event<Message>> processConsumersRequest() {
    return message -> consumersProcessingService
            .processConsumersRequest(message);
}

private Consumer<Event<Message>> processProducersRequest() {
    return message -> producersProcessingService
            .processProducersRequest(message);
}

private Consumer<Event<Message>> processStoragesRequest() {
    return message -> storageProcessingService
            .processStoragesRequest(message);
}

2 个答案:

答案 0 :(得分:0)

Spring Boot根本不是先决条件,它只是在使用Spring with Reactor时提供了一些便利。

可能会发生任何事情。没有任何细节,很难给出具体的建议。

答案 1 :(得分:0)

简单的答案是否定的。
Spring boot不是先决条件,但是它使您的自举变得容易。

您只需要在类路径中project reactor即可使用反应堆