我在让后端在 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 中定义的处理程序。
编辑 2012 年 10 月 17 日
经过一番挖掘后,我发现我的通配符处理程序在 apps.yaml 中的后端处理程序之前列出。所以现在后端处理程序可以正常工作了。我已将此进程定义为管理处理程序,但它仍然超时。
为什么这不起作用?它始终返回 405 错误并不断重试。
taskqueue.add(url='/backend/', target='dbops')
最佳答案
/backend
永远不会匹配 /backend/.*
模式。你应该在末尾添加一个斜杠:
taskqueue.add(url='/backend/', target='dbops')
此外,在您的后端,您可能应该做同样的事情并在 /backend/
上定义您的处理程序。
关于python - Google App Engine 后端 Python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12900655/