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 CLOUD 、EVEN DRIVEN ARCHITECT

          主站蜘蛛池模板: 蓝田县| 武城县| 金湖县| 汨罗市| 佛冈县| 民县| 蚌埠市| 岑巩县| 民和| 嘉荫县| 左云县| 尤溪县| 格尔木市| 林口县| 黄骅市| 石门县| 荔浦县| 若尔盖县| 山丹县| 二手房| 民和| 大姚县| 安阳市| 赤城县| 镇远县| 盐边县| 南京市| 广南县| 聊城市| 松桃| 海南省| 宝应县| 榆林市| 土默特左旗| 长丰县| 灌阳县| 类乌齐县| 焉耆| 稻城县| 凯里市| 扎囊县|