自定义GAE任务queu出错

2024-04-24 08:49:30 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在用AppEngine编写我的第一个“严肃”的应用程序,在任务队列中遇到了一些问题。在

我已经阅读并复制了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中指出Task类是由taskqueue模块提供的。在

到目前为止,我已经发现,如果我将上面代码中与任务相关的两行替换为以下内容,则会有效:

^{pr2}$

但我想知道为什么另一种方法还是不起作用。如果有人能帮上忙,我会很高兴的。在


Tags: key代码文档self应用程序示例taskget
2条回答

我觉得原因是不工作是“任务”没有导入。下面是一个我一直成功使用的例子。看起来像你的,但我的进口不同。在

from google.appengine.api.taskqueue import Task

task = Task(
    url=url,
    method=method,
    payload=payload,
    params=params,
    countdown=0
)

task.add(queue_name=queue)

From the documentation

Task is provided by the google.appengine.api.taskqueue module.

既然你已经进口了

from google.appengine.api import taskqueue

您可以替换此行:

^{pr2}$

task = taskqueue.Task(url='/queue', params={'key':key})

相关问题 更多 >