beanstalker 0.4.10 → 0.4.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.4.10
1
+ 0.4.11
data/beanstalker.gemspec CHANGED
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{beanstalker}
8
- s.version = "0.4.10"
8
+ s.version = "0.4.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{2010-08-04}
12
+ s.date = %q{2010-08-05}
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 = [
@@ -17,6 +17,9 @@ 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)
21
+ Worker.before_filter = option(:before_filter)
22
+ end
20
23
  @worker = Worker.new(binding,
21
24
  :tube => option(:tube),
22
25
  :servers => option(:servers),
@@ -195,13 +195,18 @@ class Beanstalker::Worker
195
195
 
196
196
  def run_ao_job(job)
197
197
  runner = lambda {
198
- time_taken = Benchmark.realtime do
199
- f = self.class.before_filter
200
- result = f.call(job) if f
198
+ t1 = Time.now
199
+ f = self.class.before_filter
200
+ statistics = job.stats.dup
201
+ code = job[:code]
202
+ can_run = f ? f.call(job) : true
203
+ if can_run
201
204
  run_code(job)
205
+ job.delete
206
+ logger.info "Finished. Job id=#{statistics['id']}. Code '#{code}'. Time taken: #{(Time.now - t1).to_f} sec"
207
+ else
208
+ logger.info "Not runnind due to :before_filter restriction. Job id=#{statistics['id']}. Code '#{code}'."
202
209
  end
203
- logger.info "Finished. Job id=#{job.stats['id']}. Code '#{job[:code]}'. Time taken: #{time_taken} sec"
204
- job.delete
205
210
  }
206
211
  if @options[:ruby_timeout]
207
212
  timeout = (job.stats['ttr'].to_f * 0.8)
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: 27
4
+ hash: 25
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
8
  - 4
9
- - 10
10
- version: 0.4.10
9
+ - 11
10
+ version: 0.4.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: 2010-08-04 00:00:00 +04:00
18
+ date: 2010-08-05 00:00:00 +04:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency