This plugin fix the broken caches_page from Rails
Ruby
Switch branches/tags
Nothing to show
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
lib
tasks
test
MIT-LICENSE
README
Rakefile
init.rb

README

CachesPageFix
=============

Rails caches_page is broken, it has RACE condition bugs and is not really
efficient. If you don't think so then maybe this plugin is not for you.

How broken ? Example : you have 3 mongrel processes, caches_page for
/controller/something and the static file does not exist yet. If you have 3
connections at the same time for that specific page, you'll end up having 3
mongrel processes for generating the exact same page...

This plugin creates a .lock so the other mongrel processes wait for the first
one to deliver the page (except if the .lock is too old, then it removes it and
start again).

Example
=======

There are 2 ways to use this cache, you can use them in your controller like :

class SiteController < ApplicationController
    smart_caches_page :index
end

Or you can activate it in the routes with a :cache => true parameter


Copyright (c) 2008 [Fabien Penso], released under the MIT license