簡體   English   中英

Spring 與動態生產者反應

[英]Spring reactive with dynamic producers

我最近開始將響應式思維與 java 和 Spring 結合使用。

是否可以創建一個擁有動態數量的生產者的場景? 我正在開發一種產品,它可以偵聽特定硬件的事件,如果我可以添加(並可能刪除)動態偵聽設備 A、B...Z 而不結束流,那將是非常棒的。

我想象這樣的事情:

@GetMapping("/")
public Flux<HardwareEvent> void test() {
  return Flux.merge(
    listenHardware(A),
    listenHardware(B)
  );
}

Flux<HardwareEvent> listenHardware(HardwareId id); // produced indefinite stream of events

您可以在不停止流的情況下以某種方式動態地將新的生產者注入到合並中。

這可能嗎?

如果有人能指出我(或發布)一個例子,那就太棒了。 問候。

您可能需要在中間使用一些膠水代碼,但這對於Subjects 來說似乎是一個很好的用例

相反,具有“常規” Observable ,你就會有一個Subject ,你看到的是可觀察的。 Subject的好處是您可以根據需要發出新值,因此您可以執行以下操作

Subject<Value> s = ...;
Observable<Value> getObservable() {
  return s;
}

void addSource(Observable<Value> obs) {
  obs.subscribe(v -> s.emit(s))
}

請注意,它是偽代碼,可能不會按原樣編譯

查看Subject文檔,看看哪個更適合您的需求

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM