我遇到了在Google App Engine Python中运行后端的问题。
在我的app.yaml中,我添加了这个处理程序:
- url: /backend/.*
script: backend.app
login: admin
在backend.app中,我有一个为“/".
定义的处理程序我的backends.yaml看起来像这样:
backends:
- name: dbops
options: dynamic
在我的前端应用程序中,我添加了一个任务队列来调用后端:
taskqueue.add(url='/backend/', target='dbops')
当我查看日志时,我看到的所有内容都是404错误,后端没有显示在后端部分下,但如果我查看实例,则会启动一个新实例。任何人都得到了任何指导,因为后端的文档不是很有帮助。
修改
在Alex的帮助下,我已经在后端运行了代码。我错过了部署到后端的步骤。
appcfg.py backends ./ update dbops
现在我看到后端实例在管理界面中正常运行,但是任务队列仍然返回404错误,我确信我做的事情是愚蠢的错误。
我的backend.py中的处理程序是否与我对frontend.py的处理程序相同?我可以访问后端实例上frontend.py中定义的处理程序,但不能访问backend.py中定义的处理程序。
修改 10/17/12
经过一番挖掘后,我发现我的外卡处理程序在apps.yaml中的后端处理程序之前列出。所以现在后端处理程序很有用。我将此流程定义为管理员处理程序,但它仍然超时。
为什么这不起作用?它总是返回405错误并连续重试。
taskqueue.add(url ='/ backend /',target ='dbops')
答案 0 :(得分:4)
/backend
永远不会匹配/backend/.*
模式。你应该在最后添加一个斜杠:
taskqueue.add(url='/backend/', target='dbops')
另外,在你的后端你应该做同样的事情,并在/backend/
上定义你的处理程序。