web-dev-qa-db-ja.com

Spring BootとAngularを使用したリマインダープッシュ通知

RESTful APIのSpring BootとAngular(4 or 5))を使用して適切なタイミングでユーザーに通知するWebアプリケーションを構築する必要があります。たとえば、午前11時にミーティングがある場合、私のサーバーコンポーネントは、午前11時にこの会議があることをリアルタイムで認識し、WebSocketを介して通知をプッシュする必要があります。リッスンする必要があるこの特定のコンポーネントを理解および設計するのに役立つ有用なリソースをWeb上で見つけることができませんでした。毎秒データベースイベント。

この単一のコンポーネントを適切なツールを選択して構築するために、誰かが私を助けてくれますか?これは、Apache KafkaまたはApache Stormのようなキューか、それとも完全に別の何かでしょうか?

4
Samir Joglekar

これはWebアプリケーションなので、ユーザーがログインした場合にのみイベントが配信されますよね?その場合、ユーザーがいないため、ほとんどのイベントが配信されない可能性があります。

Websocketを使用してイベントを配信します。Springガイドの方法を参照してください https://spring.io/guides/gs/messaging-stomp-websocket/

簡単な解決策は http://www.quartz-scheduler.org/ のようなツールを使用してすべてのイベントをスケジュールします。次に、イベントが発生してユーザーがログインすると、WebSocketを使用してイベント通知が送信されます。しかし、ユーザー数が多い場合、それは無駄になる可能性があります。

より軽量なソリューションは

  • ユーザーがログインしたら、スケジュールされたイベントがあるかどうかを確認します。次に、クライアント側のJavaScriptスケジューリングを使用して、クライアント側でそれらの通知を登録します。
  • ユーザーのイベントのサーバー側の変更がある場合、ログインしたユーザーにそれらのイベントに関する更新を配信する必要があります。

私にとっては、メッセージキューは適用されません。将来のイベントのためにメッセージをキューに入れるとき、イベントが発生しようとしているときにこのメッセージを消費するための賢明な方法はありません。

4
Bartosz Bilicki