From e718fcefd5903394d8b0b29726410633b6194eee Mon Sep 17 00:00:00 2001 From: Mike Perham Date: Mon, 10 Dec 2012 20:44:33 -0800 Subject: [PATCH] Rewrite cleanup to minimize garbage and network round trips --- lib/sidekiq/api.rb | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/lib/sidekiq/api.rb b/lib/sidekiq/api.rb index 4d78b863..f613b9e6 100644 --- a/lib/sidekiq/api.rb +++ b/lib/sidekiq/api.rb @@ -54,16 +54,14 @@ module Sidekiq Sidekiq.redis do |conn| processed_keys = conn.keys("stat:processed:*") - - processed_keys.each do |key| - conn.del(key) if key < "stat:processed:#{delete_before_date.to_s}" - end + earliest = "stat:processed:#{delete_before_date.to_s}" + pkeys = processed_keys.select { |key| key < earliest } + conn.del(pkeys) if pkeys.size > 0 failed_keys = conn.keys("stat:failed:*") - - failed_keys.each do |key| - conn.del(key) if key < "stat:failed:#{delete_before_date.to_s}" - end + earliest = "stat:failed:#{delete_before_date.to_s}" + fkeys = failed_keys.select { |key| key < earliest } + conn.del(fkeys) if fkeys.size > 0 end end