2016-08-17 81 views
0

完整的文件,我需要通過引入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]可能是更好的選擇。 –

回答

2

沒有人會告訴你爲什麼它發生沒有日誌。你瀏覽過他們嗎?

至於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的東西來說是新的,但必須在服務器上使用它。我會盡力爲那些感謝設置日誌。 –