GAE后端无法响应启动请求

时间:2012-03-14 11:37:05

标签: python google-app-engine

这可能是一个非常基本的事情,我只是在Python 2.5应用程序中搞清楚。

我的流程大约需要一个小时才能完成,所以我做了一个后端。为此,我有一个backend.yaml,其中包含以下内容:

-name: mybackend
 options: dynamic
 start: /path/to/script.py

(该脚本只是原始计算。在任何地方都没有活动网络会话的概念。)

关于玩具数据,这很好用。

这曾经是公开的,所以我会导航到页面,脚本会启动,大约一分钟后超时(我假设HTTP + 30s关闭宽限期)。我认为这是一个浏览器问题。所以我用cron工作重复同样的事情。没有骰子。切换到使用推送队列并添加目标任务,因为在纸面上看起来它会等待10分钟。同样的事情。

在那一分钟之后所有3次超时,这意味着我不会像我相信的那样将请求与后端分离。

我假设我需要为后端编写一个合适的Handler来完成工作,但我不知道如何编写Handler / webapp2Route。我是否处理_ah/start/或为后端创建新的端点?我该如何处理子域?这似乎仍然是错误的做法(我将一个长期过程直接用于各种要求),但我不知所措。

1 个答案:

答案 0 :(得分:0)

因此根本原因最终是在脚本本身中执行以下操作:

models = MyModel.all()
for model in models:
    # Magic happens

我基本上理所当然地认为查询会自动批处理我的Query.all()在许多实体上,但它在第1000个条目左右死亡。我最初写的只是计算,因为我完全忽略了读取失败的事实。

解决我们想要的问题的实际解决方案最终是“使用map-reduce库”,因为我们试图查看每个模型进行分析。

相关问题