From 7719effdee83ec439c431fec9fb559d1d3128cbf Mon Sep 17 00:00:00 2001 From: Brandon Hilkert Date: Tue, 4 Dec 2012 12:13:47 -0500 Subject: [PATCH] Add size back. --- lib/sidekiq/stats.rb | 10 ++++++++++ test/test_stats.rb | 9 +++++++++ 2 files changed, 19 insertions(+) diff --git a/lib/sidekiq/stats.rb b/lib/sidekiq/stats.rb index 7f60e5a2..8108dc44 100644 --- a/lib/sidekiq/stats.rb +++ b/lib/sidekiq/stats.rb @@ -23,4 +23,14 @@ module Sidekiq inject(0) {|memo, val| memo + val } results end + + def size(*queues) + return info[:backlog] if queues.empty? + + Sidekiq.redis { |conn| + conn.multi { + queues.map { |q| conn.llen("queue:#{q}") } + } + }.inject(0) { |memo, count| memo += count } + end end diff --git a/test/test_stats.rb b/test/test_stats.rb index cd98bfae..10202f3e 100644 --- a/test/test_stats.rb +++ b/test/test_stats.rb @@ -92,6 +92,15 @@ class TestStats < MiniTest::Unit::TestCase end end + describe "size" do + it "returns size of queues" do + assert_equal 0, Sidekiq.size("foox") + assert_equal 1, Sidekiq.size(:foo) + assert_equal 1, Sidekiq.size("foo") + assert_equal 4, Sidekiq.size("foo", "bar") + assert_equal 6, Sidekiq.size + end + end end end