前回、Google App EngineのBackends(Modules)にtaskQueueの登録をする方法を書きましたが、これ実は、dispatchを設定している場合でもtargetパラメータが優先されてしまうので、注意が必要というとこと。
具体的には、
dispatch: - url: "*/hoge/*" module: hogeとdispatch.yamlの設定を行い、hoge.yamlで下のようなURLのルーティングを行う。
handlers: - url: /hoge script: foo.appfoo.pyで
import webapp2 from google.appengine.api import taskqueue class FooHandler(webapp2.RequestHandler): def post(self): pass def get(self): taskqueue.add( url='/hoge', params={} ) app = webapp2.WSGIApplication([ ('/hoge',FooHandler) ],debug=True)と書いた場合、displatchによりhoge.yamlが働きfoo.appの処理が働きそうだが、これは、エラーになってしまう。
何故ならば、targetの設定を行っていないので、defaultモジュール、つまり、app.yamlでURL解決を図ろうとして、404を起こしてしまう。
なので、targetを設定して、moduleをきちんと作成することが大事です。
0 コメント:
コメントを投稿