2011年01月11日

google app engine, カスタムTaskQueueの生成方法。

GAEでテーブルのカウントを取ろうと思っている。

MySQLではselect countがあるのだが、GAEにはそんな便利なもんは無い!

一応あるっちゃある。
ただ、countがあまりにもでかい場合、30秒ルールでcountが無効にされてしまう。
なので、ModelCounterというテーブルに各テーブルの件数を記録していく。。。というタスクをTaskQueueに投げる。
Cronとかもったいないので、TaskQueueの処理の中で再帰的にTaskQueueに処理を投げるロジック。

こことかにも一応サンプルは書かれているのだが、どうやってカスタムTaskuQueueを作成するかどうか詳しく書いているところが無い。

まずqueue.yamlにtaskの設定を記述。

- name: tablecount
rate: 10/s
bucket_size: 20


ここで、俺はてっきりデプロイすれば勝手にタスクキューの設定が反映されるものと思っていたが、どうも違うっぽい。
手動でタスクキューの内容をアップデート

appcfg.py update_queue .

で、実際にタスクを登録する。

from google.appengine.api import taskqueue
taskqueue.add(queue_name='tablecount', url="/tablecountworker?kind_name=%s" % (kind_name), method="GET")


ハマりどころはappcfg.py update_queue .かな。
これを忘れるとExceptionが出る。
以上!
posted by 1.618 at 17:56| Comment(0) | python | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

×

この広告は180日以上新しい記事の投稿がないブログに表示されております。