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 | |
parent | a96181f16f4ef74ce6a1efc5e893ddd87a127949 (diff) |
Improve performance of list of blocked domains by caching counts (#10374)
-rw-r--r-- | app/models/instance.rb | 6 | ||||
-rw-r--r-- | app/views/admin/instances/index.html.haml | 2 |
2 files changed, 6 insertions, 2 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 diff --git a/app/views/admin/instances/index.html.haml b/app/views/admin/instances/index.html.haml index 235927140..9574c3147 100644 --- a/app/views/admin/instances/index.html.haml +++ b/app/views/admin/instances/index.html.haml @@ -33,7 +33,7 @@ %h4 = instance.domain %small - = t('admin.instances.known_accounts', count: instance.accounts_count) + = t('admin.instances.known_accounts', count: instance.cached_accounts_count) - if instance.domain_block - if !instance.domain_block.noop? |