sskirby-resque-scheduler 1.10.13 → 1.10.14
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.
- data/Rakefile +2 -1
- data/lib/resque/scheduler.rb +12 -0
- data/lib/resque_scheduler/tasks.rb +10 -1
- data/lib/resque_scheduler/version.rb +1 -1
- data/sskirby-resque-scheduler.gemspec +6 -3
- data/test/scheduler_test.rb +18 -0
- metadata +20 -7
data/Rakefile
CHANGED
@@ -33,12 +33,13 @@ begin
|
|
33
33
|
Also supports queueing jobs on a fixed, cron-like schedule.}
|
34
34
|
gemspec.email = "sskirby@gmail.com"
|
35
35
|
gemspec.homepage = "http://github.com/sskirby/resque-scheduler"
|
36
|
-
gemspec.authors = ["Ben VandenBos", "Brian Landau", "Sean Kirby", "Tanzeeb Khalili"]
|
36
|
+
gemspec.authors = ["Ben VandenBos", "Brian Landau", "Sean Kirby", "Tanzeeb Khalili", "Justin Fitzsimmons"]
|
37
37
|
gemspec.version = ResqueScheduler::Version
|
38
38
|
|
39
39
|
gemspec.add_dependency "redis", ">= 2.0.1"
|
40
40
|
gemspec.add_dependency "resque", ">= 1.8.0"
|
41
41
|
gemspec.add_dependency "tanzeeb-rufus-scheduler"
|
42
|
+
gemspec.add_dependency "airbrake"
|
42
43
|
gemspec.add_development_dependency "jeweler"
|
43
44
|
gemspec.add_development_dependency "mocha"
|
44
45
|
gemspec.add_development_dependency "rack-test"
|
data/lib/resque/scheduler.rb
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
require 'rufus/scheduler'
|
2
|
+
require 'airbrake'
|
2
3
|
require 'thwait'
|
3
4
|
|
4
5
|
module Resque
|
@@ -17,6 +18,9 @@ module Resque
|
|
17
18
|
|
18
19
|
# If set, will try to update the schulde in the loop
|
19
20
|
attr_accessor :dynamic
|
21
|
+
|
22
|
+
# If set, will tell rufus to use the airbrake exception handler
|
23
|
+
attr_accessor :airbrake
|
20
24
|
|
21
25
|
# the Rufus::Scheduler jobs that are scheduled
|
22
26
|
def scheduled_jobs
|
@@ -166,6 +170,14 @@ module Resque
|
|
166
170
|
|
167
171
|
def rufus_scheduler
|
168
172
|
@rufus_scheduler ||= Rufus::Scheduler.start_new
|
173
|
+
if self.airbrake
|
174
|
+
def @rufus_scheduler.handle_exception(job, exception)
|
175
|
+
puts "Exception caught, notifying Airbrake"
|
176
|
+
id = Airbrake.notify(exception)
|
177
|
+
puts "Airbrake id: #{id}"
|
178
|
+
end
|
179
|
+
end
|
180
|
+
@rufus_scheduler
|
169
181
|
end
|
170
182
|
|
171
183
|
# Stops old rufus scheduler and creates a new one. Returns the new
|
@@ -10,6 +10,15 @@ namespace :resque do
|
|
10
10
|
require 'resque_scheduler'
|
11
11
|
|
12
12
|
Resque::Scheduler.verbose = true if ENV['VERBOSE']
|
13
|
+
if File.exists?("config/airbrake.yml")
|
14
|
+
Resque::Scheduler.airbrake = true
|
15
|
+
Airbrake::configure do |config|
|
16
|
+
yaml = YAML.load_file("config/airbrake.yml")
|
17
|
+
yaml.each do |key, val|
|
18
|
+
config.send(:"#{key}=", val)
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
13
22
|
Resque::Scheduler.run
|
14
23
|
end
|
15
24
|
|
@@ -21,4 +30,4 @@ namespace :resque do
|
|
21
30
|
end
|
22
31
|
end
|
23
32
|
|
24
|
-
end
|
33
|
+
end
|
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{sskirby-resque-scheduler}
|
8
|
-
s.version = "1.10.
|
8
|
+
s.version = "1.10.14"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
|
-
s.authors = ["Ben VandenBos", "Brian Landau", "Sean Kirby", "Tanzeeb Khalili"]
|
12
|
-
s.date = %q{2011-
|
11
|
+
s.authors = ["Ben VandenBos", "Brian Landau", "Sean Kirby", "Tanzeeb Khalili", "Justin Fitzsimmons"]
|
12
|
+
s.date = %q{2011-09-23}
|
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.}
|
@@ -60,6 +60,7 @@ Gem::Specification.new do |s|
|
|
60
60
|
s.add_runtime_dependency(%q<redis>, [">= 2.0.1"])
|
61
61
|
s.add_runtime_dependency(%q<resque>, [">= 1.8.0"])
|
62
62
|
s.add_runtime_dependency(%q<tanzeeb-rufus-scheduler>, [">= 0"])
|
63
|
+
s.add_runtime_dependency(%q<airbrake>, [">= 0"])
|
63
64
|
s.add_development_dependency(%q<jeweler>, [">= 0"])
|
64
65
|
s.add_development_dependency(%q<mocha>, [">= 0"])
|
65
66
|
s.add_development_dependency(%q<rack-test>, [">= 0"])
|
@@ -67,6 +68,7 @@ Gem::Specification.new do |s|
|
|
67
68
|
s.add_dependency(%q<redis>, [">= 2.0.1"])
|
68
69
|
s.add_dependency(%q<resque>, [">= 1.8.0"])
|
69
70
|
s.add_dependency(%q<tanzeeb-rufus-scheduler>, [">= 0"])
|
71
|
+
s.add_dependency(%q<airbrake>, [">= 0"])
|
70
72
|
s.add_dependency(%q<jeweler>, [">= 0"])
|
71
73
|
s.add_dependency(%q<mocha>, [">= 0"])
|
72
74
|
s.add_dependency(%q<rack-test>, [">= 0"])
|
@@ -75,6 +77,7 @@ Gem::Specification.new do |s|
|
|
75
77
|
s.add_dependency(%q<redis>, [">= 2.0.1"])
|
76
78
|
s.add_dependency(%q<resque>, [">= 1.8.0"])
|
77
79
|
s.add_dependency(%q<tanzeeb-rufus-scheduler>, [">= 0"])
|
80
|
+
s.add_dependency(%q<airbrake>, [">= 0"])
|
78
81
|
s.add_dependency(%q<jeweler>, [">= 0"])
|
79
82
|
s.add_dependency(%q<mocha>, [">= 0"])
|
80
83
|
s.add_dependency(%q<rack-test>, [">= 0"])
|
data/test/scheduler_test.rb
CHANGED
@@ -235,5 +235,23 @@ class Resque::SchedulerTest < Test::Unit::TestCase
|
|
235
235
|
Resque::Plugin.lint(ResqueScheduler)
|
236
236
|
end
|
237
237
|
end
|
238
|
+
|
239
|
+
def test_uses_rufus_airbrake_handler
|
240
|
+
backup_stdout = $stdout
|
241
|
+
begin
|
242
|
+
e = RuntimeError.new("Problem!")
|
243
|
+
Airbrake.expects(:notify).with(e)
|
244
|
+
|
245
|
+
Resque::Scheduler.airbrake = true
|
246
|
+
Resque::Scheduler.clear_schedule!
|
247
|
+
|
248
|
+
$stdout = StringIO.new #swallow up the output from the exception handler
|
238
249
|
|
250
|
+
# #handle_exception takes a job, but our custom handler doesn't care about it, so we're
|
251
|
+
# just going to pass nil for the test
|
252
|
+
Resque::Scheduler.rufus_scheduler.handle_exception(nil, e)
|
253
|
+
ensure
|
254
|
+
$stdout = backup_stdout
|
255
|
+
end
|
256
|
+
end
|
239
257
|
end
|
metadata
CHANGED
@@ -5,19 +5,20 @@ version: !ruby/object:Gem::Version
|
|
5
5
|
segments:
|
6
6
|
- 1
|
7
7
|
- 10
|
8
|
-
-
|
9
|
-
version: 1.10.
|
8
|
+
- 14
|
9
|
+
version: 1.10.14
|
10
10
|
platform: ruby
|
11
11
|
authors:
|
12
12
|
- Ben VandenBos
|
13
13
|
- Brian Landau
|
14
14
|
- Sean Kirby
|
15
15
|
- Tanzeeb Khalili
|
16
|
+
- Justin Fitzsimmons
|
16
17
|
autorequire:
|
17
18
|
bindir: bin
|
18
19
|
cert_chain: []
|
19
20
|
|
20
|
-
date: 2011-
|
21
|
+
date: 2011-09-23 00:00:00 -04:00
|
21
22
|
default_executable:
|
22
23
|
dependencies:
|
23
24
|
- !ruby/object:Gem::Dependency
|
@@ -61,7 +62,7 @@ dependencies:
|
|
61
62
|
type: :runtime
|
62
63
|
version_requirements: *id003
|
63
64
|
- !ruby/object:Gem::Dependency
|
64
|
-
name:
|
65
|
+
name: airbrake
|
65
66
|
prerelease: false
|
66
67
|
requirement: &id004 !ruby/object:Gem::Requirement
|
67
68
|
requirements:
|
@@ -70,10 +71,10 @@ dependencies:
|
|
70
71
|
segments:
|
71
72
|
- 0
|
72
73
|
version: "0"
|
73
|
-
type: :
|
74
|
+
type: :runtime
|
74
75
|
version_requirements: *id004
|
75
76
|
- !ruby/object:Gem::Dependency
|
76
|
-
name:
|
77
|
+
name: jeweler
|
77
78
|
prerelease: false
|
78
79
|
requirement: &id005 !ruby/object:Gem::Requirement
|
79
80
|
requirements:
|
@@ -85,7 +86,7 @@ dependencies:
|
|
85
86
|
type: :development
|
86
87
|
version_requirements: *id005
|
87
88
|
- !ruby/object:Gem::Dependency
|
88
|
-
name:
|
89
|
+
name: mocha
|
89
90
|
prerelease: false
|
90
91
|
requirement: &id006 !ruby/object:Gem::Requirement
|
91
92
|
requirements:
|
@@ -96,6 +97,18 @@ dependencies:
|
|
96
97
|
version: "0"
|
97
98
|
type: :development
|
98
99
|
version_requirements: *id006
|
100
|
+
- !ruby/object:Gem::Dependency
|
101
|
+
name: rack-test
|
102
|
+
prerelease: false
|
103
|
+
requirement: &id007 !ruby/object:Gem::Requirement
|
104
|
+
requirements:
|
105
|
+
- - ">="
|
106
|
+
- !ruby/object:Gem::Version
|
107
|
+
segments:
|
108
|
+
- 0
|
109
|
+
version: "0"
|
110
|
+
type: :development
|
111
|
+
version_requirements: *id007
|
99
112
|
description: |-
|
100
113
|
Light weight job scheduling on top of Resque.
|
101
114
|
Adds methods enqueue_at/enqueue_in to schedule jobs in the future.
|