diff options
author | Eugen Rochko <eugen@zeonfederated.com> | 2019-03-26 00:36:35 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-03-26 00:36:35 +0100 |
commit | 94e5e834f2ddbc791ab27e2ef17eb2f23140a6ba (patch) | |
tree | 6d6d82445651f10512c2a7a41a1421a95489d7a2 /app/models | |
parent | a96181f16f4ef74ce6a1efc5e893ddd87a127949 (diff) |
Improve performance of list of blocked domains by caching counts (#10374)
Diffstat (limited to 'app/models')
-rw-r--r-- | app/models/instance.rb | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/app/models/instance.rb b/app/models/instance.rb index 7448d465c..7bf000d40 100644 --- a/app/models/instance.rb +++ b/app/models/instance.rb @@ -7,7 +7,7 @@ class Instance def initialize(resource) @domain = resource.domain - @accounts_count = resource.accounts_count + @accounts_count = resource.is_a?(DomainBlock) ? nil : resource.accounts_count @domain_block = resource.is_a?(DomainBlock) ? resource : DomainBlock.find_by(domain: domain) end @@ -15,6 +15,10 @@ class Instance Rails.cache.fetch("#{cache_key}/sample_accounts", expires_in: 12.hours) { Account.where(domain: domain).searchable.joins(:account_stat).popular.limit(3) } end + def cached_accounts_count + @accounts_count || Rails.cache.fetch("#{cache_key}/count", expires_in: 12.hours) { Account.where(domain: domain).count } + end + def to_param domain end |