2012-09-06 1 views
4

나는 뒤죽박죽이다!불필요한 캐싱으로 겉으로보기에는 긁어 모으는 레이크 작업

나는 1 분마다 실행할 수있는 레이크 작업을 가지고 있습니다.

블로그에 로그인하면 관심있는 JSON을 찾을 수 있지만 JSON의 변경 사항이 레이크 작업에서 발견되기 전에 최대 30 회까지 작업을 수행 할 수 있습니다. 그동안 특정 JSON 객체에 대한 몇 가지 변경 사항을 놓쳤습니다.

캐싱이 진행되는 것처럼 보였습니다. 나는 그림과 같이 메카니즘 캐싱을 끄려 고했지만, 지금 다른 방법을 시도 할 수 있을지 확신하지 못했습니다.

모든 포인터?

미리 감사드립니다. 서버에서

agent = Mechanize.new # {|a| a.log = Logger.new(STDERR) } 
    agent.history.clear 
    agent.max_history = 0 
    agent.user_agent_alias = 'Mac Safari' 
    page = agent.get 'http://website.com' 
    form = page.forms.first 
    form.email = '[email protected]' 
    form.password = 'mypassword' 

    page = agent.submit form 
    page = agent.get 'http://website.com/password_protected_page' 
    jsonDirty = page.search '//script[@type="application/json"]' 

응답 :

{"server"=>"nginx", "date"=>"Thu, 13 Sep 2012 14:16:43 GMT", "content-type"=>"text/html; charset=utf-8", "connection"=>"close", "vary"=>"Cookie", "content-language"=>"plfplen", "set-cookie"=>"csrftoken=pVDg2SJ4KHqONz2OiEkNK7IbKlnJSQQf; expires=Thu, 12-Sep-2013 14:16:43 GMT; Max-Age=31449600; Path=/, affiliate=; expires=Thu, 01-Jan-1970 00:00:00 GMT; Max-Age=0; Path=/, one-click-join=; expires=Thu,01-Jan-1970 00:00:00 GMT; Max-Age=0; Path=/", "expires"=>"Thu, 01 Jan 1970 00:00:01 GMT", "cache-control"=>"no-cache", "content-encoding"=>"gzip", "transfer-encoding"=>"chunked"} 
+0

서버 로그에 액세스 할 수 있습니까? 그렇지 않다면 서버 응답 헤더를 로그에 출력 할 수 있습니까? – brycemcd

+0

Bryce에게 감사드립니다. 서버의 응답을 추가했습니다. – iOSDevil

+0

결과가 실제로 더 자주 변경되는지 확인 했습니까? 'curl'을 사용하여 양식을 제출하고 자바 스크립트를 비교해 볼 수 있습니다. – Roman

답변

1

당신은 URL에 임의의 쿼리 매개 변수를 추가 시도 할 수 있습니다. 예 :

page = agent.get "http://website.com/password_protected_page?random=#{Time.now.to_i}" 
+0

고마워 크리스찬, 너 한테 알려 줄께. – iOSDevil

+0

어떻게 됐어? – FluffyJack

+0

불행히도 그것은 차이를 만들지 않았고, 여전히 동일한 긴 지연 – iOSDevil