我在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')
/backend
永远不会匹配/backend/.*
模式。你应该在末尾加一个斜线:
taskqueue.add(url='/backend/', target='dbops')
此外,在您的后端,您可能应该做同样的事情,并在/backend/
上定义您的处理程序。