我有一個非常簡單的應用程序。我所做的一件事是,當有人創建一個新的窗口部件時,我將任務添加到任務隊列中以獲取窗口部件的qr代碼圖像並將其保存在Blob中。任務添加到後端目標隊列時發生登錄錯誤
我有一個隊列定義爲:
queue:
- name: workqueue
target: worker
rate: 5/s
我有一個後端定義爲:的app.yaml的
backends:
- name: worker
options: dynamic
class: B1
片段:
handlers:
- url: /tasks/fetchimage
script: worker.py
login: admin
在我的代碼,當用戶創建下面稱爲的小部件:
taskqueue.add(#queue_name="workqueue",
url="/tasks/fetchimage",
method="GET",
params={"design_id": design_id})
「queue_name =」workqueue「被註釋掉了,一切正常(使用默認隊列不會到後端)。如果我刪除評論,我會在日誌中看到以下錯誤:
0.1.0.2 - - [04/Jan/2012:19:05:29 -0800]「GET/tasks/fetchimage?design_id = 9034 HTTP/1.1「302 0
...請求失敗,因爲URL需要用戶登錄。對於在App Engine中調用的請求(脫機請求,如任務隊列,或者Web服務,如XMPP和傳入郵件),URL必須要求管理員登錄(或不登錄)。
我錯過了什麼嗎?我假設app.yaml設置適用於後端。這個假設是不正確的?
感謝您的回答。我以爲你通過將'login:admin'添加到處理程序來使後端處理程序變爲私有。後端默認是私有的。你能詳細說明嗎? – 2012-01-05 12:48:43
哦,還有一件事。我刪除了'login:admin'來測試,它沒有幫助。 – 2012-01-05 12:52:09
我沒有意識到後端必須從應用程序的其餘部分單獨更新。我以爲你一旦「更新」了後端(創建),每一個後續的appcfg更新都會更新前端和後端。一旦我更新後面的東西開始工作。謝謝你的幫助。 – 2012-01-05 16:07:17