Browse Source

Improve performance of list of blocked domains by caching counts (#10374)

master
Eugen Rochko 5 years ago
committed by GitHub
parent
commit
94e5e834f2
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 6 additions and 2 deletions
  1. +5
    -1
      app/models/instance.rb
  2. +1
    -1
      app/views/admin/instances/index.html.haml

+ 5
- 1
app/models/instance.rb View File

@ -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

+ 1
- 1
app/views/admin/instances/index.html.haml View File

@ -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?

Loading…
Cancel
Save