Gray sky, Blue sea.

programing, book, photo

gae - 一番簡単なtask queueのサンプル

とりあえずログだけ出力してみる。

import logging
from datetime import datetime
from google.appengine.api import taskqueue

class Test(webapp.RequestHandler):
    def post(self):
        logging.info("#### task execute : " + str(datetime.now()))

class AddTask(webapp.RequestHandler):
    def get(self):
        taskqueue.add(url='/test')

application = webapp.WSGIApplication(
                                     [('/task', AddTask),
                                      ('/test', Test)],
                                     debug=True)

def main():
    run_wsgi_app(application) 

ブラウザから/taskを開くことでAddTaskのgetが呼び出される。

taskqueue.addのパタメータurlにて、タスクキューへ登録するclassのurlを指定。

ローカル環境では、タスクは手動で実行しないと動かない。SDKコンソール → Task Queues → defaultを選択し、「Run」ボタンを押すと登録されたtaskが実行される。

f:id:h_maz:20120310231425p:plain

デフォルトだとpostで送信されるが、Taskを作って色々設定すればgetでリクエスト送信することも可能。実行時刻の指定とかもできる。詳しくはTask クラス - Google App Engine - Google Codeを参照。