beanstalker 0.4.10 → 0.4.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.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