Commit 9ef7a07492b1ae51a906ca3341e1056e710629bc
Committed by
Antonio Terceiro
1 parent
c54ef437
Exists in
master
and in
29 other branches
ActionItem1197: expiring statistics block cache
When a new profile is created, statistics block should be updated
Showing
2 changed files
with
14 additions
and
0 deletions
Show diff stats
app/models/profile.rb
@@ -638,4 +638,9 @@ class Profile < ActiveRecord::Base | @@ -638,4 +638,9 @@ class Profile < ActiveRecord::Base | ||
638 | ProfileSweeper.new().after_update(profile) | 638 | ProfileSweeper.new().after_update(profile) |
639 | end | 639 | end |
640 | 640 | ||
641 | + # FIXME: horrible workaround to circular dependancy in environment.rb | ||
642 | + after_create do |profile| | ||
643 | + ProfileSweeper.new().after_create(profile) | ||
644 | + end | ||
645 | + | ||
641 | end | 646 | end |
app/sweepers/profile_sweeper.rb
@@ -7,6 +7,10 @@ class ProfileSweeper # < ActiveRecord::Observer | @@ -7,6 +7,10 @@ class ProfileSweeper # < ActiveRecord::Observer | ||
7 | expire_caches(profile) | 7 | expire_caches(profile) |
8 | end | 8 | end |
9 | 9 | ||
10 | + def after_create(profile) | ||
11 | + expire_statistics_block_cache(profile) | ||
12 | + end | ||
13 | + | ||
10 | protected | 14 | protected |
11 | 15 | ||
12 | def expire_caches(profile) | 16 | def expire_caches(profile) |
@@ -19,4 +23,9 @@ protected | @@ -19,4 +23,9 @@ protected | ||
19 | expire_timeout_fragment(block.cache_keys) | 23 | expire_timeout_fragment(block.cache_keys) |
20 | end | 24 | end |
21 | end | 25 | end |
26 | + | ||
27 | + def expire_statistics_block_cache(profile) | ||
28 | + blocks = profile.environment.blocks.select { |b| b.kind_of?(EnvironmentStatisticsBlock) } | ||
29 | + blocks.map(&:cache_keys).each{|ck|expire_timeout_fragment(ck)} | ||
30 | + end | ||
22 | end | 31 | end |