我試圖在後臺任務中創建多個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編寫的。 –