carnivore-nsq 0.1.10 → 0.1.12

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: e399157a914d9409adf05677cc934b54f4d3a9b6
4
- data.tar.gz: 31c2b2bcbfd04ca660829e41aba0519e67956d21
3
+ metadata.gz: 700c179d22a74cd68a9fe8f3dbb0eada60fb714d
4
+ data.tar.gz: ebe7fad4aa9f113ec0c2da015219e0528824bf34
5
5
  SHA512:
6
- metadata.gz: 657c05e4620f97360586a772857db9dd5b6c6298cce8b73d39b83346d3c2af5f7a62f6d9b8932e96159945ffc9cd95255a8da672458dbedf80d6fa914c42cc43
7
- data.tar.gz: 86a14b6e8b833323dbc026342f70767a2333f9e20a333f092111da2ef9b75c7305c1cbfd510ef4b39cd8f33ebcc44ee59d629ab2312d7d7f84af4f4190dc84b2
6
+ metadata.gz: 73d5c47b4129593fb4d23a3c7529b8ec23b077c16d8aa702ec117553cf1a76fe6494d12eaf527ed48093273d5f7bb3ccdb376cb43c58b9c597fa52f950c9acc2
7
+ data.tar.gz: 46632fa13da1eb9c77ac3e6a7c0fe259ab8e467a2ab8d4b9fc0ef6c5c964ac579950ce8aa229333aba0cbabe527f57d43abc2bd408708e08317f40c7b7460ef2
data/CHANGELOG.md CHANGED
@@ -1,3 +1,6 @@
1
+ ## v0.1.12
2
+ * Add better connection recovery support
3
+
1
4
  ## v0.1.10
2
5
  * Clean up exit trapping implementation
3
6
  * Suppress exception errors on touch/lookup
@@ -38,31 +38,22 @@ module Carnivore
38
38
  def trapper(obj, exception)
39
39
  if(exception)
40
40
  exclusive do
41
- warn 'Consumer failure detected. Forcing termination and rebuilding.'
42
- begin
43
- @reader.terminate
44
- rescue => e
45
- warn "Consumer error suppressed on termination: #{e.class} - #{e}"
41
+ if(@reader && !@reader.alive?)
42
+ warn 'Consumer failure detected. Rebuilding.'
43
+ @reader = nil
44
+ build_consumer
45
+ info "Consumer connection for #{topic}:#{channel} re-established #{reader}"
46
46
  end
47
- @reader = nil
48
- build_consumer
49
- info "Consumer connection for #{topic}:#{channel} re-established #{reader}"
50
- end
51
- else
52
- if(@reader)
53
- begin
54
- @reader.terminate
55
- rescue => e
56
- warn "Consumer error suppressed on termination: #{e.class} - #{e}"
57
- end
58
- end
59
- if(@writer)
60
- begin
61
- @writer.terminate
62
- rescue => e
63
- warn "Producer error suppressed on termination: #{e.class} - #{e}"
47
+ unless(@writer.alive?)
48
+ warn 'Producer failure detected. Rebuilding.'
49
+ @writer = nil
50
+ build_producer
51
+ info "Producer connection for #{topic} re-established #{writer}"
64
52
  end
65
53
  end
54
+ else
55
+ @writer.terminate if @writer.alive?
56
+ @reader.terminate if @reader.alive?
66
57
  end
67
58
  end
68
59
 
@@ -79,14 +70,8 @@ module Carnivore
79
70
  link @reader
80
71
  end
81
72
 
82
- # Establish required connections (producer/consumer)
83
- def connect
84
- unless(callbacks.empty?)
85
- unless(lookupd.empty?)
86
- build_consumer
87
- info "Consumer connection for #{topic}:#{channel} established #{reader}"
88
- end
89
- end
73
+ # Build the producer connection
74
+ def build_producer
90
75
  if(producer_args)
91
76
  @writer = Krakow::Producer.new(
92
77
  producer_args.merge(
@@ -96,6 +81,7 @@ module Carnivore
96
81
  )
97
82
  )
98
83
  info "Producer TCP connection for #{topic} established #{writer}"
84
+ link @writer
99
85
  elsif(http_transmit)
100
86
  @writer = Krakow::Producer::Http.new(
101
87
  Smash.new(
@@ -104,7 +90,19 @@ module Carnivore
104
90
  )
105
91
  )
106
92
  info "Producer HTTP connection for #{topic} established #{writer}"
93
+ link @writer
94
+ end
95
+ end
96
+
97
+ # Establish required connections (producer/consumer)
98
+ def connect
99
+ unless(callbacks.empty?)
100
+ unless(lookupd.empty?)
101
+ build_consumer
102
+ info "Consumer connection for #{topic}:#{channel} established #{reader}"
103
+ end
107
104
  end
105
+ build_producer
108
106
  end
109
107
 
110
108
  # @return [Krakow::Consumer]
@@ -1,6 +1,6 @@
1
1
  module Carnivore
2
2
  module Nsq
3
3
  # current library version
4
- VERSION = Gem::Version.new('0.1.10')
4
+ VERSION = Gem::Version.new('0.1.12')
5
5
  end
6
6
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: carnivore-nsq
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.10
4
+ version: 0.1.12
5
5
  platform: ruby
6
6
  authors:
7
7
  - Chris Roberts