AppEngine を使用して最初の「本格的な」アプリケーションを作成していて、タスク キューでいくつかの問題に遭遇しました。
appengine ドキュメントに記載されているサンプル コードを読み、再現しました。
タスクをカスタムキューに追加しようとしたとき、他の人にとってはうまくいくように見えませんが、私にとってはうまくいかないようです:
私がすることは:
from google.appengine.api import taskqueue
def EnterQueueHandler(AppHandler):
def get(self):
#some code
def post(self):
key = self.request.get("value")
task = Task(url='/queue', params={'key':key})
task.add("testqueue")
self.redirect("/enterqueue")
そして、処理を行う「/queue」のハンドラーを設定しました。
問題は、これにより次のエラーがスローされることです。
NameError: グローバル名 'Task' が定義されていません
何故ですか?基本的なものが欠けているように思えますが、何がわかりません。Task-Class は taskqueue モジュールによって提供されるとドキュメントに記載されています。
ここまでで、上記のコードのタスク関連の 2 行を次のように置き換えると機能することがわかりました。
taskqueue.add(queue_name="testqueue", url="/queue", params={"key":key})
しかし、それにもかかわらず、他の方法が機能しない理由を理解したいと思います。誰かがここで私を助けてくれたらとてもうれしいです。