Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/google-app-engine/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 自定义GAE任务队列出错_Python_Google App Engine_Task Queue - Fatal编程技术网

Python 自定义GAE任务队列出错

Python 自定义GAE任务队列出错,python,google-app-engine,task-queue,Python,Google App Engine,Task Queue,我正在用AppEngine编写我的第一个“严肃”应用程序,并且在任务队列中遇到了一些问题 我已经阅读并复制了appengine文档中给出的示例代码 当我尝试将任务添加到自定义队列时,尽管它似乎对我不起作用,因为它适用于: 我所做的是: from google.appengine.api import taskqueue def EnterQueueHandler(AppHandler): def get(self): #some code def post(se

我正在用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类由taskqueue模块提供

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

taskqueue.add(queue_name="testqueue", url="/queue", params={"key":key})
但是我想理解为什么另一种方法仍然不起作用。如果有人能在这里帮助我,那就太好了。

Task
google.appengine.api.taskqueue
模块提供

既然你已经导入了

from google.appengine.api import taskqueue
您可以替换此行:

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


我认为原因是不工作是“任务”没有导入。下面是一个我一直成功使用的例子。看起来和你的一样,但我的意思不同

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 google.appengine.api.taskqueue import Task

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

task.add(queue_name=queue)