我有一个非常简单的应用程序。我做的一件事是当有人创建一个新的小部件时,我将任务添加到任务队列以获取小部件的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设置适用于后端。这个假设是不正确的?