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 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"
@@ -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
@@ -1,3 +1,3 @@
1
1
  module ResqueScheduler
2
- Version = '1.10.13'
2
+ Version = '1.10.14'
3
3
  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.13"
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-08-31}
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"])
@@ -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
- - 13
9
- version: 1.10.13
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-08-31 00:00:00 -04:00
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: jeweler
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: :development
74
+ type: :runtime
74
75
  version_requirements: *id004
75
76
  - !ruby/object:Gem::Dependency
76
- name: mocha
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: rack-test
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.