Ruby获取RSS提要将无法获得最新的提要
问题描述:
解析RSS提要时出现问题。 当我这样做:Ruby获取RSS提要将无法获得最新的提要
feed = getFeed("http://example.com/rss)
如果饲料含量的变化是不更新。
如果我不喜欢这样写道:
feed = getFeed("http://example.com/rss?" + Random.rand(20).to_s)
它工作的大部分时间,但并非总是如此。
getFeed()
实现这样的:
def getFeed(url)
rss_content = ""
open(url) do |f|
rss_content = f.read
end
return rss_content
end
我用这个在西纳特拉和Ruby 1.9.3,如果有所作为。 在我看来它被缓存的地方,但我不知道在哪里。
编辑: Okey在服务器上运行1/2天后出现问题。
答
此:
feed = getFeed("http://example.com/rss?" + Random.rand(20).to_s)
意味着问题是缓存,但红宝石,OpenURI和西纳特拉不应该是什么缓存。也许你的代码运行在缓存设备或应用程序后面,它处理传出请求以及传入?
这不是修复,但你的代码可以大大精简:
def getFeed(url)
open(url).read
end
此之前的讨论可能会有所帮助:http://*.com/questions/6389255/rss-feed-how-to -recommend-an-update-interval – fmendez 2013-02-23 16:28:14
不确定,因为这意味着open()检查这个,我不这么认为 – 2013-02-23 16:32:40