From 68d1df8bc3b25f03f41af7cb06bc2ef6f0ed6ad5 Mon Sep 17 00:00:00 2001 From: Claire Date: Thu, 1 Dec 2022 10:32:10 +0100 Subject: Fix some performance issues with /admin/instances (#21907) /admin/instances?availability=failing remains wholly unefficient --- app/lib/delivery_failure_tracker.rb | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) (limited to 'app/lib/delivery_failure_tracker.rb') diff --git a/app/lib/delivery_failure_tracker.rb b/app/lib/delivery_failure_tracker.rb index 7c4e28eb7..66c1fd8c0 100644 --- a/app/lib/delivery_failure_tracker.rb +++ b/app/lib/delivery_failure_tracker.rb @@ -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 -- cgit