私は、単にストリームをテレビに投げるストリーミングTwitterクライアントを作成しています。私はRxJavaでストリームを観察しています。RxJavaイベントのバーストを円滑にするために観察可能
ストリームがバースト的になったとき、私はそれをバッファして遅くして、各ツイートが少なくとも6秒間表示されるようにします。その後、静かな時間の間に、ビルドされたバッファは、キューの先頭を6秒ごとに1つずつつかむことによって、徐々に空になります。新しいツイートが入ってきて、空のキューに直面している場合(ただし最後が表示されてから> 6秒後)、すぐに表示されるようにします。
は、私はそのように見ているストリームがhereを説明した想像:
Raw: --oooo--------------ooooo-----oo----------------ooo|
Buffered: --o--o--o--o--------o--o--o--o--o--o--o---------o--o--o|
そして、私は疑問が解決策が持ってポーズをとったことを理解しています。しかし、私はちょうどその答えの周りに私の頭を包むことはできません。ここに私の解決策があります:
私の質問です。これはアプローチがあまりにも単純ですか?バッファリング/バックプレッシャーはどこで起こっていますか?より良い解決策はありますか?
はい!これは間違いなく私の問題を解決するように見えます。好奇心の念から、(あなたのやったように)メッセージの後に(私がやったように)遅れてメッセージを遅らせることに利点がありますか?両方のソリューションがうまくいくと思います。たぶん私は理解していない微妙なRxの違いがあります。 – dgmltn
オペレータの関与が少なく、オーバーヘッドが少ない。 – akarnokd