在Ruby中解析XML巨大不处理在服务器

问题描述:

完整的文件,我需要通过引入nokogiri解析3MB二级XML文件并Httparty解析从XML的链接的内容。在Ruby中解析XML巨大不处理在服务器

,当我做我的Windows 7 PC上,但是当我在VPS运行同一个脚本,它似乎并没有完全处理它,它工作正常。

是否因为服务器上Ruby脚本的最大执行时间限制?如果是这样,我怎么能在Ubuntu中增加这个功能?

+0

3MB听起来并不大。它如何失败? –

+0

@FrederickCheung这个xml文件中有超过3000条记录,但它只保存了27条记录,即使我们认为那些返回错误的一半应该有更多的保存。它所做的就是将这些记录称为亚马逊产品广告API。也许API限制可能是一个原因,但不是太确定。 –

+1

3MB不大。 3GB会很大。如果没有代码,真的很难说出发生了什么事情,因为它发生在问题出现的VPS上,但在Windows上工作,这个问题听起来不像是Ruby或Nokogiri相关的问题,而是与系统相关联,使得它听起来很响就像Stack Overflow的主题一样。 [su]可能是更好的选择。 –

没有人会告诉你为什么它发生没有日志。你浏览过他们吗?

至于VPS和XML担心 - 你可能会超过服务器上的最大可用内存(如果你有多个客户端什么很快就能完成,所有的人都装个XML)。我不知道你是如何使用Nokogiri,但我的建议是检查你是否使用SAX解析器(http://www.rubydoc.info/github/sparklemotion/nokogiri/Nokogiri/XML/SAX/Parser

最终你会使用更少的资源(内存,执行时间),但有一个缺点 - SAX解析器更难写,尤其是当XML结构是复杂的,但它可能是麦芽汁(寻找基准“引入nokogiri DOM VS SAX”)

+0

感谢您的回复。我同意,但只有管理员,即我自己是运行该脚本的人可能每天一次。我尝试过使用另一个名为Ox的宝石进行解析,但它似乎有点难以使用,所以最终与Nokogiri一起使用。我应该在哪里检查日志文件btw?你能指出他们在Ubuntu中保存的位置吗(我是linux新手,主要使用Windows)?这与服务器无关,否则我可以检查服务器日志。 –

+1

好的,但你应该有权访问日志,否则有一天你遇到了一个问题,如果没有它们,你将无法解决问题。 即使没有访问他们,你应该问他是否可以将他们同步到机器上,你可以访问 – djaszczurowski

+0

实际上我自己构建它:)但是对于Ubuntu和Linux的东西来说是新的,但必须在服务器上使用它。我会尽力为那些感谢设置日志。 –