どのように私は、ブロッキングキューから原子炉フラックスを作成することができますか?

vitthal.kumar.dhanuka:

私は、フラックスが私のユースケースに最適なオペレータ確認のBlockingQueueから作成ではなく、原子炉を実現しようとしていますか?

私は応答がREST呼び出しを取得するために、応答としてのBlockingQueueからのメッセージを発する維持する必要のあるフラックスでストリーミングRESTエンドポイントを、作成しています。

私はすでにフォーラムやドキュメントを試してみましたし、唯一のフラックスは、反復可能なコレクションや反応性のデータ・ソースが、任意のBlockingQueueからなしの例から開始見つけることができます。

bsideup:

あなたは試すことができフラックス#が発生し、キュー#覗きますちょうどその心に留めておくpeek返されnull、キューが空の場合、それはで使用することはできませんonNext

何かのようなもの:

Flux.generate(sink -> {
    val element = queue.peek();
    if (element == null) {
        sink.complete();
    } else {
        sink.next(element);
    }
});

あり、フラックス#repeatWhenのあなたは、それが空であると見なされた後にキューに再加入し、例えばとしたい場合には、オペレータは、:

flux.repeatWhen(it -> it.delayElements(ofSeconds(1)))

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=224511&siteId=1