brianjlandau-resque-scheduler 1.10.3 → 1.10.4

Sign up to get free protection for your applications and to get access to all the features.
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{brianjlandau-resque-scheduler}
8
- s.version = "1.10.3"
8
+ s.version = "1.10.4"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Ben VandenBos", "Brian Landau"]
12
- s.date = %q{2010-10-20}
12
+ s.date = %q{2010-10-21}
13
13
  s.description = %q{Light weight job scheduling on top of Resque.
14
14
  Adds methods enqueue_at/enqueue_in to schedule jobs in the future.
15
15
  Also supports queueing jobs on a fixed, cron-like schedule.}
@@ -168,7 +168,7 @@ module Resque
168
168
  end
169
169
 
170
170
  def update_schedule
171
- schedule_from_redis = Resque.decode(Resque.redis.get(:schedule))
171
+ schedule_from_redis = Resque.get_schedule
172
172
  if !schedule_from_redis.nil? && !schedule_from_redis.empty? && schedule_from_redis != Resque.schedule
173
173
  # unload schedules that no longer exist
174
174
  (Resque.schedule.keys - schedule_from_redis.keys).each do |name|
@@ -36,7 +36,15 @@ module ResqueScheduler
36
36
 
37
37
  # reloads the schedule from redis
38
38
  def reload_schedule!
39
- @schedule = decode(redis.get(:schedule))
39
+ @schedule = get_schedule
40
+ end
41
+
42
+ def get_schedule
43
+ redis.hgetall(:schedule).tap do |h|
44
+ h.each do |name, config|
45
+ h[name] = decode(config)
46
+ end
47
+ end
40
48
  end
41
49
 
42
50
  # This method is nearly identical to +enqueue+ only it also
@@ -1,3 +1,3 @@
1
1
  module ResqueScheduler
2
- Version = '1.10.3'
2
+ Version = '1.10.4'
3
3
  end
@@ -7,6 +7,7 @@ class Resque::SchedulerTest < Test::Unit::TestCase
7
7
  end
8
8
 
9
9
  def setup
10
+ Resque.redis.del(:schedule)
10
11
  Resque::Scheduler.mute = true
11
12
  Resque::Scheduler.clear_schedule!
12
13
  Resque::Scheduler.send(:class_variable_set, :@@scheduled_jobs, {})
@@ -77,18 +78,19 @@ class Resque::SchedulerTest < Test::Unit::TestCase
77
78
 
78
79
  def test_can_reload_schedule
79
80
  Resque.schedule = {"some_ivar_job" => {'cron' => "* * * * *", 'class' => 'SomeIvarJob', 'args' => "/tmp"}}
80
- Resque.redis.set(:schedule, Resque.encode({
81
- "some_ivar_job" => {'cron' => "* * * * *", 'class' => 'SomeIvarJob', 'args' => "/tmp"}
82
- }))
81
+ Resque.redis.hset(:schedule, "some_ivar_job", Resque.encode(
82
+ {'cron' => "* * * * *", 'class' => 'SomeIvarJob', 'args' => "/tmp"}
83
+ ))
83
84
 
84
85
  Resque::Scheduler.load_schedule!
85
86
 
86
87
  assert_equal(1, Resque::Scheduler.rufus_scheduler.all_jobs.size)
87
88
  assert Resque::Scheduler.scheduled_jobs.include?("some_ivar_job")
88
89
 
89
- Resque.redis.set(:schedule, Resque.encode({
90
- "some_ivar_job2" => {'cron' => "* * * * *", 'class' => 'SomeIvarJob', 'args' => "/tmp/2"}
91
- }))
90
+ Resque.redis.del(:schedule)
91
+ Resque.redis.hset(:schedule, "some_ivar_job2", Resque.encode(
92
+ {'cron' => "* * * * *", 'class' => 'SomeIvarJob', 'args' => "/tmp/2"}
93
+ ))
92
94
 
93
95
  Resque::Scheduler.reload_schedule!
