小编典典

停止使用流侦听器的消息

spring-boot

我正在寻找一种方法来停止使用流侦听器消耗消息。

@StreamListener(MBinding.M_INPUT)
    public void consumeMessage(Message<MerchantEvent> message) {
    //handle when receive message
 }




cloud:
        stream:
            bindings:
                MInput:
                    destination: topicName
                    group: groupName

我已经用谷歌搜索过,但是现在仍然不知道如何停止消费。有谁知道吗?


阅读 323

收藏
2020-05-30

共1个答案

小编典典

您可以使用执行器来完成它(请参阅Binding Visualization and
Control
)。或者,您可以通过编程方式调用端点。

@SpringBootApplication
@EnableBinding(Sink.class)
public class So58795176Application {

    public static void main(String[] args) {
        SpringApplication.run(So58795176Application.class, args);
    }

    @StreamListener(Sink.INPUT)
    public void listen(String in) {
        System.out.println();
    }

    @Autowired
    BindingsEndpoint endpoint;

    @Bean
    public ApplicationRunner runner() {
        return args -> {
            System.in.read();
            endpoint.changeState("input", State.STOPPED);
            System.in.read();
            endpoint.changeState("input", State.STARTED);
        };
    }

}
2020-05-30