スポンサーサイト

--年--月--日 --:--

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

ブブゼラの空目されっぷり

2010年06月20日 01:54

やっぱり、ブブゼラの空目されっぷりはすごい:
vuvuzela
※〇〇を××に空目というTweetを検索して〇〇→××と図示(cytoscape webを使用)。
>>soramegraph (表示されるまで少し時間がかかると思いますすみません。Google App Engine のSpin up 待ちです。)
スポンサーサイト

Task Queue を使ってみる

2010年06月01日 03:24

Google App Engine Java のTask Queue を使ってみる。

Twitter4JとGAEとCytoscapewebの練習(空目の可視化)で作ったアプリのデータをJDOを使って永続化するようにした。永続化が原因かどうかは分からないがレスポンスが遅くなったような気がしたので、Task Queueを使ってみることにする。基本的には、Task Queue Java API Overviewをみてやってみる。

1.WEB-INF/queue.xmlの作成
Java Task Queue Configurationによると、こんな感じでいいみたい。

<queue-entries>
<queue>
<name>default</name>
<rate>5/s</rate>
</queue>
</queue-entries>




2.Memcacheに値を格納しておく。
今まで同期的にDatastoreにputしていたオブジェクトを一旦Memcacheに入れておく。
Memcache java API 概要を参考に。

cache = CacheManager.getInstance().getCacheFactory().createCache(Collections.emptyMap());
cache.put(key, obj);
(例外処理など略)



3.Queueに追加する処理を書く
Using Task Queue in Javaによると、以下のようにすると、defaultキューが取得できるようだ。

Queue queue = QueueFactory.defaultQueue();
queue.add(url("/worker").param("key", key));
(例外処理など略)


サンプルはstatic importを使っているが、Eclipse は static import があるとコード補完がうまく働かなくなるようなので注意。

4.Web Hook を書く。
普通のサーブレットを書く、web.xmlにも(この例だと/workerというパスを)記述する。このサーブレットにパラメータ"key"でobjをmemcacheにputした際のkeyが渡ってくる。HTTPメソッドは特に指定しない場合、POSTが使われるので注意。その後、cacheからgetして、Datastoreに永続化する。

cache = CacheManager.getInstance().getCacheFactory().createCache(Collections.emptyMap());
Object obj = cache.get(key);
PersistenceManager pm = PMF.get().getPersistenceManager();
pm.makePersistent(obj);
(例外処理など略)



以上。問題なく動いたが、劇的に動作が速くはならなかった。原因は永続化ではなかったようだ。



上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。