carnivore-nsq 0.1.10 → 0.1.12

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.
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