オススメユーザー表示処理
次にオススメユーザー表示処理について説明します。オススメユーザー表示処理の処理構成を図10に示します。
オススメユーザー表示処理は「オススメユーザーデータ作成処理」と「オススメユーザー一覧表示処理」の2つから構成されます。
オススメユーザーデータ作成処理
まず、オススメユーザーデータ作成処理は、画面から送信されたユーザーのスクリーンネーム(著者の場合「haru860」)をもとに、TwitterUserエンティティの中から、オススメのユーザーを抽出し、RecommendUserエンティティとして保存する役割を果たします。TwitterUserエンティティ全体からオススメのユーザーを抽出するので、大量のデータに対し、探索をするので1回のリクエスト処理では処理が終了しないことが予想されます。そこで、Google App Engineに用意されているTaskQueueサービスを利用することで、一旦リクエストを受け付け、レスポンスを返した後、バックグランドでオススメユーザー抽出の処理を非同期実行します。
タスク処理の分割
TwitterUserエンティティには、seqという属性でデータの作成順に連番が振られています。タスクには「name=value形式」でパラメータを渡すことができますので、以下の3つのパラメータをタスクに設定してキューに格納します。
属性名 | 値の例 | 説明 |
screen_name | haru860 | 処理対象ユーザーのscreen_name |
lower_seq | 1 | 処理対象seqの下限 |
upper_seq | 20 | 処理対象seqの上限 |
threshold | 7 | ID一致数の閾値。7の場合、7個フォローしているユーザーが一致したら「似ている」と判定する。 |
オススメユーザー一覧表示処理
オススメユーザー表示処理では、アクセスしたユーザーに対するオススメのユーザーデータを格納したRecommendUserエンティティの集合をDatastoreから取得し、HTMLに一覧表示する処理します。
まとめ
本稿では、レコメンドアプリケーションをGoogle App Engineで構築するために、Twitter APIや、Google App Engineで用意されているCronサービス、TaskQueueサービスなどを用いて、アプリケーションを構築する設計について説明しました。後編では本稿で説明した内容をプログラムとして実装していきます。