【发布时间】:2016-09-04 18:57:12
【问题描述】:
我在 GAE 中创建了一个可以正常工作的拉取队列,我可以从应用程序中添加元素并使用以下代码从我的实例中检索它们:
from apiclient.discovery import build
from oauth2client.client import GoogleCredentials
credentials = GoogleCredentials.get_application_default()
PROJECT_NAME = "my-project"
QUEUE_NAME = 'my-queue'
q = build('taskqueue', 'v1beta2', credentials=credentials)
l = q.tasks().lease(project=PROJECT_NAME, taskqueue=QUEUE_NAME, leaseSecs=600, numTasks=1)
result = l.execute()
task = result['items'][0]
task_id = task['id']
当我在处理完任务后尝试删除任务时,问题就来了,这段代码应该可以工作
d = q.tasks().delete(project=PROJECT_NAME, taskqueue=QUEUE_NAME, task=task_id)
d.execute()
返回
File "/usr/local/lib/python2.7/dist-packages/oauth2client/util.py", line 137, in positional_wrapper
return wrapped(*args, **kwargs)
File "/usr/local/lib/python2.7/dist-packages/googleapiclient/http.py", line 838, in execute
raise HttpError(resp, content, uri=self.uri)
googleapiclient.errors.HttpError: <HttpError 400 when requesting
https://www.googleapis.com/taskqueue/v1beta2/projects/my-project/taskqueues/my-queue/tasks/46101672956060486431?
returned "project name is invalid">
我不明白出了什么问题,因为我能够从队列中获取任务,但是当我想删除它时,会引发此错误。
有人了解吗?
【问题讨论】:
-
实际上,我在这里直接使用 REST API 也有同样的错误:cloud.google.com/appengine/docs/python/taskqueue/rest/tasks/… 我认为这可能是一个错误
-
如果你在 GAE 上,使用 google.appengine.api 包中的任务队列 API 不是更容易吗?
标签: python google-app-engine pull-queue