我需要运行定期执行的任务,以获取相对较大的xml文档(5Mb)并处理它们。
我目前遇到的一个问题是我达到了应用程序实例的内存限制,并且当我的任务正在运行时,实例终止。
我做了一些粗略的测量:
我可以通过将编码文本直接传递给lxml解析器来避免第3步并节省一些内存,但specifying encoding for lxml parser has some problems on GAE对我来说。
我可以使用MapReduce库来完成这项工作,但对于一个5mb的文件真的值得吗?
另一种选择可能是将任务分成几个任务。
此外,我可以将文件保存到blobstore,然后通过从blobstore逐行读取来处理它?作为旁注,如果UrlFetch服务允许“按需”读取响应以简化大型文档的处理,那将是很方便的。
一般来说,执行此类工作最方便的方法是什么?
谢谢!