spariam
2008-May-14 01:08 UTC
conditional action caching/memcache - not working with all actions (routes?)
I''ve been trying to track this down for a while now and have yet find
the solution...this problem appears only to occur in production
environment with multiple mongrels.
We''ve got several controllers using conditional action caching using
cache_fu plugin. Some actions work great, as I expect, others seem to
work intermittently at mongrel startup, but quit working after a
while.
So for example, the index action in a help controller works fine (this
is picked up by a default route):
class HelpController < ApplicationController
caches_action :index => {:ttl => 1.hour, :if => :cacheable?}
def index
end
end
However, some actions, including the main site index action seems to
fail miserably.
Uses this route:
# Default welcome Route
map.home '''', :controller => "home"
# Note - c.flash_message below is to pick up redirects to index page
with flash messages like one one logout, which will have a flash
message ("You are now logged out," etc.)
class HomeController < ApplicationController
before_filter :login_required, :except =>
[:index, :welcome, :public_profile, :test]
before_filter :find_account_or_redirect, :except =>
[:index, :welcome, :public_profile, :test]
caches_action :index => { :ttl => 30.minutes, :if
=> :cacheable? } , :cache_path => Proc.new {|c| c.flash_message }
def index
respond_to do |format|
format.html do
unless logged_in?
@favorite = FeatureItem.recent_favorites(1,
''entertainment'')
[0]
@favorites = FeatureItem.recent_favorites(10,
''entertainment'')
render :action => ''welcome'' and return false
end
.
.
.
end
end
end
.
.
.
end
cacheable? method is in application controller (logged_in? is in
restful_authentication library)
def cacheable?
logged_in? ? false : true
end
About four of the actions are working perfectly, the other four or so
fail. Any insight would be highly appreciated...
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"Ruby on Rails: Talk" group.
To post to this group, send email to
rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org
To unsubscribe from this group, send email to
rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org
For more options, visit this group at
http://groups.google.com/group/rubyonrails-talk?hl=en
-~----------~----~----~----~------~----~------~--~---