나는 캐싱을 구현하는 사이트를 가지고있다.레일 조각 캐싱 전략
가능한 경우, 나는 액션 캐싱을 사용했으며 모델 생성/업데이트시 필요한 작업이 만료되도록 스위퍼를 준비했습니다. 부분에서 내가 좋아하는 뭔가를 가질 수 있도록 caches_action
의 대상이되는 뷰 내에서
<% cache('video_content') do %>
Some content here
<% end %>
을 내 video_sweeper
내가 함께이 조각을 만료하는 것을 시도하고있다 :
expire_fragment('video_content')
이 조각은 만료되지 않습니다.
나는 이미 caches_action
을 사용하고 있기 때문에 어떤 이유로 인해 조각이 무시되고 있습니까? 즉, caches_action
또는 조각 캐싱 중 하나를 선택해야합니까?
이런 경우,이 스위퍼가 작동하는 모든 동작보기가 만료되어야합니다. 즉, 스위퍼가 유지 보수에 어려움을 겪게되어 복잡하게 보일 수 있습니다.
제 질문은 주로 스위퍼에서 호출 할 때 내 조각 캐시가 만료되지 않는 이유이며, 그 이유는 제가 caches_action
도 사용하고 있기 때문입니까?
업데이트 : 내 로그를 더 자세히 살펴보면 스위퍼가 내 조각을 만료하고 있음을 실제로 볼 수 있습니다.
Expire fragment views/video_content (0.7ms)
그러나 만료되기 전에 콘솔에서 놀아 보면 조각이 존재하지 않는 것 같습니다.
ruby-1.9.2-p136 :004 > Rails.cache.exist?('views/video_content')
=> false
다시, 이것은 제가이 부분이 거의 작업이 만료 된 경우를 제외하고, 명중되지 않습니다 caches_action
을 사용하고 있기 때문에하는 것은 캐시 할 수 있다고 생각합니다.
감사를 캐스팅합니다. 그 비디오를 확인해 주셔서 감사합니다. – Pete