beanstalker 0.5.10 → 0.5.11

Sign up to get free protection for your applications and to get access to all the features.
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