tootsie 0.9.28 → 0.9.29

Sign up to get free protection for your applications and to get access to all the features.
@@ -9,7 +9,6 @@ module Tootsie
9
9
  @logger = Application.get.logger
10
10
  @host_name = options[:host_name] || 'localhost'
11
11
  @queue_name = options[:queue_name] || 'tootsie'
12
- connect!
13
12
  end
14
13
 
15
14
  def count
@@ -19,7 +18,7 @@ module Tootsie
19
18
  def push(item)
20
19
  data = item.to_json
21
20
  with_retry do
22
- with_reconnect do
21
+ with_connection do
23
22
  @exchange.publish(data, :persistent => true, :key => @queue_name)
24
23
  end
25
24
  end
@@ -31,7 +30,7 @@ module Tootsie
31
30
  @backoff.with do
32
31
  message = nil
33
32
  with_retry do
34
- with_reconnect do
33
+ with_connection do
35
34
  message = @queue.pop(:ack => true)
36
35
  end
37
36
  end
@@ -41,7 +40,7 @@ module Tootsie
41
40
  if data
42
41
  @logger.info "Popped: #{data.inspect}"
43
42
  item = JSON.parse(data)
44
- with_reconnect do
43
+ with_connection do
45
44
  @queue.ack(:delivery_tag => message[:delivery_details][:delivery_tag])
46
45
  end
47
46
  end
@@ -59,13 +58,14 @@ module Tootsie
59
58
 
60
59
  private
61
60
 
62
- def with_reconnect(&block)
61
+ def with_connection(&block)
63
62
  begin
63
+ connect! unless @connection
64
64
  result = yield
65
65
  rescue Bunny::ServerDownError, Bunny::ConnectionError, Bunny::ProtocolError => e
66
66
  @logger.error "Error in AMQP server connection (#{e.class}: #{e}), retrying"
67
+ @connection = nil
67
68
  sleep(0.5)
68
- connect!
69
69
  retry
70
70
  else
71
71
  result
@@ -90,7 +90,7 @@ module Tootsie
90
90
 
91
91
  @connection = Bunny.new(:host => @host_name)
92
92
  @connection.start
93
-
93
+
94
94
  @exchange = @connection.exchange('')
95
95
 
96
96
  @queue = @connection.queue(@queue_name, :durable => true)
@@ -1,3 +1,3 @@
1
1
  module Tootsie
2
- VERSION = '0.9.28'
2
+ VERSION = '0.9.29'
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tootsie
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.28
4
+ version: 0.9.29
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -326,7 +326,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
326
326
  version: '0'
327
327
  segments:
328
328
  - 0
329
- hash: -2745809018023260649
329
+ hash: 1887276204761055397
330
330
  required_rubygems_version: !ruby/object:Gem::Requirement
331
331
  none: false
332
332
  requirements:
@@ -335,7 +335,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
335
335
  version: '0'
336
336
  segments:
337
337
  - 0
338
- hash: -2745809018023260649
338
+ hash: 1887276204761055397
339
339
  requirements: []
340
340
  rubyforge_project: tootsie
341
341
  rubygems_version: 1.8.24