Project

General

Profile

Feature #571

スキルクラウド

Added by yusuke kokubo over 8 years ago. Updated over 8 years ago.

Status:
終了(Closed)
Priority:
通常(Normal)
Assignee:
Target version:
Start date:
10/06/2010
Due date:
% Done:

100%

Estimated time:

Description

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

History

#1

Updated by yusuke kokubo over 8 years ago

試しに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;
    }

#2

Updated by 啓介 大橋 over 8 years ago

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

#3

Updated by yusuke kokubo over 8 years ago

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

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

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

ですねー。

#4

Updated by 啓介 大橋 over 8 years ago

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

#5

Updated by yusuke kokubo over 8 years ago

  • Target version changed from Sprint11.03 to Sprint10.10
#6

Updated by yusuke kokubo over 8 years ago

  • Status changed from 新規(New) to 解決(Resolved)
  • Assignee set to yusuke kokubo
#7

Updated by yusuke kokubo over 8 years ago

  • Status changed from 解決(Resolved) to 終了(Closed)
  • % Done changed from 0 to 100

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

Also available in: Atom PDF