如何仅在 ApplicationReadyEvent 方法完成后 运行 消费者 @StreamListener?
How to run consumer @StreamListener only after ApplicationReadyEvent method completed?
我有一个消费者方法
@StreamListener(target = Sink.INPUT)
method()
我有一个带有事件侦听器的方法
@EventListener(ApplicationReadyEvent.class)
method()...
是否可以配置@StreamListener只在@EventListener方法完成后才开始监听?
根据 Spring Cloud Stream docs,您可以使用 属性 spring.cloud.stream.bindings.<bindingName>.consumer.autoStartup=false
这将阻止 BindingService
自动启动消费者绑定。然后你可以在需要的时候自己做,例如在 ApplicationReadyEvent
个听众中。
public class DelayedBindingStarter {
private final BindingsEndpoint bindingsEndpoint;
@EventListener(ApplicationReadyEvent.class)
public void applicationReady() {
bindingsEndpoint.changeState("binding_name", BindingsLifecycleController.State.STARTED);
}
}
我有一个消费者方法
@StreamListener(target = Sink.INPUT)
method()
我有一个带有事件侦听器的方法
@EventListener(ApplicationReadyEvent.class)
method()...
是否可以配置@StreamListener只在@EventListener方法完成后才开始监听?
根据 Spring Cloud Stream docs,您可以使用 属性 spring.cloud.stream.bindings.<bindingName>.consumer.autoStartup=false
这将阻止 BindingService
自动启动消费者绑定。然后你可以在需要的时候自己做,例如在 ApplicationReadyEvent
个听众中。
public class DelayedBindingStarter {
private final BindingsEndpoint bindingsEndpoint;
@EventListener(ApplicationReadyEvent.class)
public void applicationReady() {
bindingsEndpoint.changeState("binding_name", BindingsLifecycleController.State.STARTED);
}
}