Fix some performance issues with /admin/instances (#21907)
/admin/instances?availability=failing remains wholly unefficient
This commit is contained in:
		
							parent
							
								
									1122697b37
								
							
						
					
					
						commit
						68d1df8bc3
					
				
					 2 changed files with 8 additions and 3 deletions
				
			
		|  | @ -57,7 +57,7 @@ module Admin | |||
|     end | ||||
| 
 | ||||
|     def preload_delivery_failures! | ||||
|       warning_domains_map = DeliveryFailureTracker.warning_domains_map | ||||
|       warning_domains_map = DeliveryFailureTracker.warning_domains_map(@instances.map(&:domain)) | ||||
| 
 | ||||
|       @instances.each do |instance| | ||||
|         instance.failure_days = warning_domains_map[instance.domain] | ||||
|  |  | |||
|  | @ -65,8 +65,13 @@ class DeliveryFailureTracker | |||
|       domains - UnavailableDomain.all.pluck(:domain) | ||||
|     end | ||||
| 
 | ||||
|     def warning_domains_map | ||||
|       warning_domains.index_with { |domain| redis.scard(exhausted_deliveries_key_by(domain)) } | ||||
|     def warning_domains_map(domains = nil) | ||||
|       if domains.nil? | ||||
|         warning_domains.index_with { |domain| redis.scard(exhausted_deliveries_key_by(domain)) } | ||||
|       else | ||||
|         domains -= UnavailableDomain.where(domain: domains).pluck(:domain) | ||||
|         domains.index_with { |domain| redis.scard(exhausted_deliveries_key_by(domain)) }.filter { |_, days| days.positive? } | ||||
|       end | ||||
|     end | ||||
| 
 | ||||
|     private | ||||
|  |  | |||
		Loading…
	
		Reference in a new issue