2013-02-23 5 views
0

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 

나는, 루비 1.9.3와시나이를 사용했다. 내 의견으로는 어딘가에 캐시되지만, 나는 어디 있는지 모른다.

편집 : 서버에서 실행되는 1/2 일 후에 Okey 문제가 발생하지 않습니다.

+0

이 이전 논의가 도움이 될 수 있습니다 : http://stackoverflow.com/questions/6389255/rss-feed-how-to -recommend-an-update-interval – fmendez

+0

확실하지 않은가? open()이 이것을 확인하고 그렇게 생각하지 않기 때문이다. –

답변

2

이 :

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

문제가 의미가 캐싱이지만, 루비, OpenURI와시나 아무것도 캐시해서는 안됩니다. 아마도 코드가 들어오는 것뿐만 아니라 나가는 요청을 처리하는 캐싱 장치 또는 앱에서 실행되고 있습니까?

은 수정이 아니라 코드가 크게 간소화 할 수 있습니다

def getFeed(url) 
    open(url).read 
end 
관련 문제