0

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でSinatraでこれを使用しました。私の意見では、どこかにキャッシュされますが、どこにあるのかわかりません。

編集:サーバーで半日実行した後、問題なく動作します。

4

1 に答える 1

2

これ:

feed = getFeed("http://example.com/rss?" + Random.rand(20).to_s)

問題はキャッシュにあることを意味しますが、Ruby、OpenURI、および Sinatra は何もキャッシュすべきではありません。おそらく、あなたのコードは、送信要求と受信要求を処理するキャッシュ デバイスまたはアプリの背後で実行されていますか?

これは修正ではありませんが、コードを大幅に合理化できます。

def getFeed(url)
  open(url).read
end
于 2013-02-23T17:58:43.917 に答える