From b6c0ffa0d54289bed959bdcbaa68693abec7e783 Mon Sep 17 00:00:00 2001 From: Jacques Distler Date: Tue, 20 Sep 2011 23:46:36 -0500 Subject: [PATCH] A slight improvement in the efficiency of the Cache Sweeper Suggested by Andrew Stacey --- app/controllers/revision_sweeper.rb | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/app/controllers/revision_sweeper.rb b/app/controllers/revision_sweeper.rb index 606784e53..296402fec 100644 --- a/app/controllers/revision_sweeper.rb +++ b/app/controllers/revision_sweeper.rb @@ -18,7 +18,15 @@ def after_save(record) expire_caches(record.page) end end - + + def after_create(record) + if record.is_a?(Page) + WikiReference.pages_that_reference(record.web, record.name).each do |page_name| + expire_cached_page(record.web, page_name) + end + end + end + def after_delete(record) if record.is_a?(Page) expire_caches(record) @@ -33,7 +41,7 @@ def self.expire_page(web, page_name) def expire_caches(page) expire_cached_summary_pages(page.web) - pages_to_expire = ([page.name] + WikiReference.pages_that_reference(page.web, page.name) + + pages_to_expire = ([page.name] + WikiReference.pages_redirected_to(page.web, page.name) + WikiReference.pages_that_include(page.web, page.name)).uniq pages_to_expire.each { |page_name| expire_cached_page(page.web, page_name) }