我正在使用 AppEngine 编写我的第一个“正式”应用程序,但遇到了一些任务队列问题。
我已经阅读并复制了应用引擎文档中给出的示例代码。
当我尝试将任务添加到自定义队列时,尽管它似乎对我不起作用,因为它适用于 others :
我做的是:
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: global name 'Task' is not defined
这是为什么呢?在我看来,我缺少一些基本的东西,但我不知道是什么。它在 docs 中说任务类由任务队列模块提供。
到现在为止,我发现如果我将上面代码中与任务相关的两行替换为以下内容,它就可以工作了:
taskqueue.add(queue_name="testqueue", url="/queue", params={"key":key})
但我想了解为什么其他方法仍然不起作用。如果有人能在这里帮助我,那就太好了。
请您参考如下方法:
Taskis provided by thegoogle.appengine.api.taskqueuemodule.
因为你已经导入了
from google.appengine.api import taskqueue
你可以替换这一行:
task = Task(url='/queue', params={'key':key})
与
task = taskqueue.Task(url='/queue', params={'key':key})
