From 4dcbec2ba2f2f42db3ce0cf5fe2e06e4ca78b568 Mon Sep 17 00:00:00 2001 From: Brandon Hilkert Date: Tue, 4 Dec 2012 12:18:05 -0500 Subject: [PATCH] * Change instance methods to class methods * Run queues in same redis connection * Change name of queued to enqueued --- lib/sidekiq/api.rb | 41 +++++++++++++++++++++-------------------- test/test_api.rb | 21 ++++++++------------- 2 files changed, 29 insertions(+), 33 deletions(-) diff --git a/lib/sidekiq/api.rb b/lib/sidekiq/api.rb index a1d880c2..2e9bd534 100644 --- a/lib/sidekiq/api.rb +++ b/lib/sidekiq/api.rb @@ -3,33 +3,34 @@ require 'sidekiq' module Sidekiq class Stats - def processed - Sidekiq.redis do |conn| - conn.get("stat:processed") - end || 0 - end + class << self + def processed + Sidekiq.redis do |conn| + conn.get("stat:processed") + end || 0 + end - def failed - Sidekiq.redis do |conn| - conn.get("stat:failed") - end || 0 - end + def failed + Sidekiq.redis do |conn| + conn.get("stat:failed") + end || 0 + end - def queues - queues = Sidekiq.redis { |conn| conn.smembers('queues') } + def queues + Sidekiq.redis do |conn| + queues = conn.smembers('queues') - Sidekiq.redis do |conn| - queues.inject({}) do |memo, queue| - memo[queue] = conn.llen("queue:#{queue}") - memo + queues.inject({}) do |memo, queue| + memo[queue] = conn.llen("queue:#{queue}") + memo + end end end - end - def queued - queues.values.inject(&:+) || 0 + def enqueued + queues.values.inject(&:+) || 0 + end end - end ## diff --git a/test/test_api.rb b/test/test_api.rb index e8f4709a..459a6088 100644 --- a/test/test_api.rb +++ b/test/test_api.rb @@ -8,22 +8,20 @@ class TestApi < MiniTest::Unit::TestCase describe "processed" do it "is initially zero" do - s = Sidekiq::Stats.new - assert_equal 0, s.processed + assert_equal 0, Sidekiq::Stats.processed end end describe "failed" do it "is initially zero" do - s = Sidekiq::Stats.new - assert_equal 0, s.processed + assert_equal 0, Sidekiq::Stats.processed end end describe "queues" do it "is initially empty" do s = Sidekiq::Stats.new - assert_equal 0, s.queues.size + assert_equal 0, Sidekiq::Stats.queues.size end it "returns a hash of queue and size" do @@ -35,18 +33,16 @@ class TestApi < MiniTest::Unit::TestCase conn.sadd 'queues', 'bar' end - s = Sidekiq::Stats.new - assert_equal ({ "foo" => 1, "bar" => 3 }), s.queues + assert_equal ({ "foo" => 1, "bar" => 3 }), Sidekiq::Stats.queues end end - describe "queued" do + describe "enqueued" do it "is initially empty" do - s = Sidekiq::Stats.new - assert_equal 0, s.queued + assert_equal 0, Sidekiq::Stats.enqueued end - it "returns total queued jobs" do + it "returns total enqueued jobs" do Sidekiq.redis do |conn| conn.rpush 'queue:foo', '{}' conn.sadd 'queues', 'foo' @@ -55,8 +51,7 @@ class TestApi < MiniTest::Unit::TestCase conn.sadd 'queues', 'bar' end - s = Sidekiq::Stats.new - assert_equal 4, s.queued + assert_equal 4, Sidekiq::Stats.enqueued end end end