Spring Cloud Stream Producer scheduling not working

Brax :

I would like to use spring scheduling for producing messages using @Scheduled but I am not able to get it working. Here is my producer:

@SpringBootApplication
@EnableScheduling
public class ProducerApplication {

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

    private int counter;

    @Bean
    @Scheduled(fixedDelay = 100)
    public Supplier<String> producer() {
        return () -> "Hello " + counter++;
    }

}

application.yaml:

spring:
  cloud:
    stream:
      bindings:
        producer:
          destination: input-destination
          group: input-group

      function:
        bindings:
          producer-out-0: producer

Here is consumer:

@SpringBootApplication
public class ConsumerApplication {

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

    @Bean
    public Consumer<String> consumer() {
        return System.out::println;
    }

}

application.yaml:

spring:
  cloud:
    stream:
      bindings:
        consumer:
          destination: input-destination
          group: input-group

      function:
        bindings:
          consumer-in-0: consumer

I would like this to run on 100 ms but it is doing it is running in default settings 1000. How can I get this working?

Sam :

You can use spring.cloud.stream.poller.fixed-delay=100 application property to set the poll time. The value is in milliseconds. Eg of application.yml:

spring:
  cloud:
    stream:
      poller:
        fixed-delay: 100

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=344729&siteId=1