操作
Feature #571
完了スキルクラウド
開始日:
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; }
yusuke kokubo さんが13年以上前に更新
単純にemailとprofileのマッピングをmemcachedに持つだけでも早そうですね。
そっか、そんな手もありますね!
やはりベストはCron&TaskQueueな気がしますが。。。
ですねー。
yusuke kokubo さんが13年以上前に更新
- ステータス を 新規(New) から 解決(Resolved) に変更
- 担当者 を yusuke kokubo にセット
yusuke kokubo さんが13年以上前に更新
- ステータス を 解決(Resolved) から 終了(Closed) に変更
- 進捗率 を 0 から 100 に変更
ひとまず今できてるものでOKにする。
操作