Improve performance of list of blocked domains by caching counts (#10374)
This commit is contained in:
parent
a96181f16f
commit
94e5e834f2
|
@ -7,7 +7,7 @@ class Instance
|
||||||
|
|
||||||
def initialize(resource)
|
def initialize(resource)
|
||||||
@domain = resource.domain
|
@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)
|
@domain_block = resource.is_a?(DomainBlock) ? resource : DomainBlock.find_by(domain: domain)
|
||||||
end
|
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) }
|
Rails.cache.fetch("#{cache_key}/sample_accounts", expires_in: 12.hours) { Account.where(domain: domain).searchable.joins(:account_stat).popular.limit(3) }
|
||||||
end
|
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
|
def to_param
|
||||||
domain
|
domain
|
||||||
end
|
end
|
||||||
|
|
|
@ -33,7 +33,7 @@
|
||||||
%h4
|
%h4
|
||||||
= instance.domain
|
= instance.domain
|
||||||
%small
|
%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
|
||||||
- if !instance.domain_block.noop?
|
- if !instance.domain_block.noop?
|
||||||
|
|
Reference in New Issue