🍣

ReactiveExtensionのPush型とPull型の違い

2023/09/24に公開
  • ReactiveExtensionで使用されるPush型やPull型がどっちがどっちかわからなくなってしまうのでまとめました。

Push

Push型はデータの受信側はメッセージの量や発行タイミングを制御できません。
メールを考えるとわかりやすくて、メールを受信する際はこちらはただ待機しているだけで、勝手に送られてくるのとイメージは一緒。メールを送る側がデータやイベントをPushしてくるのでPush型。

Pull

Pull型はデータの受信側が主体的にデータを取得しにいく。そのため、メッセージやイベントのタイミングや量は受信側で調整が可能になる。受信側がリクエストをしてPull(待っている)のでPull型。

どっちが良い悪いの話ではなく適材適所で使い分けがされる。
Push=>メッセージを多数向けにイベントとして送信するのが得意。非同期処理を並行して実行するのに向いている。
Pull=>一つの主体がメッセージを必要な時に量を制御しながら処理することが得意。
逐次実行が得意(○○が終わったら△△をする)

Discussion