94
96
 
@@ -131,11 +133,15 @@ class Resque::SchedulerTest < Test::Unit::TestCase
131
133
 
132
134
  Resque::Scheduler.load_schedule!
133
135
 
134
- Resque.redis.set(:schedule, Resque.encode({
135
- "some_ivar_job" => {'cron' => "* * * * *", 'class' => 'SomeIvarJob', 'args' => "/tmp/2"},
136
- "new_ivar_job" => {'cron' => "* * * * *", 'class' => 'SomeJob', 'args' => "/tmp/3"},
137
- "stay_put_job" => {'cron' => "* * * * *", 'class' => 'SomeJob', 'args' => "/tmp"}
138
- }))
136
+ Resque.redis.hset(:schedule, "some_ivar_job", Resque.encode(
137
+ {'cron' => "* * * * *", 'class' => 'SomeIvarJob', 'args' => "/tmp/2"}
138
+ ))
139
+ Resque.redis.hset(:schedule, "new_ivar_job", Resque.encode(
140
+ {'cron' => "* * * * *", 'class' => 'SomeJob', 'args' => "/tmp/3"}
141
+ ))
142
+ Resque.redis.hset(:schedule, "stay_put_job", Resque.encode(
143
+ {'cron' => "* * * * *", 'class' => 'SomeJob', 'args' => "/tmp"}
144
+ ))
139
145
 
140
146
  Resque::Scheduler.update_schedule
141
147
 
@@ -161,11 +167,15 @@ class Resque::SchedulerTest < Test::Unit::TestCase
161
167
  Resque::Scheduler.rufus_scheduler.expects(:unschedule).with(Resque::Scheduler.scheduled_jobs["some_ivar_job"].job_id)
162
168
  Resque::Scheduler.rufus_scheduler.expects(:unschedule).with(Resque::Scheduler.scheduled_jobs["another_ivar_job"].job_id)
163
169
 
164
- Resque.redis.set(:schedule, Resque.encode({
165
- "some_ivar_job" => {'cron' => "* * * * *", 'class' => 'SomeIvarJob', 'args' => "/tmp/2"},
166
- "new_ivar_job" => {'cron' => "* * * * *", 'class' => 'SomeJob', 'args' => "/tmp/3"},
167
- "stay_put_job" => {'cron' => "* * * * *", 'class' => 'SomeJob', 'args' => "/tmp"}
168
- }))
170
+ Resque.redis.hset(:schedule, "some_ivar_job", Resque.encode(
171
+ {'cron' => "* * * * *", 'class' => 'SomeIvarJob', 'args' => "/tmp/2"}
172
+ ))
173
+ Resque.redis.hset(:schedule, "new_ivar_job", Resque.encode(
174
+ {'cron' => "* * * * *", 'class' => 'SomeJob', 'args' => "/tmp/3"}
175
+ ))
176
+ Resque.redis.hset(:schedule, "stay_put_job", Resque.encode(
177
+ {'cron' => "* * * * *", 'class' => 'SomeJob', 'args' => "/tmp"}
178
+ ))
169
179
 
170
180
  Resque::Scheduler.update_schedule
171
181
 
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: brianjlandau-resque-scheduler
3
3
  version: !ruby/object:Gem::Version
4
- hash: 57
4
+ hash: 55
5
5
  prerelease: false
6
6
  segments:
7
7
  - 1
8
8
  - 10
9
- - 3
10
- version: 1.10.3
9
+ - 4
10
+ version: 1.10.4
11
11
  platform: ruby
12
12
  authors:
13
13
  - Ben VandenBos
@@ -16,7 +16,7 @@ autorequire:
16
16
  bindir: bin
17
17
  cert_chain: []
18
18
 
19
- date: 2010-10-20 00:00:00 -04:00
19
+ date: 2010-10-21 00:00:00 -04:00
20
20
  default_executable:
21
21
  dependencies:
22
22
  - !ruby/object:Gem::Dependency