前回、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 コメント:
コメントを投稿