Skip to main content
 首页 » 编程设计

python之自定义 GAE 任务队列出错

2025年05月04日13落叶

我正在使用 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}) 

但我想了解为什么其他方法仍然不起作用。如果有人能在这里帮助我,那就太好了。

请您参考如下方法:

From the documentation

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

因为你已经导入了

from google.appengine.api import taskqueue 

你可以替换这一行:

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

与

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