У меня довольно простое приложение. Одна из вещей, которые я делаю, - когда кто-то создает новый виджет, я добавляю задачу в очередь задач, чтобы получить изображение qr-кода для виджета и сохранить его в BLOB-объекте.
У меня есть очередь, определенная как:
queue:
- name: workqueue
target: worker
rate: 5/s
У меня есть бэкэнд, определенный как:
backends:
- name: worker
options: dynamic
class: B1
фрагмент app.yaml:
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 (автономные запросы, такие как Очередь задач, или веб-хуки, такие как XMPP и Входящая почта), URL-адрес должен требовать входа администратора (или отсутствия входа).
Я что-то упустил? Я предполагаю, что настройки app.yaml применяются к бэкэндам. Это предположение неверно?