diff rhodecode/controllers/feed.py @ 3773:8e2cd46f765b beta

invalidate: encapsulate how key is generated from repo_name and kind
author Mads Kiilerich <madski@unity3d.com>
date Wed, 03 Apr 2013 15:56:12 +0200
parents 910ad1ffee99
children ce4b7023a492
line wrap: on
line diff
--- a/rhodecode/controllers/feed.py	Wed Apr 03 15:56:12 2013 +0200
+++ b/rhodecode/controllers/feed.py	Wed Apr 03 15:56:12 2013 +0200
@@ -118,7 +118,7 @@
         """Produce an atom-1.0 feed via feedgenerator module"""
 
         @cache_region('long_term')
-        def _get_feed_from_cache(key):
+        def _get_feed_from_cache(key, kind):
             feed = Atom1Feed(
                  title=self.title % repo_name,
                  link=url('summary_home', repo_name=repo_name,
@@ -140,17 +140,17 @@
             response.content_type = feed.mime_type
             return feed.writeString('utf-8')
 
-        key = repo_name + '_ATOM'
-        valid = CacheInvalidation.test_and_set_valid(key)
+        kind = 'ATOM'
+        valid = CacheInvalidation.test_and_set_valid(repo_name, kind)
         if not valid:
-            region_invalidate(_get_feed_from_cache, None, key)
-        return _get_feed_from_cache(key)
+            region_invalidate(_get_feed_from_cache, None, repo_name, kind)
+        return _get_feed_from_cache(repo_name, kind)
 
     def rss(self, repo_name):
         """Produce an rss2 feed via feedgenerator module"""
 
         @cache_region('long_term')
-        def _get_feed_from_cache(key):
+        def _get_feed_from_cache(key, kind):
             feed = Rss201rev2Feed(
                 title=self.title % repo_name,
                 link=url('summary_home', repo_name=repo_name,
@@ -172,8 +172,8 @@
             response.content_type = feed.mime_type
             return feed.writeString('utf-8')
 
-        key = repo_name + '_RSS'
-        valid = CacheInvalidation.test_and_set_valid(key)
+        kind = 'RSS'
+        valid = CacheInvalidation.test_and_set_valid(repo_name, kind)
         if not valid:
-            region_invalidate(_get_feed_from_cache, None, key)
-        return _get_feed_from_cache(key)
+            region_invalidate(_get_feed_from_cache, None, repo_name, kind)
+        return _get_feed_from_cache(repo_name, kind)