3

我在让后端在 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')

4

1 回答 1

4

/backend永远不会匹配/backend/.*模式。您应该在末尾添加一个斜杠:

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

此外,在您的后端,您可能应该做同样的事情并在/backend/.

于 2012-10-15T17:57:28.347 回答