我在让后端在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错误,并且我确定自己做的事情很愚蠢.
我是否可以像配置frontend.py一样配置backend.py中的处理程序?我可以访问后端实例上的frontend.py中定义的处理程序,但不能访问backend.py中定义的处理程序.
编辑10/17/12
经过一番挖掘后,我发现apps.yaml中的通配符处理程序在后端处理程序之前列出.所以现在后端处理程序已经可以工作了.我已将此过程定义为管理员处理程序,但仍然超时.
有什么原因不起作用?它总是返回405错误并连续重试.
taskqueue.add(url =’/ backend /’,target =’dbops’)
解决方法:
/ backend永远不会匹配/backend/.*模式.您应该在末尾添加一个斜杠:
taskqueue.add(url='/backend/', target='dbops')
另外,在后端,您可能应该做同样的事情,并在/ backend /上定义处理程序.