paulwong

          EVEN DRIVEN - SPRING CLOUD STREAM - @PollableBean for Reactive Suppliers

          Supplier beans, or functions that only publish messages in Spring Cloud Stream, are a bit special in that they aren't triggered by the receiving of events like Function or Consumer beans. This means that you often need a way to trigger them to be executed periodically.

          For imperative functions the framework by default "polls" a Supplier function every 1 second, but that duration is configurable using the spring.cloud.stream.poller.fixed-delay property.

          However, for reactive functions supplying a Flux it is only triggered once by default. This is because a Flux itself is potentially an infinite stream of events so in many cases it will only need to be triggered once. But don't worry, if you want to periodically trigger a reactive Supplier because you are producing a finite stream of events you can still do so using @PollableBean. This annotation then allows you to configure how often the function is triggered using the same spring.cloud.stream.poller.fixed-delay property!

          One example use case here could be periodically querying a data store and publishing each entry/row as an event. The number of rows in your data store is a finite number at any given time.

          Example code:

          @PollableBean 
          public Supplier<Flux<String>> stringSupplier() { return () -> Flux.just("foo","bar","baz"); }


          Reference:
          https://solace.community/discussion/360/pollablebean-for-reactive-suppliers-in-spring-cloud-stream

          posted on 2021-11-23 10:03 paulwong 閱讀(252) 評論(0)  編輯  收藏 所屬分類: SPRING CLOUDEVEN DRIVEN ARCHITECT

          主站蜘蛛池模板: 清涧县| 开江县| 延边| 长沙县| 宽甸| 灵宝市| 巢湖市| 盘山县| 陇西县| 阜平县| 庐江县| 南城县| 舞阳县| 敖汉旗| 桃江县| 乌海市| 轮台县| 鄱阳县| 吉隆县| 鄂尔多斯市| 武安市| 舟山市| 常山县| 孟津县| 夏邑县| 垣曲县| 陈巴尔虎旗| 罗定市| 大邑县| 玛纳斯县| 和静县| 剑川县| 长沙县| 五寨县| 城步| 绥中县| 西安市| 绥德县| 汾阳市| 东方市| 南城县|