diff --git a/examples/sinkiq.rb b/examples/sinkiq.rb index 40488882..0d34743e 100644 --- a/examples/sinkiq.rb +++ b/examples/sinkiq.rb @@ -20,7 +20,7 @@ end get '/' do @failed = $redis.get('stat:failed') - @processed = $redis.get('stat:processed') + @processed = Sidekiq::Stats.processed @messages = $redis.lrange('sinkiq-example-messages', 0, -1) erb :index end diff --git a/lib/sidekiq.rb b/lib/sidekiq.rb index 855f4e92..24575788 100644 --- a/lib/sidekiq.rb +++ b/lib/sidekiq.rb @@ -4,6 +4,7 @@ require 'sidekiq/client' require 'sidekiq/worker' require 'sidekiq/redis_connection' require 'sidekiq/util' +require 'sidekiq/stats' require 'sidekiq/extensions/class_methods' require 'sidekiq/extensions/action_mailer' diff --git a/lib/sidekiq/stats.rb b/lib/sidekiq/stats.rb new file mode 100644 index 00000000..f14f15ad --- /dev/null +++ b/lib/sidekiq/stats.rb @@ -0,0 +1,9 @@ +module Sidekiq + module Stats + module_function + + def processed + Sidekiq.redis { |conn| conn.get('stat:processed') }.to_i || 0 + end + end +end diff --git a/lib/sidekiq/web.rb b/lib/sidekiq/web.rb index 693e521a..553d2c84 100644 --- a/lib/sidekiq/web.rb +++ b/lib/sidekiq/web.rb @@ -61,7 +61,7 @@ module Sidekiq end def processed - Sidekiq.redis { |conn| conn.get('stat:processed') } || 0 + Sidekiq::Stats.processed end def failed diff --git a/test/test_stats.rb b/test/test_stats.rb index 3e50083d..0d90937d 100644 --- a/test/test_stats.rb +++ b/test/test_stats.rb @@ -32,14 +32,14 @@ class TestStats < MiniTest::Unit::TestCase boss.expect(:processor_done!, nil, [processor]) assert_equal 0, conn.get('stat:failed').to_i - assert_equal 0, conn.get('stat:processed').to_i + assert_equal 0, Sidekiq::Stats.processed processor.process(msg, 'xyzzy') processor.process(msg, 'xyzzy') processor.process(msg, 'xyzzy') assert_equal 0, conn.get('stat:failed').to_i - assert_equal 3, conn.get('stat:processed').to_i + assert_equal 3, Sidekiq::Stats.processed end end @@ -50,7 +50,7 @@ class TestStats < MiniTest::Unit::TestCase @redis.with do |conn| assert_equal [], conn.smembers('workers') assert_equal 0, conn.get('stat:failed').to_i - assert_equal 0, conn.get('stat:processed').to_i + assert_equal 0, Sidekiq::Stats.processed processor = Sidekiq::Processor.new(boss) @@ -60,7 +60,7 @@ class TestStats < MiniTest::Unit::TestCase end assert_equal 1, conn.get('stat:failed').to_i - assert_equal 1, conn.get('stat:processed').to_i + assert_equal 1, Sidekiq::Stats.processed end end