Google App Engine后端Python

时间:2012-10-15 17:13:00

标签: python google-app-engine backend

我遇到了在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')

1 个答案:

答案 0 :(得分:4)

/backend永远不会匹配/backend/.*模式。你应该在最后添加一个斜杠:

taskqueue.add(url='/backend/', target='dbops')

另外,在你的后端你应该做同样的事情,并在/backend/上定义你的处理程序。