5

サーバー側からメッセージのバッチが送信されます。バッチ内のメッセージ数と頻度は任意です。1 分間隔でメッセージを受信することもあれば、1 時間メッセージがないこともあります。1 ~ 10 件のメッセージ。

私の現在の実装ではObservable.Buffer(TimeSpan.FromSeconds(5))、メッセージをグループ化してサブスクライバーに送信しています。

5 秒ごとにチェックする代わりに、2 つのメッセージ間に x 秒の遅延がある場合に、バッファリングされたメッセージをサブスクライバーに送信するように Observable を構成する方法はありますか。

不要なタイマーが 5 秒ごとにカチカチ鳴らないようにするにはどうすればよいですか? (バッチ処理を最適化するための他の提案も受け付けています。)

4

3 に答える 3

3

私があなたの説明を正しく理解していればObservable.Buffer、バッファリングされたアイテムをいつ送信するかを決定する監視可能なイベントを引き起こすオーバーロードを使用しているだけです。次のようなもの:

observable.Buffer(() => observable.Throttle(TimeSpan.FromSeconds(5)))
于 2013-11-15T10:42:12.803 に答える