EVEN DRIVEN - SPRING CLOUD STREAM - @PollableBean for Reactive Suppliers
source link: http://www.blogjava.net/paulwong/archive/2021/11/23/436060.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
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:
public Supplier<Flux<String>> stringSupplier() { return () -> Flux.just("foo","bar","baz"); }
https://solace.community/discussion/360/pollablebean-for-reactive-suppliers-in-spring-cloud-stream
posted on 2021-11-23 10:03 paulwong 阅读(11) 评论(0) 编辑 收藏 所属分类: SPRING CLOUD 、EVEN DRIVEN ARCHITECT
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK