sidekiq-scheduler 0.2.1 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -48,8 +48,8 @@ module SidekiqScheduler
48
48
  loop do
49
49
  break logger.debug("Finished processing queue for timestamp #{timestamp}") unless msg = redis { |r| r.lpop("delayed:#{timestamp}") }
50
50
  item = MultiJson.decode(msg)
51
- queue = item.delete('queue')
52
- Sidekiq::Client.push(queue, item)
51
+ item['class'] = constantize(item['class']) # Sidekiq expects the class to be constantized.
52
+ Sidekiq::Client.push(item)
53
53
  end
54
54
  Sidekiq::Client.remove_scheduler_queue(timestamp)
55
55
  end
@@ -1,3 +1,3 @@
1
1
  module SidekiqScheduler
2
- VERSION = "0.2.1"
2
+ VERSION = "0.3.0"
3
3
  end
data/test/client_test.rb CHANGED
@@ -4,8 +4,8 @@ require 'timecop'
4
4
  class ClientTest < MiniTest::Unit::TestCase
5
5
  describe 'with real redis' do
6
6
  before do
7
- Sidekiq.redis = { :url => 'redis://localhost/sidekiq_test' }
8
- Sidekiq.redis.flushdb
7
+ Sidekiq.redis = REDIS
8
+ Sidekiq.redis {|c| c.flushdb }
9
9
  end
10
10
 
11
11
  it 'removes scheduled messages and returns count' do
@@ -46,21 +46,21 @@ class ClientTest < MiniTest::Unit::TestCase
46
46
  Sidekiq::Client.delayed_push(1331284491, 'class' => 'Foo', 'args' => [1, 2])
47
47
  Sidekiq::Client.delayed_push(1331284492, 'class' => 'Foo', 'args' => [1, 2])
48
48
  assert_equal 1, Sidekiq::Client.remove_delayed(1331284491, 'Foo', 1, 2)
49
- assert_equal 1, Sidekiq.redis.llen('delayed:1331284492')
49
+ assert_equal 1, Sidekiq.redis { |c| c.llen('delayed:1331284492') }
50
50
  end
51
51
 
52
52
  it 'removes messages from a worker for a specified timestamp' do
53
53
  Sidekiq::Client.delayed_push(1331284491, 'class' => 'MyWorker', 'args' => [1, 2])
54
54
  Sidekiq::Client.delayed_push(1331284492, 'class' => 'MyWorker', 'args' => [1, 2])
55
55
  assert_equal 1, MyWorker.remove_delayed_from_timestamp(1331284491, 1, 2)
56
- assert_equal 1, Sidekiq.redis.llen('delayed:1331284492')
56
+ assert_equal 1, Sidekiq.redis { |c| c.llen('delayed:1331284492') }
57
57
  end
58
58
 
59
59
  it 'removes messages for a queue from specified timestamp' do
60
60
  Sidekiq::Client.delayed_push('foo', 1331284491, 'class' => 'Foo', 'args' => [1, 2])
61
61
  Sidekiq::Client.delayed_push('foo', 1331284492, 'class' => 'Foo', 'args' => [1, 2])
62
62
  assert_equal 1, Sidekiq::Client.remove_delayed_from_queue('foo', 1331284491, 'Foo', 1, 2)
63
- assert_equal 1, Sidekiq.redis.llen('delayed:1331284492')
63
+ assert_equal 1, Sidekiq.redis { |c| c.llen('delayed:1331284492') }
64
64
  end
65
65
 
66
66
  it 'removes nothing if no message is found' do
@@ -71,14 +71,14 @@ class ClientTest < MiniTest::Unit::TestCase
71
71
  Sidekiq::Client.delayed_push(1331284491, 'class' => 'Foo', 'args' => [1, 2])
72
72
  Sidekiq::Client.delayed_push(1331284491, 'class' => 'Foo', 'args' => [3, 2])
73
73
  assert_equal 0, Sidekiq::Client.remove_delayed(1331284491, 'Foo', 3, 4)
74
- assert_equal 2, Sidekiq.redis.llen('delayed:1331284491')
74
+ assert_equal 2, Sidekiq.redis { |c| c.llen('delayed:1331284491') }
75
75
  end
76
76
 
77
77
  it 'removes empty scheduler queues' do
78
78
  Sidekiq::Client.delayed_push(1331284491, 'class' => 'Foo', 'args' => [1, 2])
79
79
  assert_equal 1, Sidekiq::Client.remove_delayed(1331284491, 'Foo', 1, 2)
80
- assert !Sidekiq.redis.exists('delayed:1331284491')
81
- assert_equal 0, Sidekiq.redis.zcard('delayed_scheduler_queue')
80
+ assert !Sidekiq.redis { |c| c.exists('delayed:1331284491') }
81
+ assert_equal 0, Sidekiq.redis { |c| c.zcard('delayed_scheduler_queue') }
82
82
  end
83
83
  end
84
84
 
data/test/manager_test.rb CHANGED
@@ -5,10 +5,9 @@ require 'sidekiq/manager'
5
5
  class ManagerTest < MiniTest::Unit::TestCase
6
6
  describe 'with redis' do
7
7
  before do
8
- Sidekiq.redis = { :url => 'redis://localhost/sidekiq_test' }
8
+ Sidekiq.redis = REDIS
9
+ Sidekiq.redis {|c| c.flushdb }
9
10
  @scheduler = SidekiqScheduler::Manager.new
10
- @redis = Sidekiq.redis
11
- @redis.flushdb
12
11
  $processed = 0
13
12
  $mutex = Mutex.new
14
13
  end
@@ -25,29 +24,29 @@ class ManagerTest < MiniTest::Unit::TestCase
25
24
  end
26
25
 
27
26
  it 'detects an empty schedule run' do
28
- assert_nil @scheduler.send(:find_next_timestamp)
27
+ assert_nil @scheduler.wrapped_object.send(:find_next_timestamp)
29
28
  end
30
29
 
31
30
  it 'processes only jobs that are due' do
32
31
  timestamp = Time.now + 600
33
32
  Sidekiq::Client.delayed_push(:foo, timestamp, 'class' => IntegrationWorker, 'args' => [1,2])
34
- assert_nil @scheduler.send(:find_next_timestamp)
33
+ assert_nil @scheduler.wrapped_object.send(:find_next_timestamp)
35
34
  end
36
35
 
37
36
  it 'processes queues in the right order' do
38
37
  Sidekiq::Client.delayed_push(:foo, 1331284491, 'class' => IntegrationWorker, 'args' => [1,2])
39
38
  Sidekiq::Client.delayed_push(:foo, 1331284492, 'class' => IntegrationWorker, 'args' => [1,2])
40
39
 
41
- assert_equal 1331284491, @scheduler.send(:find_next_timestamp)
40
+ assert_equal 1331284491, @scheduler.wrapped_object.send(:find_next_timestamp)
42
41
  end
43
42
 
44
43
  it 'moves jobs from the scheduler queues to the worker queues' do
45
44
  Sidekiq::Client.delayed_push(:foo, 1331284491, 'class' => IntegrationWorker, 'args' => [1,2])
46
45
 
47
- @scheduler.send(:find_scheduled_work, 1331284491)
46
+ @scheduler.wrapped_object.send(:find_scheduled_work, 1331284491)
48
47
 
49
- assert_equal 0, @redis.llen("delayed:1331284491")
50
- assert_equal 1, @redis.llen("queue:foo")
48
+ assert_equal 0, Sidekiq.redis {|c| c.llen("delayed:1331284491") }
49
+ assert_equal 1, Sidekiq.redis {|c| c.llen("queue:foo") }
51
50
  end
52
51
 
53
52
  it 'resets the scheduler queue' do
@@ -57,10 +56,10 @@ class ManagerTest < MiniTest::Unit::TestCase
57
56
 
58
57
  @scheduler.reset
59
58
 
60
- assert_equal 0, @redis.zcard('delayed_queue_schedule')
61
- assert !@redis.exists('delayed:1331284491')
62
- assert !@redis.exists('delayed:1331284492')
63
- assert !@redis.exists('delayed:1331284493')
59
+ assert_equal 0, Sidekiq.redis {|c| c.zcard('delayed_queue_schedule') }
60
+ assert !Sidekiq.redis {|c| c.exists('delayed:1331284491') }
61
+ assert !Sidekiq.redis {|c| c.exists('delayed:1331284492') }
62
+ assert !Sidekiq.redis {|c| c.exists('delayed:1331284493') }
64
63
  end
65
64
  end
66
65
  end
data/test/test_helper.rb CHANGED
@@ -3,9 +3,12 @@ require 'minitest/pride'
3
3
  require 'minitest/autorun'
4
4
  require 'sidekiq-scheduler'
5
5
 
6
+ require 'sidekiq'
6
7
  require 'sidekiq/util'
7
8
  Sidekiq::Util.logger.level = Logger::ERROR
8
9
 
9
10
  # Load support files
10
11
  Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each { |f| require f }
11
12
 
13
+ require 'sidekiq/redis_connection'
14
+ REDIS = Sidekiq::RedisConnection.create(:url => "redis://localhost/15", :namespace => 'testy')
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sidekiq-scheduler
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.1
4
+ version: 0.3.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,22 +9,22 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-03-27 00:00:00.000000000 Z
12
+ date: 2012-04-11 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: sidekiq
16
- requirement: &70168657500700 !ruby/object:Gem::Requirement
16
+ requirement: &70158192951040 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
- - - ! '>='
19
+ - - ~>
20
20
  - !ruby/object:Gem::Version
21
- version: 0.9.0
21
+ version: 1.0.0
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *70168657500700
24
+ version_requirements: *70158192951040
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: rake
27
- requirement: &70168657500140 !ruby/object:Gem::Requirement
27
+ requirement: &70158192949660 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ! '>='
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: '0'
33
33
  type: :development
34
34
  prerelease: false
35
- version_requirements: *70168657500140
35
+ version_requirements: *70158192949660
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: timecop
38
- requirement: &70168657499520 !ruby/object:Gem::Requirement
38
+ requirement: &70158192948960 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ! '>='
@@ -43,7 +43,7 @@ dependencies:
43
43
  version: '0'
44
44
  type: :development
45
45
  prerelease: false
46
- version_requirements: *70168657499520
46
+ version_requirements: *70158192948960
47
47
  description: Light weight job scheduling extension for Sidekiq that adds support for
48
48
  queueing items in the future.
49
49
  email:
@@ -88,7 +88,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
88
88
  version: '0'
89
89
  segments:
90
90
  - 0
91
- hash: 2753182575090064012
91
+ hash: 1710824919291637304
92
92
  required_rubygems_version: !ruby/object:Gem::Requirement
93
93
  none: false
94
94
  requirements:
@@ -97,7 +97,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
97
97
  version: '0'
98
98
  segments:
99
99
  - 0
100
- hash: 2753182575090064012
100
+ hash: 1710824919291637304
101
101
  requirements: []
102
102
  rubyforge_project:
103
103
  rubygems_version: 1.8.17