共感で繋がるSNS
GRAVITY(グラビティ) SNS

投稿

むーげー

むーげー

今日も今日とて一日暇だったからコードとにらめっこしながら調べ物してた

RabbitMQは主にメール送信用と商品情報に変更があった時にOpenSearch(Elasticsearch)更新用に使用している。

前者の場合1件分のメールアドレスをオブジェクトとして生成しそれをJSON形式に変換したものをキュー。ここまではソースコードで確認
で、恐らくメール配信用のサーバー側で順番にデキューしてそれを元にメールを作成&送信みたいな流れだと思う。多分。

後者の場合、前提としてフロントに表示する商品はOpenSearchから取ってきている(DBから取得するのと比べて検索などが高速らしい)
おそらく、OpenSearchにDBの情報を連携するためのバッチ処理のようなものがあって、それの発動条件がRabbitMQにデキューする商品のIDがある場合みたいな感じ?
OpenSearchに検索リクエスト送る時は汎用的なhttpリクエストで行い、リクエストボディにJSON形式っぽい検索構文文字列を格納する。
検索文字列作成はブロックごとに独自クラスを用意し、ネストはクラスのフィールドに内側クエリ用のクラスを保持することで表現(インナークラスではない)
最終的に一つのオブジェクト(body,設定.何とかって名前のフィールド3つを保持)としてまとめ、ToStringメソッドでOpenSearch用のクエリ構文になるような実装をしている(ここら辺は実際のコード確認済)

今日の成果はこんな感じ、何となく理解は出来たけど実装しろと言われたら厳しいヨ[大泣き]
GRAVITY
GRAVITY
関連する投稿をみつける
話題の投稿をみつける
関連検索ワード

今日も今日とて一日暇だったからコードとにらめっこしながら調べ物してた