Ошибка входа (302) при добавлении задачи в очередь с конечной целью - PullRequest
1 голос
/ 05 января 2012

У меня довольно простое приложение. Одна из вещей, которые я делаю, - когда кто-то создает новый виджет, я добавляю задачу в очередь задач, чтобы получить изображение 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 применяются к бэкэндам. Это предположение неверно?

1 Ответ

2 голосов
/ 05 января 2012

Вы должны удалить login: admin из обработчика серверной части и убедиться, что сервер закрыт, если вы не хотите, чтобы пользователи имели доступ к этому URL.

Подробнее см. Документацию backends .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...