Commit 9ef7a07492b1ae51a906ca3341e1056e710629bc

Authored by Daniela Feitosa
Committed by Antonio Terceiro
1 parent c54ef437

ActionItem1197: expiring statistics block cache

When a new profile is created, statistics block should be updated
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