我试图在后台任务中创建多个Google文档。使用任务队列创建多个Google文档
我尝试使用从Google App Engine
的taskqueue
但我一直得到这条消息,我必须不明白的一点:
INFO 2016-05-17 15:38:46,393 module.py:787] default: "POST /update_docs HTTP/1.1" 302 -
WARNING 2016-05-17 15:38:46,393 taskqueue_stub.py:1981] Task task1 failed to execute. This task will retry in 0.800 seconds
这里是我的代码。我对需要从队列中执行的方法UpdateDocs
进行多次调用。
# Create a GDoc in the queue (called by her)
class UpdateDocs(BaseHandler):
@decorator.oauth_required
def post(self):
try:
http = decorator.http()
service = discovery.build("drive", "v2", http=http)
# Create the file
docs_name = self.request.get('docs_name')
body = {
'mimeType': DOCS_MIMETYPE,
'title': docs_name,
}
service.files().insert(body=body).execute()
except AccessTokenRefreshError:
self.redirect("/")
# Create multiple GDocs by calling the queue
class QueueMultiDocsCreator(BaseHandler):
def get(self):
try:
for i in range(5):
name = "File_n" + str(i)
taskqueue.add(
url='/update_docs',
params={
'docs_name': name,
})
self.redirect('/files')
except AccessTokenRefreshError:
self.redirect('/')
我可以在App Engine控制台中看到推送队列,并且每个任务都在里面,但他们无法运行,我不明白为什么。
我怀疑你的授权流程失败,你会得到'AccessTokenRefreshError'异常,在这种情况下你试图重定向(这是状态302,不能接受来自任务队列的预期)。尝试用'logging.error('AccessTokenRefreshError')''替换'post()'方法中的'self.redirect(“/”)',以确认 - 我期望任务完成并且错误在日志中显示。 –
我试图这样做,但我没有得到任何错误,仍然是相同的消息。 – Kariamoss
似乎缺少所有oauth代码。从任务队列重定向没有意义。您使用的代码是为前端实例get编写的。 –