Improve performance of list of blocked domains by caching counts (#10374)
This commit is contained in:
		| @@ -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 | ||||
|   | ||||
| @@ -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? | ||||
|   | ||||
		Reference in New Issue
	
	Block a user