From 94e5e834f2ddbc791ab27e2ef17eb2f23140a6ba Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Tue, 26 Mar 2019 00:36:35 +0100 Subject: Improve performance of list of blocked domains by caching counts (#10374) --- app/models/instance.rb | 6 +++++- 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? -- cgit