From 2aa202d8d272ef2997026f6d5f22ecc6169c97cb Mon Sep 17 00:00:00 2001 From: Martin Kamerbeek Date: Wed, 2 May 2007 15:08:52 +0000 Subject: [PATCH] Fixed Too many directories in RSS cache --- docs/changelog/7.x.x.txt | 2 ++ .../Workflow/Activity/CleanFileCache.pm | 27 ++++++++++++++----- 2 files changed, 22 insertions(+), 7 deletions(-) diff --git a/docs/changelog/7.x.x.txt b/docs/changelog/7.x.x.txt index ac6ec11fe..ce67ebe41 100644 --- a/docs/changelog/7.x.x.txt +++ b/docs/changelog/7.x.x.txt @@ -21,6 +21,8 @@ http://www.plainblack.com/bugs/tracker/asset-tree-cut-and-paste-not-handled-by-search - fix: Fixed a bug where calendars would generate corrupt iCal feed urls (Martin Kamerbeek / Oqapi) + - fix: Too many directories in RSS cache (Martin Kamerbeek / Oqapi) + http://www.plainblack.com/bugs/tracker/too-many-directories-in-rss-cache - fix: Help link broken for navigation template (perlDreamer Consulting, LLC) http://www.plainblack.com/bugs/tracker/help-link-broken-for-navigation-template diff --git a/lib/WebGUI/Workflow/Activity/CleanFileCache.pm b/lib/WebGUI/Workflow/Activity/CleanFileCache.pm index 49eb70fcf..51ef36b04 100644 --- a/lib/WebGUI/Workflow/Activity/CleanFileCache.pm +++ b/lib/WebGUI/Workflow/Activity/CleanFileCache.pm @@ -77,13 +77,26 @@ See WebGUI::Workflow::Activity::execute() for details. sub execute { my $self = shift; - my $size = $self->get("sizeLimit") + 10; - my $expiresModifier = 0; - my $cache = WebGUI::Cache::FileCache->new($self->session); - while ($size > $self->get("sizeLimit")) { - $size = $cache->getNamespaceSize($expiresModifier); - $expiresModifier += 60 * 30; # add 30 minutes each pass - } + my $size = $self->get("sizeLimit") + 10; + my $expiresModifier = 0; + + # Purge expired content cache + my $cache = WebGUI::Cache::FileCache->new($self->session); + while ($size > $self->get("sizeLimit")) { + $size = $cache->getNamespaceSize($expiresModifier); + $expiresModifier += 60 * 30; # add 30 minutes each pass + } + + $size = $self->get("sizeLimit") + 10; + $expiresModifier = 0; + + # Purge expired rss cache + my $rssCache = WebGUI::Cache::FileCache->new($self->session, undef, 'RSS'); + while ($size > $self->get("sizeLimit")) { + $size = $rssCache->getNamespaceSize($expiresModifier); + $expiresModifier += 60 * 30; # add 30 minutes each pass + } + return $self->COMPLETE; }