SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

Google App Engineで開発するスケールするアプリケーション

Google App Engineで開発するスケールするアプリケーション(中編)

Google App EngineとTwitterの連携アプリケーション構築

  • X ポスト
  • このエントリーをはてなブックマークに追加

オススメユーザー表示処理

 次にオススメユーザー表示処理について説明します。オススメユーザー表示処理の処理構成を図10に示します。

図10 オススメユーザー表示の処理構成
図10 オススメユーザー表示の処理構成

 オススメユーザー表示処理は「オススメユーザーデータ作成処理」と「オススメユーザー一覧表示処理」の2つから構成されます。

オススメユーザーデータ作成処理

 まず、オススメユーザーデータ作成処理は、画面から送信されたユーザーのスクリーンネーム(著者の場合「haru860」)をもとに、TwitterUserエンティティの中から、オススメのユーザーを抽出し、RecommendUserエンティティとして保存する役割を果たします。TwitterUserエンティティ全体からオススメのユーザーを抽出するので、大量のデータに対し、探索をするので1回のリクエスト処理では処理が終了しないことが予想されます。そこで、Google App Engineに用意されているTaskQueueサービスを利用することで、一旦リクエストを受け付け、レスポンスを返した後、バックグランドでオススメユーザー抽出の処理を非同期実行します。

タスク処理の分割

 TwitterUserエンティティには、seqという属性でデータの作成順に連番が振られています。タスクには「name=value形式」でパラメータを渡すことができますので、以下の3つのパラメータをタスクに設定してキューに格納します。

表4 タスクに渡すパラメータ
属性名 値の例 説明
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サービスなどを用いて、アプリケーションを構築する設計について説明しました。後編では本稿で説明した内容をプログラムとして実装していきます。

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
Google App Engineで開発するスケールするアプリケーション連載記事一覧

もっと読む

この記事の著者

山田 祥寛(ヤマダ ヨシヒロ)

静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for Visual Studio and Development Technologies。執筆コミュニティ「WINGSプロジェクト」代表。主な著書に「独習シリーズ(Java・C#・Python・PHP・Ruby・JSP&サーブレットなど)」「速習シリーズ(ASP.NET Core・Vue.js・React・TypeScript・ECMAScript、Laravelなど)」「改訂3版JavaScript本格入門」「これからはじめるReact実践入門」「はじめてのAndroidアプリ開発 Kotlin編 」他、著書多数

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

WINGSプロジェクト 佐藤 治夫 (株式会社ビープラウド)(サトウ ハルオ)

WINGSプロジェクトについて> 有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛)。主にWeb開発分野の書籍/記事執筆、翻訳、講演等を幅広く手がける。2018年11月時点での登録メンバは55名で、現在も執筆メンバを募集中。興味のある方は、どしどし応募頂きたい。著書記事多数。 RSS Twitter: @yyamada(公式)、@yyamada/wings(メンバーリスト) Facebook

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/4789 2010/02/09 14:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング