当任务添加到具有后端目标的队列时,登录错误(302)

时间:2012-01-05 12:04:23

标签: google-app-engine

我有一个非常简单的应用程序。我做的一件事是当有人创建一个新的小部件时,我将任务添加到任务队列以获取小部件的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和传入邮件之类的webhook),URL必须要求管理员登录(或不登录)。

我错过了什么吗?我假设app.yaml设置适用于后端。这个假设是不正确的?

1 个答案:

答案 0 :(得分:2)

您应该从后端处理程序中删除login: admin,如果您不希望用户能够访问该网址,请确保后端是私有的。

有关详细信息,请参阅backends文档。

相关问题