diff --git a/lib/sidekiq/stats.rb b/lib/sidekiq/stats.rb index 2bf2f8bf..a39011d7 100644 --- a/lib/sidekiq/stats.rb +++ b/lib/sidekiq/stats.rb @@ -18,5 +18,9 @@ module Sidekiq }.sort_by { |_, size| size } } end + + def backlog + queues_with_sizes.map {|_, size| size }.inject(0) {|memo, val| memo + val } + end end end diff --git a/lib/sidekiq/web.rb b/lib/sidekiq/web.rb index 7db9adbc..b6c71593 100644 --- a/lib/sidekiq/web.rb +++ b/lib/sidekiq/web.rb @@ -77,7 +77,7 @@ module Sidekiq end def backlog - queues.map {|name, size| size }.inject(0) {|memo, val| memo + val } + Sidekiq::Stats.backlog end def retries_with_score(score) diff --git a/test/test_stats.rb b/test/test_stats.rb index 46039a50..16477656 100644 --- a/test/test_stats.rb +++ b/test/test_stats.rb @@ -65,8 +65,8 @@ class TestStats < MiniTest::Unit::TestCase end end - describe "queues_with_counts" do - it "returns queue names and corresponding job counts" do + describe "counting methods" do + before do @redis.with do |conn| conn.rpush 'queue:foo', '{}' conn.sadd 'queues', 'foo' @@ -75,7 +75,16 @@ class TestStats < MiniTest::Unit::TestCase conn.rpush 'queue:bar', '{}' conn.sadd 'queues', 'bar' end - assert_equal [["foo", 1], ["bar", 2]], Sidekiq::Stats.queues_with_sizes + end + describe "queues_with_counts" do + it "returns queue names and corresponding job counts" do + assert_equal [["foo", 1], ["bar", 2]], Sidekiq::Stats.queues_with_sizes + end + end + describe "backlog" do + it "returns count of all jobs yet to be processed" do + assert_equal 3, Sidekiq::Stats.backlog + end end end