プロジェクト

全般

プロフィール

Feature #571

完了

スキルクラウド

yusuke kokubo さんが13年以上前に追加. 13年以上前に更新.

ステータス:
終了(Closed)
優先度:
通常(Normal)
担当者:
対象バージョン:
開始日:
2010/10/06
期日:
進捗率:

100%

予定工数:

説明

登録されてるスキルをはてなブックマークのタグクラウドみたいな感じで表示する。
スキルをクリックするとスキル所有者の情報が見れる。

yusuke kokubo さんが13年以上前に更新

試しにSkillを全件取得するような処理を書いてみたけどとても遅い。
やっぱりCronなりタスクキューでバックグラウンドでviewを作るしかないと思う。

@Override
    public HashMap<String,ArrayList<Skill>> getPopularSkills() {
        // とりあえず生データをそのままもってきてるけど将来的にはCronで専用のEntityを作ったのを読むようにしたい
        List<Skill> skills = Datastore.query(sm).sort(sm.point.desc).asList();
        HashMap<String, ArrayList<Skill>> skillmap = new HashMap<String, ArrayList<Skill>>();
        for (Skill skill : skills) {
            ArrayList<Skill> map = skillmap.get(skill.getName().toLowerCase());
            if (map == null) {
                map = new ArrayList<Skill>();
                skillmap.put(skill.getName().toLowerCase(), map);
            }
            skill.setProfile(Datastore.query(pm).filter(pm.userEmail.equal(skill.getOwnerEmail())).limit(1).asSingle());
            map.add(skill);
        }
        return skillmap;
    }

啓介 大橋 さんが13年以上前に更新

単純にemailとprofileのマッピングをmemcachedに持つだけでも早そうですね。
やはりベストはCron&TaskQueueな気がしますが。。。

yusuke kokubo さんが13年以上前に更新

単純にemailとprofileのマッピングをmemcachedに持つだけでも早そうですね。

そっか、そんな手もありますね!

やはりベストはCron&TaskQueueな気がしますが。。。

ですねー。

啓介 大橋 さんが13年以上前に更新

よくよく考えると、profileは取らずにskillだけ取ってきて、リスト選択したタイミングで人のデータを取ってくれば、結構早くなるかもですね。

yusuke kokubo さんが13年以上前に更新

  • 対象バージョンSprint11.03 から Sprint10.10 に変更

yusuke kokubo さんが13年以上前に更新

  • ステータス新規(New) から 解決(Resolved) に変更
  • 担当者yusuke kokubo にセット

yusuke kokubo さんが13年以上前に更新

  • ステータス解決(Resolved) から 終了(Closed) に変更
  • 進捗率0 から 100 に変更

ひとまず今できてるものでOKにする。

他の形式にエクスポート: Atom PDF