##// END OF EJS Templates
caching: invalidate Repository cache of README and RSS based on latest revision hash in its .changeset_cache...
Mads Kiilerich -
r7831:d6a56c5a default
parent child Browse files
Show More
@@ -28,7 +28,7 b' Original author and date, and relevant c'
28
28
29 import logging
29 import logging
30
30
31 from beaker.cache import cache_region, region_invalidate
31 from beaker.cache import cache_region
32 from tg import response
32 from tg import response
33 from tg import tmpl_context as c
33 from tg import tmpl_context as c
34 from tg.i18n import ugettext as _
34 from tg.i18n import ugettext as _
@@ -40,7 +40,6 b' from kallithea.lib.auth import HasRepoPe'
40 from kallithea.lib.base import BaseRepoController
40 from kallithea.lib.base import BaseRepoController
41 from kallithea.lib.diffs import DiffProcessor
41 from kallithea.lib.diffs import DiffProcessor
42 from kallithea.lib.utils2 import safe_int, safe_unicode, str2bool
42 from kallithea.lib.utils2 import safe_int, safe_unicode, str2bool
43 from kallithea.model.db import CacheInvalidation
44
43
45
44
46 log = logging.getLogger(__name__)
45 log = logging.getLogger(__name__)
@@ -130,10 +129,7 b' class FeedController(BaseRepoController)'
130 return feed.writeString('utf-8')
129 return feed.writeString('utf-8')
131
130
132 kind = 'ATOM'
131 kind = 'ATOM'
133 valid = CacheInvalidation.test_and_set_valid(repo_name, kind)
132 return _get_feed_from_cache(repo_name, kind, c.db_repo.changeset_cache.get('raw_id'))
134 if not valid:
135 region_invalidate(_get_feed_from_cache, None, '_get_feed_from_cache', repo_name, kind)
136 return _get_feed_from_cache(repo_name, kind)
137
133
138 def rss(self, repo_name):
134 def rss(self, repo_name):
139 """Produce an rss2 feed via feedgenerator module"""
135 """Produce an rss2 feed via feedgenerator module"""
@@ -162,7 +158,4 b' class FeedController(BaseRepoController)'
162 return feed.writeString('utf-8')
158 return feed.writeString('utf-8')
163
159
164 kind = 'RSS'
160 kind = 'RSS'
165 valid = CacheInvalidation.test_and_set_valid(repo_name, kind)
161 return _get_feed_from_cache(repo_name, kind, c.db_repo.changeset_cache.get('raw_id'))
166 if not valid:
167 region_invalidate(_get_feed_from_cache, None, '_get_feed_from_cache', repo_name, kind)
168 return _get_feed_from_cache(repo_name, kind)
@@ -32,7 +32,7 b' import traceback'
32 from datetime import date, timedelta
32 from datetime import date, timedelta
33 from time import mktime
33 from time import mktime
34
34
35 from beaker.cache import cache_region, region_invalidate
35 from beaker.cache import cache_region
36 from tg import request
36 from tg import request
37 from tg import tmpl_context as c
37 from tg import tmpl_context as c
38 from tg.i18n import ugettext as _
38 from tg.i18n import ugettext as _
@@ -49,7 +49,7 b' from kallithea.lib.utils2 import safe_in'
49 from kallithea.lib.vcs.backends.base import EmptyChangeset
49 from kallithea.lib.vcs.backends.base import EmptyChangeset
50 from kallithea.lib.vcs.exceptions import ChangesetError, EmptyRepositoryError, NodeDoesNotExistError
50 from kallithea.lib.vcs.exceptions import ChangesetError, EmptyRepositoryError, NodeDoesNotExistError
51 from kallithea.lib.vcs.nodes import FileNode
51 from kallithea.lib.vcs.nodes import FileNode
52 from kallithea.model.db import CacheInvalidation, Statistics
52 from kallithea.model.db import Statistics
53
53
54
54
55 log = logging.getLogger(__name__)
55 log = logging.getLogger(__name__)
@@ -97,10 +97,7 b' class SummaryController(BaseRepoControll'
97 return readme_data, readme_file
97 return readme_data, readme_file
98
98
99 kind = 'README'
99 kind = 'README'
100 valid = CacheInvalidation.test_and_set_valid(repo_name, kind)
100 return _get_readme_from_cache(repo_name, kind, c.db_repo.changeset_cache.get('raw_id'))
101 if not valid:
102 region_invalidate(_get_readme_from_cache, None, '_get_readme_from_cache', repo_name, kind)
103 return _get_readme_from_cache(repo_name, kind)
104
101
105 @LoginRequired(allow_default_user=True)
102 @LoginRequired(allow_default_user=True)
106 @HasRepoPermissionLevelDecorator('read')
103 @HasRepoPermissionLevelDecorator('read')
General Comments 0
You need to be logged in to leave comments. Login now