beanstalker 0.5.10 → 0.5.11

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/VERSION CHANGED
@@ -1 +1 @@
1
- 0.5.10
1
+ 0.5.11
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{beanstalker}
8
- s.version = "0.5.10"
8
+ s.version = "0.5.11"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Gleb Pomykalov"]
12
- s.date = %q{2011-04-02}
12
+ s.date = %q{2011-04-06}
13
13
  s.description = %q{Beanstalker is a tool for executing long tasks in background in our rails application.}
14
14
  s.email = %q{glebpom@gmail.com}
15
15
  s.extra_rdoc_files = [
@@ -7,7 +7,7 @@ module Beanstalker
7
7
  logger.info "Rails loaded"
8
8
  super
9
9
  end
10
-
10
+
11
11
  def start
12
12
  $logger = logger
13
13
  $logger.info "Starting cycle"
@@ -17,13 +17,16 @@ module Beanstalker
17
17
  if option(:timeout_handler)
18
18
  Worker.custom_timeout_handler = option(:timeout_handler)
19
19
  end
20
- if option(:before_filter)
20
+ if option(:before_filter)
21
21
  Worker.before_filter = option(:before_filter)
22
22
  end
23
- @worker = Worker.new(binding,
24
- :tube => option(:tube),
23
+ if option(:on_job_event)
24
+ Worker.on_job_event = option(:on_job_event)
25
+ end
26
+ @worker = Worker.new(binding,
27
+ :tube => option(:tube),
25
28
  :servers => option(:servers),
26
- :worker_id => worker_id,
29
+ :worker_id => worker_id,
27
30
  :workers_count => workers_count,
28
31
  :ruby_timeout => option(:ruby_timeout).nil? ? true : option(:ruby_timeout))
29
32
  @worker.run
@@ -29,6 +29,7 @@ class Beanstalker::Worker
29
29
  attr_accessor :custom_error_handler
30
30
  attr_accessor :custom_timeout_handler
31
31
  attr_accessor :before_filter
32
+ attr_accessor :on_job_event
32
33
 
33
34
  def error_handler(&block)
34
35
  self.custom_error_handler = block
@@ -147,7 +148,10 @@ class Beanstalker::Worker
147
148
 
148
149
  def dispatch(job)
149
150
  ActiveRecord::Base.verify_active_connections!
151
+
150
152
  logger.info "Got job: #{get_job_body(job).inspect}"
153
+ self.class.on_job_event.call(job, :dispatch) if self.class.on_job_event
154
+
151
155
  if rails_job?(job)
152
156
  run_ao_job(job)
153
157
  elsif mapped_job?(job)
@@ -187,6 +191,7 @@ class Beanstalker::Worker
187
191
  def handle_error(job, ex)
188
192
  custom_error_handler_ok = false
189
193
  Daemonizer.logger.warn "Handling exception: #{ex.backtrace.join("\n")}, job = #{job.id}"
194
+ self.class.on_job_event.call(job, :error) if self.class.on_job_event
190
195
 
191
196
  if rails_job?(job)
192
197
  class_name = get_job_body(job)[:data][:class]
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: beanstalker
3
3
  version: !ruby/object:Gem::Version
4
- hash: 31
4
+ hash: 29
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 5
9
- - 10
10
- version: 0.5.10
9
+ - 11
10
+ version: 0.5.11
11
11
  platform: ruby
12
12
  authors:
13
13
  - Gleb Pomykalov
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2011-04-02 00:00:00 +04:00
18
+ date: 2011-04-06 00:00:00 +04:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency