这是关于processing large files使用谷歌应用引擎的问题的跟进。解决方案是谷歌云存储,我花了一整天的时间来解决它,并遇到了一些重大问题。
我正在使用的后端是B4_1G。我正在尝试处理一个55mb大小的xml文件。代码目前是非常基本的,我只是想确保在我开始用它做任何事情之前我可以简单地将文件打印出来给用户:
gcs_file = gcs.open(filename)
gcs_file.seek(0, os.SEEK_SET)
for line in gcs_file:
self.response.write(line)
gcs_file.close()
结果是后端简直崩溃了。在浏览器上它会吐出“未捕获的应用程序失败”(即使它位于try,except语句中)。在我的日志中它说:
"The process handling this request unexpectedly died. This is likely to cause a new process to be used for the next request to your application."
我用一个小小的hello world文本文件测试了这段代码并且它可以工作。所以我的猜测是,作为初学者,我正在做一些效率低下的事情,导致服务器在几分钟后崩溃。我已经考虑过链接任务来完成它,但我真的不想写所有额外的代码......必须有一种方法在后端做到这一点吗?
答案 0 :(得分:2)
在弄乱了它之后,事实证明self.response.write是问题所在。我的猜测是,打印出来的55mb搞砸了整个事情。一旦我删除并添加了我的处理代码,我注意到一切正常:)。